re PR sanitizer/63956 ([UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-01  Marek Polacek  <polacek@redhat.com>
2
3         PR sanitizer/63956
4         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
5
6 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
7
8         * gimple.h (gimple_build_assign_stat): Remove prototype.
9         (gimple_build_assign): Remove define.  Add overload prototypes
10         with tree lhs and either a tree rhs, or enum tree_code and
11         1, 2 or 3 tree operands.
12         * gimple.c (gimple_build_assign_stat): Renamed to...
13         (gimple_build_assign): ... this.  Add overloads with
14         enum tree_code and 1, 2 or 3 tree operands.
15         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
16         Rename the 3 operand overload to ...
17         (gimple_build_assign_1): ... this.  Make it static inline.
18         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
19         instead of gimple_build_assign_with_ops, swap the order of first
20         two arguments and adjust formatting where necessary.
21         * tree-vect-slp.c (vect_get_constant_vectors,
22         vect_create_mask_and_perm): Likewise.
23         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
24         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
25         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
26         * tsan.c (instrument_builtin_call): Likewise.
27         * tree-chkp.c (chkp_compute_bounds_for_assignment,
28         chkp_generate_extern_var_bounds): Likewise.
29         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
30         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
31         * gimple-builder.c (build_assign, build_type_cast): Likewise.
32         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
33         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
34         gimple_mod_subtract): Likewise.
35         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
36         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
37         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
38         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
39         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
40         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
41         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
42         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
43         adjust_bool_pattern_cast, adjust_bool_pattern,
44         vect_recog_bool_pattern): Likewise.
45         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
46         insert_initializers, introduce_cast_before_cand,
47         replace_one_candidate): Likewise.
48         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
49         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
50         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
51         Likewise.
52         * tree-tailcall.c (adjust_return_value_with_ops,
53         update_accumulator_with_ops): Likewise.
54         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
55         * tree-ssa-reassoc.c (build_and_add_sum,
56         optimize_range_tests_to_bit_test, update_ops,
57         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
58         negate_value, repropagate_negates, attempt_builtin_powi,
59         reassociate_bb): Likewise.
60         * tree-vect-loop.c (vect_is_simple_reduction_1,
61         get_initial_def_for_induction, vect_create_epilog_for_reduction):
62         Likewise.
63         * ipa-split.c (split_function): Likewise.
64         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
65         abs_replacement, neg_replacement): Likewise.
66         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
67         * tree-vrp.c (simplify_truth_ops_using_ranges,
68         simplify_float_conversion_using_ranges,
69         simplify_internal_call_using_ranges): Likewise.
70         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
71         * tree-vect-generic.c (expand_vector_divmod,
72         optimize_vector_constructor): Likewise.
73         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
74         instrument_bool_enum_load): Likewise.
75         * tree-ssa-loop-manip.c (create_iv): Likewise.
76         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
77         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
78         expand_cilk_for, simd_clone_adjust): Likewise.
79         * trans-mem.c (expand_transaction): Likewise.
80         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
81         vect_setup_realignment, vect_permute_load_chain,
82         vect_shift_permute_load_chain): Likewise.
83         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
84         vectorizable_simd_clone_call, vect_gen_widened_results_half,
85         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
86         vectorizable_shift, vectorizable_operation, vectorizable_store,
87         permute_vec_elements, vectorizable_load): Likewise.
88
89 2014-12-01  Richard Biener  <rguenther@suse.de>
90
91         PR middle-end/64111
92         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
93         htab_hash_pointer to not break PCH.
94
95 2014-12-01  Richard Biener  <rguenther@suse.de>
96
97         PR tree-optimization/15346
98         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
99         add -Wno-unused-but-set-variable.
100         * match.pd: Combine two successive divisions.
101
102 2014-12-01  Richard Biener  <rguenther@suse.de>
103
104         PR middle-end/64126
105         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
106         and -1 - A -> ~A.
107         * fold-const.c (fold_binary_loc): Remove transforms here.
108
109 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
110
111         * config/mips/mips.c (mips16_build_call_stub): Move the save of
112         the return address in $18 ahead of passing arguments to FPRs.
113
114 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
115
116         PR target/64055
117         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
118         values in array domain.
119
120 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
121
122         PR tree-optimization/63941
123         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
124         DOM_BB has non-true predicate, conditionally set non-true predicate
125         for BB.
126
127 2014-12-01  Martin Jambor  <mjambor@suse.cz>
128
129         PR ipa/63551
130         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
131         value of the argument to the type of the value in the condition.
132
133 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
134
135         PR target/63986
136         PR target/51244
137         * config/sh/sh.c (sh_unspec_insn_p,
138         sh_insn_operands_modified_between_p): New functions.
139         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
140         are modified or if it has side effects, may trap or is volatile.
141
142 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
143
144         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
145         create_tmp_reg): Add default NULL value to last argument.
146         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
147         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
148         last argument from create_tmp_var_raw, create_tmp_var,
149         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
150         * tree-ssa-strlen.c (get_string_length): Likewise.
151         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
152         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
153         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
154         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
155         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
156         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
157         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
158         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
159         * tsan.c (instrument_expr, instrument_builtin_call,
160         instrument_func_entry): Likewise.
161         * varpool.c (add_new_static_var): Likewise.
162         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
163         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
164         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
165         gimplify_init_ctor_eval_range, gimplify_init_constructor,
166         gimplify_omp_atomic, gimplify_expr): Likewise.
167         * gimple-builder.c (build_assign, build_type_cast): Likewise.
168         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
169         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
170         vect_loop_versioning): Likewise.
171         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
172         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
173         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
174         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
175         vect_recog_over_widening_pattern): Likewise.
176         * tree-sra.c (build_ref_for_offset, create_access_replacement):
177         Likewise.
178         * tree-cfg.c (make_blocks): Likewise.
179         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
180         Likewise.
181         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
182         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
183         Likewise.
184         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
185         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
186         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
187         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
188         * tree-ssa-reassoc.c (build_and_add_sum,
189         optimize_range_tests_to_bit_test, update_ops,
190         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
191         negate_value, repropagate_negates): Likewise.
192         * tree-vect-loop.c (vect_is_simple_reduction_1,
193         vect_create_epilog_for_reduction): Likewise.
194         * ipa-split.c (split_function): Likewise.
195         * tree-inline.c (remap_ssa_name, setup_one_parameter,
196         declare_return_variable, tree_function_versioning): Likewise.
197         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
198         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
199         Likewise.
200         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
201         neg_replacement): Likewise.
202         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
203         Likewise.
204         * tree-vrp.c (simplify_truth_ops_using_ranges,
205         simplify_float_conversion_using_ranges,
206         simplify_internal_call_using_ranges): Likewise.
207         * tree-switch-conversion.c (emit_case_bit_tests,
208         build_one_array, build_arrays, gen_def_assigns): Likewise.
209         * gimple-fold.c (gimple_fold_builtin_memory_op,
210         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
211         * tree-vect-generic.c (expand_vector_divmod,
212         optimize_vector_constructor): Likewise.
213         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
214         ubsan_expand_objsize_ifn, instrument_si_overflow,
215         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
216         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
217         * tree-ssa-loop-manip.c (create_iv,
218         tree_transform_and_unroll_loop): Likewise.
219         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
220         lower_rec_input_clauses, lower_lastprivate_clauses,
221         expand_parallel_call, expand_omp_for_static_chunk,
222         expand_omp_atomic_pipeline, expand_omp_target,
223         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
224         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
225         lower_depend_clauses, lower_omp_target, lower_omp_1,
226         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
227         * tree-parloops.c (take_address_of, create_phi_for_local_result,
228         create_call_for_reduction_1, separate_decls_in_region,
229         create_parallel_loop): Likewise.
230         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
231         handle_scalar_deps_crossing_scop_limits): Likewise.
232         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
233         expand_assign_tm, expand_call_tm, expand_transaction,
234         ipa_tm_insert_gettmclone_call): Likewise.
235         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
236         Likewise.
237         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
238         vectorizable_call, vectorizable_simd_clone_call,
239         vectorizable_conversion, vectorizable_store, permute_vec_elements,
240         vectorizable_load): Likewise.
241
242 2014-11-29  Tobias Burnus  <burnus@net-b.de>
243             Manuel López-Ibáñez  <manu@gcc.gnu.org>
244
245         * opt-functions.awk (lang_enabled_by): Support || for
246         enabled-by.
247         * optc-gen.awk: Ditto.
248         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
249         || syntax.
250
251 2014-11-28  Mike Stump  <mikestump@comcast.net>
252
253         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
254         (bitmap_ior_and_compl): Likewise.
255
256 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
257
258         PR target/64061
259         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
260         subreg.
261
262 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
263
264         PR target/64093
265         * config/rs6000/rs6000.md (and<mode>3): Don't generate
266         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
267
268 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
269
270         PR rtl-optimization/64087
271         * lra-lives.c (process_bb_lives): Add debug output.
272         (lra_create_live_ranges): Don't remove dead insn on the second
273         call of lra_create_live_ranges_1.
274
275 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
276
277         PR rtl-optimization/64037
278         * combine.c (setup_incoming_promotions): Pass the argument
279         before any promotions happen to promote_function_mode.
280
281 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
282
283         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
284         permutations to loads group of size 3.
285
286 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
287
288         * config/arm/arm.md (copysignsf3): New pattern.
289         (copysigndf3): Likewise.
290
291 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
292             Ilya Verbin  <ilya.verbin@intel.com>
293
294         * omp-low.c (lower_omp_critical): Mark critical sections
295         inside target functions as offloadable.
296
297 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
298
299         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
300         file contains sections with LTO and offload IR, respectively.
301
302 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
303
304         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
305         (symbol_table::compile): Set flag_generate_offload if there is something
306         to offload.
307         * common.opt (flag_generate_offload): New Variable declaration.
308         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
309         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
310         flag_generate_offload is set.
311         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
312         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
313         is set.
314         * toplev.c (compile_file): Emit LTO marker if offload info has been
315         previously emitted.  Do not emit lto_slim marker if
316         flag_generate_offload is without flag_generate_lto.
317         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
318
319 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
320
321         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
322         * config/arm/arm-tables.opt: Regenerate.
323         * config/arm/arm-tune.md: Regenerate.
324         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
325         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
326         MULTILIB_MATCHES.
327
328 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
329
330         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
331         Include cortex-a17.md.
332         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
333         * config/arm/arm-cores.def (cortex-a17): New entry.
334         * config/arm/arm-tables.opt: Regenerate.
335         * config/arm/arm-tune.md: Regenerate.
336         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
337         * config/arm/cortex-a17.md: New file.
338         * config/arm/cortex-a17-neon.md: New file.
339         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
340         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
341
342 2014-11-28  Richard Biener  <rguenther@suse.de>
343
344         PR middle-end/64084
345         * genmatch.c (dt_node::gen_kids_1): New function, split out
346         from dt_node::gen_kids.
347         (decision_tree::cmp_node): DT_TRUE are generally not equal.
348         (decision_tree::find_node): Treat DT_TRUE as barrier for
349         node CSE on the same level.
350         (dt_node::append_node): Do not keep DT_TRUE last.
351         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
352
353 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
354
355         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
356         -march=armv8-a+crc.
357
358 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
359
360         * config/i386/i386.md (preferred_for_size): New attribute
361         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
362         attribute to conditionally disable alternative 1.
363         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
364         and prefered_for_speed attributes to conditionally disable
365         alternative 1.
366         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
367         preferred_for_size attribute to conditionally disable
368         alternatives 3 and 4.
369         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
370         preferred_for_size and prefered_for_speed attributes to conditionally
371         disable alternatives 3 and 4.
372         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
373
374 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
375
376         * dwarf2out.c (set_block_origin_self): Skip nested functions.
377
378 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
379
380         PR target/63833
381         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
382         R15_REG for 64-bit.
383         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
384
385 2014-11-27  Martin Liska  <mliska@suse.cz>
386             David Malcolm  <dmalcolm@redhat.com>
387
388         * ipa-icf.c (sem_function::equals_private): int* is replaced with
389         auto_vec.
390         (sem_function::bb_dict_test): Likewise.
391         * ipa-icf.h: Likewise.
392
393 2014-11-27  Richard Biener  <rguenther@suse.de>
394
395         PR middle-end/64088
396         * fold-const.c (const_unop): Re-instantiate missing condition
397         before calling fold_abs_const.
398
399         PR tree-optimization/64088
400         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
401         the stmt break from the loop over use operands.
402
403 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
404
405         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
406         Define.
407         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
408         (fold_builtin_cpu): Ditto.
409         * doc/extend.texi: Documment it.
410
411 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
412
413         PR middle-end/64067
414         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
415         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
416         not only if modifier is EXPAND_INITIALIZER, but whenever
417         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
418
419         PR tree-optimization/64024
420         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
421         field.  Add simd_clone_info field.
422         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
423         (STMT_VINFO_SIMD_CLONE_INFO): Define.
424         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
425         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
426         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
427         base and linear_step from analysis phase and use it during transform
428         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
429         multiplied by linear_step.
430         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
431
432         PR lto/64025
433         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
434         if it is CONSTANT_P other than CONST_INT.
435
436 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
437
438         PR target/59593
439         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
440         based on mode size.
441         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
442         make it TARGET_EITHER.
443         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
444         and move HFmode handling from consttable_4 to it.
445         (consttable_4): Move HFmode handling to consttable_2 pattern.
446         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
447         (consttable_2): Ditto.
448
449 2014-11-27  Richard Biener  <rguenther@suse.de>
450
451         * tree-ssa-sccvn.c (try_to_simplify): Allow
452         gimple_fold_stmt_to_constant_1 to follow SSA edges.
453
454 2014-11-27  Richard Biener  <rguenther@suse.de>
455
456         PR tree-optimization/64083
457         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
458         forcibly mark loop for removal the wrong way.
459
460 2014-11-27  Richard Biener  <rguenther@suse.de>
461
462         PR middle-end/63704
463         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
464         and instead return false when !fstrict-aliasing.
465
466 2014-11-27  Richard Biener  <rguenther@suse.de>
467
468         PR tree-optimization/61634
469         * tree-vect-slp.c: Include gimple-walk.h.
470         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
471         down the SLP tree for one scalar statement.
472         (vect_detect_hybrid_slp_1): New walker function.
473         (vect_detect_hybrid_slp_2): Likewise.
474         (vect_detect_hybrid_slp): Properly handle pattern statements
475         in a pre-scan over all loop stmts.
476
477 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
478
479         Revert:
480         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
481         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
482         aarch64_convert_mode, aarch64_gen_ccmp_first,
483         aarch64_gen_ccmp_next): New functions.
484         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
485
486 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
487
488         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
489         without -pie or -shared, error on -fsanitize=thread -static instead.
490
491 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
492
493         PR ipa/61190
494         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
495         (cgraph_node::function_or_virtual_thunk_symbol): New function.
496         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
497         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
498         Add new optional parameter exclude_virtual_thunks.
499         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
500         optional parameter exclude_virtual_thunks.
501         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
502         (cgraph_node::set_pure_flag): Likewise.
503         (cgraph_node::function_symbol): Simplified.
504         (cgraph_node::function_or_virtual_thunk_symbol): New function.
505         * ipa-pure-const.c (analyze_function): For virtual thunks set
506         pure_const_state to IPA_NEITHER.
507         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
508
509 2014-11-26  Richard Biener  <rguenther@suse.de>
510
511         PR middle-end/63738
512         * tree-data-ref.c (split_constant_offset_1): Do not follow
513         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
514
515 2014-11-26  Richard Biener  <rguenther@suse.de>
516
517         * fold-const.h (const_unop): Declare.
518         (const_binop): Likewise.
519         * fold-const.c (const_binop): Export overload that expects
520         a type parameter and dispatches to fold_relational_const as well.
521         Check both operand kinds for guarding the transforms.
522         (const_unop): New function, with constant folding from fold_unary_loc.
523         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
524         Remove constant folding done there from the simplifications.
525         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
526         (fold_negate_expr): Remove dead code from the REAL_CST case.
527         Avoid building garbage in the COMPLEX_CST case.
528         * gimple-match-head.c (gimple_resimplify1): Dispatch to
529         const_unop.
530         (gimple_resimplify2): Dispatch to const_binop.
531         (gimple_simplify): Likewise.
532
533 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
534
535         PR bootstrap/63995
536         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
537         debug statement when searching for a new position for
538         bounds load/creation statement.
539
540 2014-11-26  Marek Polacek  <polacek@redhat.com>
541
542         PR sanitizer/63788
543         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
544         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
545         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
546
547 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
548
549         PR lto/64075
550         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
551         proper size for function_code bitfield.
552         (pack_ts_function_decl_value_fields): Likewise.
553
554 2014-11-21  Mark Wielaard  <mjw@redhat.com>
555
556         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
557         * opts.c (common_handle_option): Accept -gdwarf-5.
558         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
559         DW_LANG_C_plus_plus_14.
560         (lower_bound_default): Likewise. Plus DW_LANG_C11.
561         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
562         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
563         (output_compilation_unit_header): Output at most a DWARFv4 header.
564         (output_skeleton_debug_sections): Likewise.
565         (output_line_info): Likewise.
566         (output_aranges): Document header version number.
567
568 2014-11-26  Richard Biener  <rguenther@suse.de>
569
570         * gimple-fold.c (get_symbol_constant_value): Allow all
571         GIMPLE register type zero-constants.
572
573 2014-11-26  Mark Wielaard  <mjw@redhat.com>
574
575         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
576         function decl has TREE_THIS_VOLATILE.
577
578 2014-11-26  Richard Biener  <rguenther@suse.de>
579
580         PR tree-optimization/62238
581         * tree-predcom.c (ref_at_iteration): Unshare the expression
582         before gimplifying it.
583         (prepare_initializers_chain): Discard unused seq.
584
585 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
586
587         * ira-lives.c (process_bb_node_lives): Make code with conditional
588         REAL_PIC_OFFSET_TABLE_REGNUM.
589
590 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
591
592         PR target/63527
593         * ira-lives.c (process_bb_node_lives): Check and remove conflict
594         of pic pseudo with pic hard reg.
595
596 2014-11-25  Rohit  <rohitarulraj@freescale.com>
597
598         PR bootstrap/63703
599         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
600         added GCC hard register numbers for SPE high registers.
601
602 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
603
604         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
605         before removing it, not after.
606
607 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
608
609         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
610         PATTERN call.
611
612 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
613
614         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
615         of addic.
616
617 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
618
619         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
620         (rest of file): Replace those with code resp. CODE.
621
622 2014-11-25  Tom de Vries  <tom@codesourcery.com>
623
624         * tree-cfg.c (verify_sese): New function.
625         (move_sese_region_to_fn): Call verify_sese.
626         * tree-cfg.h (verify_sese): Declare.
627
628 2014-11-25  Richard Biener  <rguenther@suse.de>
629
630         PR lto/64065
631         * lto-streamer-out.c (output_struct_function_base): Stream
632         last_clique field.
633         * lto-streamer-in.c (input_struct_function_base): Likewise.
634
635 2014-11-25  Martin Liska  <mliska@suse.cz>
636
637         PR bootstrap/64050
638         PR ipa/64060
639         * sreal.c (sreal::operator+): Addition fixed.
640         (sreal::signedless_plus): Negative numbers are
641         handled correctly.
642         (sreal::operator-): Subtraction is fixed.
643         (sreal::signedless_minus): Negative numbers are
644         handled correctly.
645         * sreal.h (sreal::operator<): Equal negative numbers
646         are compared correctly.
647         (sreal::shift): New checking asserts are introduced.
648         Operation is fixed.
649
650 2014-11-25  Richard Biener  <rguenther@suse.de>
651
652         PR tree-optimization/61927
653         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
654         of group and pattern analysis to the one in GCC 4.8.
655
656 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
657             Jakub Jelinek  <jakub@redhat.com>
658
659         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
660         strlen, strncpy.
661         * lto-wrapper.c (append_offload_options): Likewise.
662
663 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
664
665         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
666         load the static chain if the call was originally direct.
667
668 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
669
670         PR ipa/64059
671         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
672         devirtualization is disabled.
673
674 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
675
676         PR target/63965
677         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
678         Altivec & -16 mask if the type is not valid for Altivec registers.
679         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
680         reg) that occurs during push_reload processing.
681
682         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
683         alternative for moving constant vectors which are easy altivec
684         constants to GPRs.  Set the length attribute each of the
685         alternatives.
686
687         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
688         work in progress patch was committed instead of the fixes for
689         63965.
690         * config/rs6000/rs6000.c: Likewise.
691
692 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
693
694         PR ipa/63671
695         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
696         and -fno-devirtualize more carefully.
697         (can_remove_node_now_p): Update.
698
699 2014-11-24  Andrew Pinski  <apinski@cavium.com>
700
701         PR rtl-opt/63972
702         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
703
704 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
705
706         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
707
708 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
709
710         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
711         Refactor by combining switch statements and make arrays into scalars.
712
713 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
714
715         PR c++/58561
716         * dbxout.c: Include stringpool.h
717         (dbxout_type) [default]: Ignore auto type.
718
719 2014-11-24  Richard Biener  <rguenther@suse.de>
720
721         PR tree-optimization/63679
722         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
723         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
724         to properly leave off at -1.
725         (fully_constant_vn_reference_p): Generalize folding from
726         constant initializers.
727         (vn_reference_lookup_3): When looking through aggregate copies
728         handle offsetted reads and try simplifying the result to
729         a constant.
730         * gimple-fold.h (fold_ctor_reference): Export.
731         * gimple-fold.c (fold_ctor_reference): Likewise.
732
733 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
734
735         * simplify-rtx.c (simplify_ternary_operation): Simplify
736         vec_merge (vec_duplicate (vec_select)).
737
738 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
739
740         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
741         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
742         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
743
744 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
745
746         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
747         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
748         (cortexa57_tunings): Likewise.
749         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
750
751 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
752
753         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
754         in the not conditional jump case.
755         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
756         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
757
758 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
759
760         * config/aarch64/aarch64.c: Include tm-constrs.h
761         (AARCH64_FUSE_ADRP_ADD): Define.
762         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
763         (cortexa53_tunings): Likewise.
764         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
765
766 2014-11-24  Martin Liska  <mliska@suse.cz>
767
768         * ipa-inline.c (edge_badness): long is replaced by sreal
769         as fibonacci_heap template type.
770         (update_edge_key): Likewise.
771         (inline_small_functions): Likewise.
772
773 2014-11-24  Martin Liska  <mliska@suse.cz>
774
775         * predict.c (propagate_freq): More elegant sreal API is used.
776         (estimate_bb_frequencies): Precomputed constants replaced by integer
777         constants.
778         * sreal.c (sreal::normalize): New function.
779         (sreal::to_int): Likewise.
780         (sreal::operator+): Likewise.
781         (sreal::operator-): Likewise.
782         (sreal::signedless_plus): Likewise.
783         (sreal::signedless_minus): Likewise.
784         (sreal::operator/): Negative number support is added.
785         * sreal.h: Definition of new functions added.
786         (inline sreal operator<<): New function.
787         (inline sreal operator>>): Likewise.
788
789 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
790
791         * config/aarch64/aarch64-protos.h (struct tune_params): Add
792         fuseable_ops field.
793         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
794         (cortexa53_tunings): Likewise.
795         (cortexa57_tunings): Likewise.
796         (thunderx_tunings): Likewise.
797         (aarch64_macro_fusion_p): New function.
798         (aarch_macro_fusion_pair_p): Likewise.
799         (TARGET_SCHED_MACRO_FUSION_P): Define.
800         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
801         (AARCH64_FUSE_MOV_MOVK): Likewise.
802         (AARCH64_FUSE_NOTHING): Likewise.
803
804 2014-11-24  Martin Liska  <mliska@suse.cz>
805
806         PR lto/63968
807         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
808         with replace_key method.
809         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
810         (fibonacci_heap::replace_key_data): Likewise.
811         (fibonacci_heap::replace_key): New method that can even increment key,
812         this operation costs O(log N).
813         (fibonacci_heap::extract_min): New argument.
814         (fibonacci_heap::delete_node): Likewise.
815
816 2014-11-24  Richard Biener  <rguenther@suse.de>
817
818         PR tree-optimization/55334
819         * function.h (struct function): Add last_clique member.
820         * tree-inline.c (remap_dependence_clique): New function.
821         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
822         (copy_tree_body_r): Likewise.
823         (copy_cfg_body): Free dependence map.
824         (copy_gimple_seq_and_replace_locals): Likewise.
825         * tree-pretty-print.c (dump_generic_node): Dump
826         dependence info.
827         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
828         to answer alias query.
829         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
830         tree-pretty-print.h and gimple-walk.h.
831         (struct variable_info): Add is_restrict_var flag and ruid
832         member.
833         (new_var_info): Initialize is_restrict_var.
834         (make_constraint_from_restrict): Likewise.
835         (create_variable_info_for): Exclude restricts from global vars
836         from new handling.
837         (intra_create_variable_infos): But not those from parameters.
838         (visit_loadstore): New function.
839         (maybe_set_dependence_info): Likewise.
840         (compute_dependence_clique): Likewise.
841         (compute_may_aliases): Call compute_dependence_clique.
842         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
843         to fake MEM_REF.
844         (dr_may_alias_p): Use recorded dependence info to answer
845         alias query.
846         * tree-core.h (struct tree_base): Add clique, base struct in
847         union.
848         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
849         (MR_DEPENDENCE_BASE): Likewise.
850         * tree-inline.h (dependence_hasher): New hash-map kind.
851         (struct copy_body_data): Add dependence_map pointer.
852         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
853         throwing away dependence info.
854         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
855         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
856
857 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
858
859         PR target/53976
860         * config/sh/sh_optimize_sett_clrt.cc
861         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
862         of void.  Abort at complex edges.
863         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
864         returned false.
865
866 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
867
868         PR other/63694
869         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
870         declarations.
871         * configure: Regenerated.
872         * config.in: Regenerated.
873
874 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
875
876         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
877         clones as having abstract origin used.
878         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
879         origin check.
880         (clone_inlined_nodes): Copy abstract originflag.
881         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
882         abstract origin node.
883
884 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
885
886         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
887         * config/i386/i386.c (ix86_option_override_internal): Do not increase
888         PARAM_MAX_COMPLETELY_PEELED_INSNS.
889
890 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
891
892         PR target/63783
893         PR target/51244
894         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
895         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
896         Adjust related comments throughout the file.
897
898 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
899
900         PR target/63986
901         PR target/51244
902         * config/sh/sh.c (sh_is_logical_t_store_expr,
903         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
904         (sh_split_movrt_negc_to_movt_xor): New function.
905         (sh_find_set_of_reg): Move to ...
906         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
907         to template function.
908         (set_of_reg): Use rtx_insn* for insn member.
909         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
910         rtx_insn* for insn argument.
911         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
912         sequence using new sh_split_movrt_negc_to_movt_xor function.
913         (movrt_xor): Allow also for SH2A.
914         (*movt_movrt): Delete insns and splits.
915
916 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
917
918         PR tree-optimization/60770
919         * tree-sra.c (clobber_subtree): New function.
920         (sra_modify_constructor_assign): Call it.
921
922 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
923
924         PR target/63897
925         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
926         argument.
927         (process_bb_lives): Rename dead_insn_p on remove_p
928         and global_live_info_p on dead_insn_p.  Calculate local live info
929         unconditionally.  Remove last argument in calls mark_regno_live and
930         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
931         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
932         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
933         flag of live info change.
934         (lra_create_live_ranges): New.
935
936 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
937
938         PR target/63848
939         PR target/63975
940         * internal-fn.c (expand_arith_overflow_result_store,
941         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
942         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
943         adjust arguments to those functions.  Use unsignedp = true for
944         EQ, NE, GEU, LEU, LTU and GTU comparisons.
945
946         PR tree-optimization/64006
947         * tree-vrp.c (stmt_interesting_for_vrp): Return true
948         for {ADD,SUB,MUL}_OVERFLOW internal calls.
949         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
950         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
951         immediate uses would change their value ranges and return
952         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
953         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
954         interesting for vrp.
955
956 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
957
958         PR target/63965
959         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
960         Altivec & -16 mask if the type is not valid for Altivec registers.
961         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
962         reg) that occurs during push_reload processing.
963
964         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
965         alternative for moving constant vectors which are easy altivec
966         constants to GPRs.  Set the length attribute each of the
967         alternatives.
968
969 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
970
971         * configure.ac: When checking for MIPS .module support ensure that
972         o32 FPXX is supported to avoid a second configure check.
973         * configure: Regenerate.
974
975 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
976
977         * config/aarch64/iterators.md (VS): New mode iterator.
978         (vsi2qi): New mode attribute.
979         (VSI2QI): Likewise.
980         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
981         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
982         * config/aarch64/aarch64-builtins.c
983         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
984
985 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
986
987         PR bootstrap/63784
988         * configure: Regenerated.
989
990 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
991
992         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
993
994 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
995
996         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
997         OPTION_MASK_ISA_PCOMMIT_SET): New.
998         (ix86_handle_option): Handle OPT_mpcommit.
999         * config.gcc: Add pcommitintrin.h
1000         * config/i386/pcommitintrin.h: New file.
1001         * config/i386/cpuid.h (bit_PCOMMIT): Define.
1002         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
1003         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1004         __PCOMMIT__.
1005         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
1006         (PTA_PCOMMIT): Define.
1007         (ix86_option_override_internal): Handle new option.
1008         (ix86_valid_target_attribute_inner_p): Add pcommit.
1009         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
1010         (bdesc_special_args): Add __builtin_ia32_pcommit.
1011         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
1012         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
1013         (pcommit): New instruction.
1014         * config/i386/i386.opt: Add mpcommit.
1015         * config/i386/x86intrin.h: Include pcommitintrin.h.
1016
1017 2014-11-20  Mark Wielaard  <mjw@redhat.com>
1018
1019         PR debug/38757
1020         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
1021         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
1022         (darwin_override_options): Likewise.
1023         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
1024         Likewise.
1025         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
1026         Likewise.
1027         * dbxout.c (get_lang_number): Likewise.
1028         (dbxout_type): Likewise.
1029         (dbxout_symbol_location): Likewise.
1030         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
1031         also for DW_LANG_{C,C99,ObjC}.
1032         (highest_c_language): New function.
1033         (gen_compile_unit_die): Call highest_c_language to merge LTO
1034         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
1035         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
1036         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
1037         * langhooks.h (struct lang_hooks): Add version comment to name.
1038         (lang_GNU_C): New function declaration.
1039         (lang_GNU_CXX): Likewise.
1040         * langhooks.c (lang_GNU_C): New function.
1041         (lang_GNU_CXX): Likewise.
1042         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
1043
1044 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
1045
1046         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
1047         OPTION_MASK_ISA_CLWB_SET): New.
1048         (ix86_handle_option): Handle OPT_mclwb.
1049         * config.gcc: Add clwbintrin.h.
1050         * config/i386/clwbintrin.h: New file.
1051         * config/i386/cpuid.h (bit_CLWB): Define.
1052         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
1053         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1054         __CLWB__.
1055         * config/i386/i386.c (ix86_target_string): Add -mclwb.
1056         (PTA_CLWB): Define.
1057         (ix86_option_override_internal): Handle new option.
1058         (ix86_valid_target_attribute_inner_p): Add clwb.
1059         (ix86_builtins): Add IX86_BUILTIN_CLWB.
1060         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
1061         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
1062         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
1063         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
1064         (clwb): New instruction.
1065         * config/i386/i386.opt: Add mclwb.
1066         * config/i386/x86intrin.h: Include clwbintrin.h.
1067
1068 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
1069
1070         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
1071         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
1072         (ix86_handle_option): Handle OPT_mavx512vbmi.
1073         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
1074         * config/i386/avx512vbmiintrin.h: New file.
1075         * config/i386/avx512vbmivlintrin.h: Ditto.
1076         * config/i386/cpuid.h (bit_AVX512VBMI): New.
1077         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
1078         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1079         __AVX512VBMI__.
1080         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
1081         (PTA_AVX512VBMI): Define.
1082         (ix86_option_override_internal): Handle new options.
1083         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
1084         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
1085         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
1086         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
1087         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
1088         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
1089         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
1090         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
1091         IX86_BUILTIN_VPERMI2VARQI128.
1092         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
1093         __builtin_ia32_vpmultishiftqb256_mask,
1094         __builtin_ia32_vpmultishiftqb128_mask,
1095         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
1096         __builtin_ia32_vpermt2varqi512_maskz,
1097         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
1098         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
1099         __builtin_ia32_vpermt2varqi256_maskz,
1100         __builtin_ia32_vpermt2varqi128_mask,
1101         __builtin_ia32_vpermt2varqi128_maskz,
1102         __builtin_ia32_vpermi2varqi256_mask,
1103         __builtin_ia32_vpermi2varqi128_mask.
1104         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
1105         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
1106         * config/i386/i386.opt: Add mavx512vbmi.
1107         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
1108         avx512vbmivlintrin.h.
1109         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
1110         (VI1_AVX512VL): New iterator.
1111         (<avx512>_permvar<mode><mask_name>): Use it.
1112         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
1113         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
1114         (<avx512>_vpermi2var<mode>3_mask): Ditto.
1115         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
1116         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
1117         (<avx512>_vpermt2var<mode>3_mask): Ditto.
1118         (vpmultishiftqb<mode><mask_name>): Ditto.
1119
1120 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1121
1122         PR rtl-optimization/63952
1123         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
1124         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
1125         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
1126
1127 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
1128
1129         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
1130         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
1131         (ix86_handle_option): Handle OPT_mavx512ifma.
1132         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
1133         * config/i386/avx512ifmaintrin.h: New file.
1134         * config/i386/avx512ifmaivlntrin.h: Ditto.
1135         * config/i386/cpuid.h (bit_AVX512IFMA): New.
1136         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1137         avx512ifma.
1138         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1139         __AVX512IFMA__.
1140         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
1141         (PTA_AVX512IFMA): Define.
1142         (ix86_option_override_internal): Handle new options.
1143         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
1144         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
1145         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
1146         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
1147         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
1148         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
1149         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
1150         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
1151         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
1152         __builtin_ia32_vpmadd52luq512_maskz,
1153         __builtin_ia32_vpmadd52huq512_mask,
1154         __builtin_ia32_vpmadd52huq512_maskx,
1155         __builtin_ia32_vpmadd52luq256_mask,
1156         __builtin_ia32_vpmadd52luq256_maskz,
1157         __builtin_ia32_vpmadd52huq256_mask,
1158         __builtin_ia32_vpmadd52huq256_maskz,
1159         __builtin_ia32_vpmadd52luq128_mask,
1160         __builtin_ia32_vpmadd52luq128_maskz,
1161         __builtin_ia32_vpmadd52huq128_mask,
1162         __builtin_ia32_vpmadd52huq128_maskz,
1163         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
1164         * config/i386/i386.opt: Add mavx512ifma.
1165         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
1166         avx512ifmavlintrin.h.
1167         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
1168         UNSPEC_VPMADD52HUQ.
1169         (VPMADD52): New iterator.
1170         (vpmadd52type): New attribute.
1171         (vpamdd52huq<mode>_maskz): New.
1172         (vpamdd52luq<mode>_maskz): Ditto.
1173         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
1174         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
1175
1176 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
1177
1178         Revert:
1179         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
1180         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
1181
1182 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
1183
1184         * config/mips/mips.c (mips_process_sync_loop): Place a 
1185         nop in the delay slot of the branch likely instruction.
1186         (mips_output_sync_loop): Ensure mips_branch_likely is 
1187         set before calling mips_output_sync_loop.
1188         (mips_sync_loop_insns): Likewise.
1189
1190 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1191
1192         PR/target 63673
1193         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
1194         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
1195         double.
1196
1197 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
1198
1199         Forward-port from 2014-10-30 4_9-branch r216934
1200
1201         PR target/63633
1202         * config/avr/avr-protos.h (regmask): New inline function.
1203         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
1204         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
1205         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
1206         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
1207         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
1208         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
1209         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
1210         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
1211         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
1212         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
1213         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
1214         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
1215         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
1216         needed.
1217
1218 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
1219
1220         PR target/61137
1221         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
1222         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
1223
1224 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
1225
1226         * config/aarch64/aarch64-simd.md
1227         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
1228         output mnemonic and operands.
1229         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
1230         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
1231
1232 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
1233
1234         * config/i386/i386.c (ix86_option_override_internal): Increase
1235         PARAM_MAX_COMPLETELY_PEELED_INSNS.
1236
1237 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
1238
1239         PR target/60451
1240         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
1241         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
1242         replace for V16QI, V16HI and V32QI modes.
1243         (ix86_expand_vec_perm_const_1): Add new expand.
1244
1245 2014-11-21  Nick Clifton  <nickc@redhat.com>
1246
1247         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
1248         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
1249         (rl78_expand_prologue): Save the ES register in interrupt handlers
1250         that use it.
1251         (rl78_expand_epilogue): Restore the ES register if necessary.
1252         (rl78_start_function): Mention if the function uses the ES
1253         register.
1254         (rl78_lo16): Record the use of the ES register.
1255         (transcode_memory_rtx): Likewise.
1256
1257 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
1258
1259         PR tree-optimization/61773
1260         * tree-ssa-strlen.c (get_string_length): Don't assert
1261         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
1262
1263         PR target/63910
1264         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
1265         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
1266         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
1267
1268 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
1269
1270         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
1271         HOST_WIDE_INT_M1U instead of ~0.
1272         (includes_rldicr_lshift_p): Likewise.
1273
1274 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
1275
1276         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
1277         we need to look into its operand to determine if it is a valid
1278         address.
1279
1280 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
1281
1282         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
1283         vaarg_p argument and create correct CFI info.
1284         (nds32_expand_prologue): Pass true or false to
1285         nds32_emit_stack_push_multiple function.
1286
1287 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
1288
1289         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
1290         as RTX_FRAME_RELATED_P rtx.
1291
1292 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
1293
1294         * config/nds32/nds32.opt (march): Add help message.
1295
1296 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
1297
1298         * tree-vrp.c (test_for_singularity): New parameter
1299         strict_overflow_p.  Set *strict_overflow_p to true if signed
1300         overflow must be undefined for the return value to satisfy the
1301         conditional.
1302         (simplify_cond_using_ranges): Don't perform the simplification
1303         if it violates overflow rules.
1304
1305 2014-11-20  Marek Polacek  <polacek@redhat.com>
1306
1307         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
1308
1309 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
1310
1311         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
1312         condition would be removed due to undefined behaviour.
1313
1314 2014-11-20  Andrew Pinski  <apinski@cavium.com>
1315
1316         PR ipa/63981
1317         PR ipa/63982
1318         * ipa-polymorphic-call.c (possible_placement_new):
1319         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
1320         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
1321         (extr_type_from_vtbl_ptr_store): Likewise.
1322
1323 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
1324
1325         * config/rs6000/constraints.md: Avoid signed integer overflows.
1326         * config/rs6000/predicates.md: Likewise.
1327         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
1328         (includes_rldic_lshift_p): Likewise.
1329         (includes_rldicr_lshift_p): Likewise. 
1330         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
1331         * loop-iv.c (determine_max_iter): Likewise.
1332         (iv_number_of_iterations): Likewise.
1333         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
1334         * varasm.c (get_section_anchor): Likewise.
1335
1336 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
1337
1338         PR target/63870
1339         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
1340         expression to aarch64_simd_lane_bounds.
1341         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
1342         prototype.
1343         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
1344         call to aarch64_simd_lane_bounds.
1345         (aarch64_get_lanedi): Likewise.
1346         (aarch64_ld2_lane<mode>): Likewise.
1347         (aarch64_ld3_lane<mode>): Likewise.
1348         (aarch64_ld4_lane<mode>): Likewise.
1349         (aarch64_im_lane_boundsi): Likewise.
1350         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
1351         parameter. Report calling function in error message if exp is non-NULL.
1352
1353 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
1354
1355         PR target/60111
1356         * config/sh/sh.c: Use signed char for signed field.
1357
1358 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1359
1360         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
1361         hash_table.
1362
1363 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1364
1365         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
1366         tree-scalar-evolution.c: Replace htab with hash_table.
1367
1368 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1369
1370         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
1371         (lto_free_function_in_decl_state): Likewise.
1372         * lto-streamer-out.c (copy_function_or_variable): Likewise.
1373         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
1374         (lto_file_decl_data_num_ ## name ## s): Likewise.
1375         (struct lto_tree_ref_table): Remove.
1376         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
1377
1378 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1379
1380         * hash-map.h (hash_map::iterator): New class.
1381         (hash_map::begin): New method.
1382         (hash_map::end): Likewise.
1383         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
1384         replace splay_tree with hash_map.
1385
1386 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1387
1388         * hash-table.h (hash_table::hash_table): Call alloc_entries.
1389         (hash_table::alloc_entries): new method.
1390         (hash_table::expand): Call alloc_entries.
1391         (hash_table::empty): Likewise.
1392
1393 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1394
1395         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
1396         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
1397
1398 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
1399
1400         * doc/gty.texi: Document the new cache gty attribute.
1401         * gengtype.c (finish_cache_funcs): New function.
1402         (write_roots): Call gt_clear_cache on global variables with the cache
1403         gty attribute.
1404         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
1405         * ggc.h (gt_clear_caches): New declaration.
1406         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
1407         memory.
1408         (gt_cleare_cache): New function.
1409         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
1410
1411 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
1412
1413         * combine.c (try_combine): Prefer to delete dead SETs inside
1414         a PARALLEL over keeping them.
1415
1416 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
1417
1418         * combine.c (combine_validate_cost): Always print the insn costs
1419         to the dump file.
1420
1421 2014-11-20  Richard Henderson <rth@redhat.com>
1422
1423         PR target/63977
1424         * config/i386/i386.c (ix86_static_chain): Reinstate the check
1425         for DECL_STATIC_CHAIN.
1426
1427 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
1428
1429         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
1430         Fixup prototype.
1431         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
1432         aarch64_cannot_force_const_mem, aarch64_classify_address,
1433         aarch64_classify_symbolic_expression): Fixup call to
1434         aarch64_classify_symbol.
1435         (aarch64_classify_symbol): Add range-checking for
1436         symbol + offset addressing for tiny and small models.
1437
1438 2014-11-20  Richard Biener  <rguenther@suse.de>
1439
1440         PR middle-end/63962
1441         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
1442         Guard with single-use operand 0.
1443
1444 2014-11-20   Richard Biener  <rguenther@suse.de>
1445
1446         PR tree-optimization/63677
1447         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
1448         (avail_exprs_stack): Make a vector of pairs.
1449         (struct hash_expr_elt): Replace stmt member with vop member.
1450         (expr_elt_hasher::equal): Simplify.
1451         (initialize_hash_element): Adjust.
1452         (initialize_hash_element_from_expr): Likewise.
1453         (dom_opt_dom_walker::thread_across_edge): Likewise.
1454         (record_cond): Likewise.
1455         (dom_opt_dom_walker::before_dom_children): Likewise.
1456         (print_expr_hash_elt): Likewise.
1457         (remove_local_expressions_from_table): Restore previous state
1458         if requested.
1459         (record_equivalences_from_stmt): Record &x + CST as constant
1460         &MEM[&x, CST] for further propagation.
1461         (vuse_eq): New function.
1462         (lookup_avail_expr): For loads use the alias oracle to see
1463         whether a candidate from the expr hash is usable.
1464         (avail_expr_hash): Do not hash VUSEs.
1465
1466 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1467
1468         PR target/59593
1469         * config/arm/arm.md (*movhi_insn): Use right formatting
1470         for immediate.
1471
1472 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
1473
1474         PR sanitizer/63845
1475         * function.c (assign_parms): Move init of pic_offset_table_rtx
1476         from here to...
1477         * cfgexpand.c (expand_used_vars): ...here.
1478
1479 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
1480
1481         * tree.c (free_lang_data_in_type): If BINFO has no important
1482         information in it, set it to NULL.
1483         (get_binfo_at_offset): Do not walk fields, only bases.
1484         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
1485         to be NULL.
1486         * ipa-polymorphic-call.c (record_known_type): Likewise.
1487
1488 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1489
1490         PR jit/63854
1491         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
1492         congruence_class_group *.
1493
1494 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
1495
1496         PR target/63947
1497         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
1498         Output "b" and "nb" suffix for FP mode.
1499
1500 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
1501
1502         PR bootstrap/63963
1503         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
1504         DECL_FUNCTION_SPECIFIC_TARGET
1505         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
1506         DECL_FUNCTION_SPECIFIC_TARGET.
1507
1508 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1509
1510         PR jit/63854
1511         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
1512
1513 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1514
1515         PR jit/63854
1516         * lra.c (lra): After creating live ranges in preparation for call
1517         to lra_inheritance, set live_p to true.
1518
1519 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1520
1521         PR jit/63854
1522         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
1523         "path", delete it.
1524         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
1525
1526 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1527
1528         PR jit/63854
1529         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
1530         vec<> to auto_vec<> to fix a leak.
1531
1532 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1533
1534         PR jit/63854
1535         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
1536
1537 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1538
1539         PR jit/63854
1540         * ira-costs.c (ira_costs_c_finalize): New function.
1541         * ira.h (ira_costs_c_finalize): New prototype.
1542         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
1543
1544 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1545
1546         PR jit/63854
1547         * ipa-reference.c (ipa_reference_c_finalize): Release
1548         optimization_summary_obstack.
1549
1550 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1551
1552         PR jit/63854
1553         * toplev.c (toplev::finalize): Free opts_obstack.
1554
1555 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1556
1557         PR jit/63854
1558         * toplev.c (toplev::finalize): Clean up save_decoded_options.
1559
1560 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1561
1562         PR jit/63854
1563         * bb-reorder.c
1564         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
1565         local bbs_in_hot_partition from vec<> to auto_vec<>.
1566
1567 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1568
1569         PR jit/63854
1570         * config/alpha/alpha.c (alpha_option_override): Remove static from
1571         "handle_trap_shadows_info" and "align_insns_info".
1572         * config/i386/i386.c (ix86_option_override): Likewise for
1573         "insert_vzeroupper_info".
1574         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
1575         "rl78_devirt_info" and "rl78_move_elim_info".
1576         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
1577         "analyze_swaps_info".
1578         * context.c (gcc::context::~context): New.
1579         * context.h (gcc::context::~context): New.
1580         * dumpfile.c (dump_files): Add "false" initializers for new field
1581         "owns_strings".
1582         (gcc::dump_manager::~dump_manager): New.
1583         (gcc::dump_manager::dump_register): Add param "take_ownership".
1584         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
1585         (gcc::dump_manager::~dump_manager): New.
1586         (gcc::dump_manager::dump_register): Add param "take_ownership".
1587         * pass_manager.h (gcc::pass_manager::operator delete): New.
1588         (gcc::pass_manager::~pass_manager): New.
1589         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
1590         new "owns_strings" argument to dump_register.
1591         (pass_manager::operator delete): New.
1592         (delete_pass_tree): New function.
1593         (pass_manager::~pass_manager): New.
1594         * statistics.c (statistics_early_init): Pass "false" to
1595         new "owns_strings" argument to dump_register.
1596         * toplev.c (toplev::finalize): Clean up the context and thus the
1597         things it owns.
1598
1599 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1600
1601         PR jit/63854
1602         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
1603         obstack_free when cleaning up valid_mode_changes_obstack.
1604
1605 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1606
1607         PR jit/63854
1608         * opts.c (finalize_options_struct): New.
1609         * opts.h (finalize_options_struct): New.
1610         * toplev.c (toplev::finalize): Call finalize_options_struct
1611         on global_options and global_options_set.
1612
1613 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1614             Jakub Jelinek  <jakub@redhat.com>
1615
1616         PR driver/36312
1617         PR driver/63837
1618         * gcc.c (process_command): Don't check for input/output
1619         filename equality if output is HOST_BIT_BUCKET.
1620         * toplev.c (init_asm_output): Likewise.
1621
1622 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
1623
1624         Merger of git branch "gimple-classes-v2-option-3".
1625
1626         * ChangeLog.gimple-classes: New.
1627
1628         * coretypes.h (struct gcond): Add forward decl.
1629         (struct gdebug): Likewise.
1630         (struct ggoto): Likewise.
1631         (struct glabel): Likewise.
1632         (struct gswitch): Likewise.
1633         (struct gassign): Likewise.
1634         (struct gasm): Likewise.
1635         (struct gcall): Likewise.
1636         (struct gtransaction): Likewise.
1637         (struct greturn): Likewise.
1638         (struct gbind): Likewise.
1639         (struct gcatch): Likewise.
1640         (struct geh_filter): Likewise.
1641         (struct geh_mnt): Likewise.
1642         (struct geh_else): Likewise.
1643         (struct gresx): Likewise.
1644         (struct geh_dispatch): Likewise.
1645         (struct gphi): Likewise.
1646         (struct gtry): Likewise.
1647         (struct gomp_atomic_load): Likewise.
1648         (struct gomp_atomic_store): Likewise.
1649         (struct gomp_continue): Likewise.
1650         (struct gomp_critical): Likewise.
1651         (struct gomp_for): Likewise.
1652         (struct gomp_parallel): Likewise.
1653         (struct gomp_task): Likewise.
1654         (struct gomp_sections): Likewise.
1655         (struct gomp_single): Likewise.
1656         (struct gomp_target): Likewise.
1657         (struct gomp_teams): Likewise.
1658
1659         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
1660         for renaming of gimple subclasses.
1661
1662         * gdbhooks.py: Update.
1663
1664         * gimple-iterator.c (gsi_for_phi): New.
1665         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
1666         to gphi_iterator.
1667         * gimple-iterator.h (struct gphi_iterator): New subclass of
1668         gimple_stmt_iterator.
1669         (gsi_for_phi): New prototype.
1670         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
1671         to gphi_iterator.
1672         (gsi_next_nonvirtual_phi): Strengthen param from
1673         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
1674         gimple to gphi *.
1675
1676         * gsstruct.def: Update for renamings of classes.
1677
1678         * gimple.c (gimple_build_return): Strengthen return type from
1679         gimple to greturn *.
1680         (gimple_call_reset_alias_info): Strengthen param to gcall *.
1681         (gimple_build_call_1): Strengthen return type from gimple to
1682         gcall *.
1683         (gimple_build_call_vec): Likewise.
1684         (gimple_build_call): Likewise.
1685         (gimple_build_call_valist): Likewise.
1686         (gimple_build_call_internal_1): Likewise.
1687         (gimple_build_call_internal): Likewise.
1688         (gimple_build_call_internal_vec): Likewise.
1689         (gimple_build_call_from_tree): Likewise.
1690         (gimple_build_assign_stat): Strengthen return type from gimple to
1691         gassign *.
1692         (gimple_build_assign_with_ops): Likewise.
1693         (gimple_build_assign_with_ops): Likewise.
1694         (gimple_build_cond): Strengthen return type from gimple to
1695         gcond *.
1696         (gimple_build_cond_from_tree): Likewise.
1697         (gimple_cond_set_condition_from_tree): Require a gcond *.
1698         (gimple_build_label): Strengthen return type from gimple to
1699         glabel *.
1700         (gimple_build_goto): Strengthen return type from gimple to
1701         ggoto *.
1702         (gimple_build_bind): Strengthen return type from gimple to
1703         gbind *.
1704         (gimple_build_asm_1): Strengthen return type from gimple to
1705         gasm *.
1706         (gimple_build_asm_vec): Likewise.
1707         (gimple_build_catch): Strengthen return type from gimple to
1708         gcatch *.
1709         (gimple_build_eh_filter): Strengthen return type from gimple to
1710         geh_filter *.
1711         (gimple_build_eh_must_not_throw): Strengthen return type from
1712         gimple to geh_mnt *.
1713         (gimple_build_eh_else): Strengthen return type from gimple to
1714         geh_else *.
1715         (gimple_build_try): Update for renaming of gimple_statement_try to
1716         gtry.
1717         (gimple_build_resx): Strengthen return type from gimple to
1718         gresx *.
1719         (gimple_build_switch_nlabels): Strengthen return type from gimple
1720         to gswitch *.
1721         (gimple_build_switch): Likewise.
1722         (gimple_build_eh_dispatch): Strengthen return type from gimple to
1723         geh_dispatch *.
1724         (gimple_build_debug_bind_stat): Strengthen return type from gimple
1725         to gdebug *.
1726         (gimple_build_debug_source_bind_stat): Strengthen return type from
1727         gimple to gdebug *.
1728         (gimple_build_omp_critical): Strengthen return type from gimple to
1729         gomp_critical *.
1730         (gimple_build_omp_for): Strengthen return type from gimple to
1731         gomp_for *.
1732         (gimple_build_omp_parallel): Strengthen return type from gimple to
1733         gomp_parallel *.
1734         (gimple_build_omp_task): Strengthen return type from gimple to
1735         gomp_task *.
1736         (gimple_build_omp_continue): Strengthen return type from gimple to
1737         gomp_continue *.
1738         (gimple_build_omp_sections): Strengthen return type from gimple to
1739         gomp_sections *.
1740         (gimple_build_omp_single): Strengthen return type from gimple to
1741         gomp_single *.
1742         (gimple_build_omp_target): Strengthen return type from gimple to
1743         gomp_target *.
1744         (gimple_build_omp_teams): Strengthen return type from gimple to
1745         gomp_teams *.
1746         (gimple_build_omp_atomic_load): Strengthen return type from gimple
1747         to gomp_atomic_load *.
1748         (gimple_build_omp_atomic_store): Strengthen return type from gimple
1749         to gomp_atomic_store *.
1750         (gimple_build_transaction): Strengthen return type from gimple
1751         to gtransaction *.
1752         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
1753         (gimple_call_fnspec): Require a const gcall *.
1754         (gimple_call_arg_flags): Likewise.
1755         (gimple_call_return_flags): Likewise.
1756         (gimple_set_bb): Add a checked cast.
1757         (gimple_copy): Within the cases, add locals of the appropriate
1758         subclass and use in place of "stmt" and "copy" for typesafety.
1759         (gimple_has_side_effects): Add a checked cast.
1760         (gimple_could_trap_p_1): Likewise.
1761         (gimple_call_copy_skip_args): Require a gcall *, and return one.
1762         (gimple_asm_clobbers_memory_p): Require a const gasm *.
1763         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
1764         dyn_cast, introducing local "return_stmt" and using ti in place
1765         of "stmt".
1766
1767         * gimple.h (gimple_vec): Eliminate this typedef.
1768         (struct gimple_statement_call): Rename to...
1769         (struct gcall): ...this.
1770         (struct gimple_statement_bind): Rename to...
1771         (struct gbind): ...this.
1772         (struct gimple_statement_catch): Rename to...
1773         (struct gcatch): ...this.
1774         (struct gimple_statement_eh_filter): Rename to...
1775         (struct geh_filter): ...this.
1776         (struct gimple_statement_eh_else): Rename to...
1777         (struct geh_else): ...this.
1778         (struct gimple_statement_eh_mnt): Rename to...
1779         (struct geh_mnt): ...this.
1780         (struct gimple_statement_phi): Rename to...
1781         (struct gphi): ...this.
1782         (struct gimple_statement_resx): Rename to...
1783         (struct gresx): ...this.
1784         (struct gimple_statement_eh_dispatch): Rename to...
1785         (struct geh_dispatch): ...this.
1786         (struct gimple_statement_try): Rename to...
1787         (struct gtry): ...this.
1788         (struct gimple_statement_asm): Rename to...
1789         (struct gasm): ...this.
1790         (struct gimple_statement_omp_critical): Rename to...
1791         (struct gomp_critical): ...this.
1792         (struct gimple_statement_omp_for): Rename to...
1793         (struct gomp_for): ...this.
1794         (struct gimple_statement_omp_parallel): Rename to...
1795         (struct gomp_parallel): ...this.
1796         (struct gimple_statement_omp_target): Rename to...
1797         (struct gomp_target): ...this.
1798         (struct gimple_statement_omp_task): Rename to...
1799         (struct gomp_task): ...this.
1800         (struct gimple_statement_omp_sections): Rename to...
1801         (struct gomp_sections): ...this.
1802         (struct gimple_statement_omp_continue): Rename to...
1803         (struct gomp_continue): ...this.
1804         (struct gimple_statement_omp_single): Rename to...
1805         (struct gomp_single): ...this.
1806         (struct gimple_statement_omp_teams): Rename to...
1807         (struct gomp_teams): ...this.
1808         (struct gimple_statement_omp_atomic_load): Rename to...
1809         (struct gomp_atomic_load): ...this.
1810         (struct gimple_statement_omp_atomic_store :): Rename to...
1811         (struct gomp_atomic_store :): ...this.
1812         (struct gimple_statement_transaction): Rename to...
1813         (struct gtransaction): ...this.
1814         (struct gcond): New subclass.
1815         (struct gdebug): New subclass.
1816         (struct ggoto): New subclass.
1817         (struct glabel): New subclass.
1818         (struct gswitch): New subclass.
1819         (struct gassign): New subclass.
1820         (struct greturn): New subclass.
1821         (is_a_helper <gimple_statement_asm *>::test): Rename to...
1822         (is_a_helper <gasm *>::test): ...this.
1823         (is_a_helper <gimple_statement_bind *>::test): Rename to...
1824         (is_a_helper <gbind *>::test): ...this.
1825         (is_a_helper <gassign *>::test): New.
1826         (is_a_helper <gimple_statement_call *>::test): Rename to...
1827         (is_a_helper <gcall *>::test): ...this.
1828         (is_a_helper <gimple_statement_catch *>::test): Rename to...
1829         (is_a_helper <gcatch *>::test): ...this.
1830         (is_a_helper <gimple_statement_resx *>::test): Rename to...
1831         (is_a_helper <gresx *>::test): ...this.
1832         (is_a_helper <gcond *>::test): New.
1833         (is_a_helper <gdebug *>::test): New.
1834         (is_a_helper <ggoto *>::test): New.
1835         (is_a_helper <glabel *>::test): New.
1836         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
1837         (is_a_helper <geh_dispatch *>::test): ...this.
1838         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
1839         (is_a_helper <geh_else *>::test): ...this.
1840         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
1841         (is_a_helper <geh_filter *>::test): ...this.
1842         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
1843         (is_a_helper <geh_mnt *>::test): ...this.
1844         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
1845         (is_a_helper <gomp_atomic_load *>::test): ...this.
1846         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
1847         (is_a_helper <gomp_atomic_store *>::test): ...this.
1848         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
1849         (is_a_helper <gomp_continue *>::test): ...this.
1850         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
1851         (is_a_helper <gomp_critical *>::test): ...this.
1852         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
1853         (is_a_helper <gomp_for *>::test): ...this.
1854         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
1855         (is_a_helper <gomp_parallel *>::test): ...this.
1856         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
1857         (is_a_helper <gomp_target *>::test): ...this.
1858         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
1859         (is_a_helper <gomp_sections *>::test): ...this.
1860         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
1861         (is_a_helper <gomp_single *>::test): ...this.
1862         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
1863         (is_a_helper <gomp_teams *>::test): ...this.
1864         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
1865         (is_a_helper <gomp_task *>::test): ...this.
1866         (is_a_helper <gimple_statement_phi *>::test): Rename to...
1867         (is_a_helper <gphi *>::test): ...this.
1868         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
1869         (is_a_helper <gtransaction *>::test): ...this.
1870         (is_a_helper <greturn *>::test): New.
1871         (is_a_helper <gswitch *>::test): New.
1872         (is_a_helper <gimple_statement_try *>::test): Rename to...
1873         (is_a_helper <gtry *>::test): ...this.
1874         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
1875         (is_a_helper <const gasm *>::test): ...this.
1876         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
1877         (is_a_helper <const gbind *>::test): ...this.
1878         (is_a_helper <const gimple_statement_call *>::test): Rename to...
1879         (is_a_helper <const gcall *>::test): ...this.
1880         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
1881         (is_a_helper <const gcatch *>::test): ...this.
1882         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
1883         (is_a_helper <const gresx *>::test): ...this.
1884         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
1885         (is_a_helper <const geh_dispatch *>::test): ...this.
1886         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
1887         (is_a_helper <const geh_filter *>::test): ...this.
1888         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
1889         Rename to...
1890         (is_a_helper <const gomp_atomic_load *>::test): ...this.
1891         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
1892         Rename to...
1893         (is_a_helper <const gomp_atomic_store *>::test): ...this.
1894         (is_a_helper <const gimple_statement_omp_continue *>::test):
1895         Rename to...
1896         (is_a_helper <const gomp_continue *>::test): ...this.
1897         (is_a_helper <const gimple_statement_omp_critical *>::test):
1898         Rename to...
1899         (is_a_helper <const gomp_critical *>::test): ...this.
1900         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
1901         (is_a_helper <const gomp_for *>::test): ...this.
1902         (is_a_helper <const gimple_statement_omp_parallel *>::test):
1903         Rename to...
1904         (is_a_helper <const gomp_parallel *>::test): ...this.
1905         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
1906         (is_a_helper <const gomp_target *>::test): ...this.
1907         (is_a_helper <const gimple_statement_omp_sections *>::test):
1908         Rename to...
1909         (is_a_helper <const gomp_sections *>::test): ...this.
1910         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
1911         (is_a_helper <const gomp_single *>::test): ...this.
1912         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
1913         (is_a_helper <const gomp_teams *>::test): ...this.
1914         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
1915         (is_a_helper <const gomp_task *>::test): ...this.
1916         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
1917         (is_a_helper <const gphi *>::test): ...this.
1918         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
1919         (is_a_helper <const gtransaction *>::test): ...this.
1920         (gimple_build_return): Strengthen return type to greturn *.
1921         (gimple_call_reset_alias_info): Require a gcall *.
1922         (gimple_build_call_vec): Return a gcall *.
1923         (gimple_build_call): Likewise.
1924         (gimple_build_call_valist): Likewise.
1925         (gimple_build_call_internal): Likewise.
1926         (gimple_build_call_internal_vec): Likewise.
1927         (gimple_build_call_from_tree): Likewise.
1928         (gimple_build_assign_stat): Return a gassign *.
1929         (gimple_build_assign_with_ops): Likewise.
1930         (gimple_build_cond): Return a gcond *.
1931         (gimple_build_cond_from_tree): Likewise.
1932         (gimple_cond_set_condition_from_tree): Require a gcond *.
1933         (gimple_build_label): Return a glabel *.
1934         (gimple_build_goto): Return a ggoto *.
1935         (gimple_build_bind): Return a gbind *.
1936         (gimple_build_asm_vec): Return a gasm *.
1937         (gimple_build_catch): Return a gcatch *.
1938         (gimple_build_eh_filter): Return a geh_filter *.
1939         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
1940         (gimple_build_eh_else): Return a geh_else *.
1941         (gimple_build_try): Return a gtry *.
1942         (gimple_build_resx): Return a gresx *.
1943         (gimple_build_switch_nlabels): Return a gswitch *.
1944         (gimple_build_switch): Return a gswitch *.
1945         (gimple_build_eh_dispatch): Return a geh_dispatch *.
1946         (gimple_build_debug_bind_stat): Return a gdebug *.
1947         (gimple_build_debug_source_bind_stat): Return a gdebug *.
1948         (gimple_build_omp_critical): Return a gomp_critical *.
1949         (gimple_build_omp_for): Return a gomp_for *.
1950         (gimple_build_omp_parallel): Return a gomp_parallel *.
1951         (gimple_build_omp_task): Return a gomp_task *.
1952         (gimple_build_omp_continue): Return a gomp_continue *.
1953         (gimple_build_omp_sections): Return a gomp_sections *.
1954         (gimple_build_omp_single): Return a gomp_single *.
1955         (gimple_build_omp_target): Return a gomp_target *.
1956         (gimple_build_omp_teams): Return a gomp_teams *.
1957         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
1958         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
1959         (gimple_build_transaction): Return a gtransaction *.
1960         (gimple_call_arg_flags): Require a const gcall *.
1961         (gimple_call_return_flags): Likewise.
1962         (gimple_call_copy_skip_args): Require and return a gcall *.
1963         (gimple_asm_clobbers_memory_p): Require a const gasm *.
1964         (gimple_seq_first_stmt_as_a_bind): New.
1965         (gimple_assign_nontemporal_move_p): Require a const gassign *
1966         rather than a const_gimple.
1967         (gimple_call_internal_fn): Update for renaming to gcall.
1968         (gimple_call_fntype): Likewise.
1969         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
1970         (gimple_call_set_fn): Likewise.
1971         (gimple_call_set_internal_fn): Likewise.
1972         (gimple_call_set_chain): Likewise.
1973         (gimple_call_set_tail): Likewise.
1974         (gimple_call_tail_p): Likewise.
1975         (gimple_call_set_return_slot_opt): Likewise.
1976         (gimple_call_return_slot_opt_p): Likewise.
1977         (gimple_call_set_from_thunk): Likewise.
1978         (gimple_call_from_thunk_p): Likewise.
1979         (gimple_call_set_va_arg_pack): Likewise.
1980         (gimple_call_va_arg_pack_p): Likewise.
1981         (gimple_call_set_nothrow): Likewise.
1982         (gimple_call_nothrow_p): Likewise.
1983         (gimple_call_set_alloca_for_var): Likewise.
1984         (gimple_call_alloca_for_var_p): Likewise.
1985         (gimple_call_use_set): Likewise.
1986         (gimple_call_clobber_set): Likewise.
1987         (gimple_call_return_type): Require a const gcall * rather than a
1988         const_gimple.
1989         (gimple_call_chain_ptr): Likewise.
1990         (gimple_call_copy_flags): Require a pair of gcall *.
1991         (gimple_cond_set_code): Require a gcond * rather than a gimple
1992         (gimple_cond_set_lhs): Likewise.
1993         (gimple_cond_set_rhs): Likewise.
1994         (gimple_cond_set_true_label): Likewise.
1995         (gimple_cond_set_false_label): Likewise.
1996         (gimple_cond_make_false): Likewise.
1997         (gimple_cond_make_true): Likewise.
1998         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
1999         const_gimple.
2000         (gimple_cond_rhs_ptr): Likewise.
2001         (gimple_cond_true_label): Likewise.
2002         (gimple_cond_false_label): Likewise.
2003         (gimple_cond_true_p): Likewise.
2004         (gimple_cond_false_p): Likewise.
2005         (gimple_cond_set_condition): Likewise.
2006         (gimple_label_label): Require a const glabel *.
2007         (gimple_label_set_label): Require a glabel *.
2008         (gimple_goto_set_dest): Require a ggoto *.
2009         (gimple_bind_vars): Require a const gbind *.
2010         (gimple_bind_block): Likewise.
2011         (gimple_bind_set_vars): Require a gbind *.
2012         (gimple_bind_append_vars): Likewise.
2013         (gimple_bind_body_ptr): Likewise.
2014         (gimple_bind_body): Likewise.
2015         (gimple_bind_set_body): Likewise.
2016         (gimple_bind_add_stmt): Likewise.
2017         (gimple_bind_add_seq): Likewise.
2018         (gimple_bind_set_block): Likewise.
2019         (gimple_asm_ninputs): Require a const gasm *.
2020         (gimple_asm_noutputs): Likewise.
2021         (gimple_asm_nclobbers): Likewise.
2022         (gimple_asm_nlabels): Likewise.
2023         (gimple_asm_input_op): Likewise.
2024         (gimple_asm_input_op_ptr): Likewise.
2025         (gimple_asm_output_op): Likewise.
2026         (gimple_asm_output_op_ptr): Likewise.
2027         (gimple_asm_clobber_op): Likewise.
2028         (gimple_asm_label_op): Likewise.
2029         (gimple_asm_string): Likewise.
2030         (gimple_asm_volatile_p): Likewise.
2031         (gimple_asm_input_p): Likewise.
2032         (gimple_asm_set_input_op): Require a gasm *.
2033         (gimple_asm_set_output_op): Likewise.
2034         (gimple_asm_set_clobber_op): Likewise.
2035         (gimple_asm_set_label_op): Likewise.
2036         (gimple_asm_set_volatile): Likewise.
2037         (gimple_asm_set_input): Likewise.
2038         (gimple_catch_types): Require a const gcatch *.
2039         (gimple_catch_types_ptr): Require a gcatch *.
2040         (gimple_catch_handler_ptr): Likewise.
2041         (gimple_catch_handler): Likewise.
2042         (gimple_catch_set_types): Likewise.
2043         (gimple_catch_set_handler): Likewise.
2044         (gimple_eh_filter_types): Update for renaming of subclass to
2045         geh_filter.
2046         (gimple_eh_filter_types_ptr): Likewise.
2047         (gimple_eh_filter_failure_ptr): Likewise.
2048         (gimple_eh_filter_set_types): Require a geh_filter *.
2049         (gimple_eh_filter_set_failure): Likewise.
2050         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
2051         (gimple_eh_must_not_throw_set_fndecl): Likewise.
2052         (gimple_eh_else_n_body_ptr): Require a geh_else *.
2053         (gimple_eh_else_n_body): Likewise.
2054         (gimple_eh_else_e_body_ptr): Likewise.
2055         (gimple_eh_else_e_body): Likewise.
2056         (gimple_eh_else_set_n_body): Likewise.
2057         (gimple_eh_else_set_e_body): Likewise.
2058         (gimple_try_set_kind): Require a gtry *.
2059         (gimple_try_set_catch_is_cleanup): Likewise.
2060         (gimple_try_set_eval): Likewise.
2061         (gimple_try_set_cleanup): Likewise.
2062         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
2063         (gimple_try_cleanup_ptr): Likewise.
2064         (gimple_phi_capacity): Update for renaming of subclass to gphi.
2065         (gimple_phi_num_args): Likewise.
2066         (gimple_phi_result): Likewise.
2067         (gimple_phi_result_ptr): Likewise.
2068         (gimple_phi_arg): Likewise.
2069         (gimple_phi_set_result): Require a gphi *.
2070         (gimple_phi_set_arg): Likewise.
2071         (gimple_phi_arg_def_ptr): Likewise.
2072         (gimple_phi_arg_edge): Likewise.
2073         (gimple_phi_arg_location): Likewise.
2074         (gimple_phi_arg_location_from_edge): Likewise.
2075         (gimple_phi_arg_set_location): Likewise.
2076         (gimple_phi_arg_has_location): Likewise.
2077         (gimple_resx_region): Require a const gresx *.
2078         (gimple_resx_set_region): Require a gresx *.
2079         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
2080         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
2081         (gimple_switch_num_labels): Require a const gswitch *.
2082         (gimple_switch_set_num_labels): Likewise.
2083         (gimple_switch_index): Likewise.
2084         (gimple_switch_index_ptr): Likewise.
2085         (gimple_switch_label): Likewise.
2086         (gimple_switch_default_label): Likewise.
2087         (gimple_switch_set_index): Require a gswitch *.
2088         (gimple_switch_set_label): Likewise.
2089         (gimple_switch_set_default_label): Likewise.
2090         (gimple_omp_critical_name): Require a const gomp_critical *.
2091         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
2092         (gimple_omp_critical_set_name): Likewise.
2093         (gimple_omp_for_set_kind): Require a gomp_for *.
2094         (gimple_omp_for_set_combined_p): Likewise.
2095         (gimple_omp_for_set_combined_into_p): Likewise.
2096         (gimple_omp_for_clauses): Update for renaming of subclass to
2097         gomp_for.
2098         (gimple_omp_for_clauses_ptr): Likewise.
2099         (gimple_omp_for_set_clauses): Likewise.
2100         (gimple_omp_for_collapse): Likewise.
2101         (gimple_omp_for_index): Likewise.
2102         (gimple_omp_for_index_ptr): Likewise.
2103         (gimple_omp_for_set_index): Likewise.
2104         (gimple_omp_for_initial): Likewise.
2105         (gimple_omp_for_initial_ptr): Likewise.
2106         (gimple_omp_for_set_initial): Likewise.
2107         (gimple_omp_for_final): Likewise.
2108         (gimple_omp_for_final_ptr): Likewise.
2109         (gimple_omp_for_set_final): Likewise.
2110         (gimple_omp_for_incr): Likewise.
2111         (gimple_omp_for_incr_ptr): Likewise.
2112         (gimple_omp_for_set_incr): Likewise.
2113         (gimple_omp_for_pre_body): Likewise.
2114         (gimple_omp_for_set_pre_body): Likewise.
2115         (gimple_omp_parallel_clauses): Update for renaming of subclass to
2116         gomp_parallel.
2117         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
2118         (gimple_omp_parallel_set_clauses): Likewise.
2119         (gimple_omp_parallel_child_fn_ptr): Likewise.
2120         (gimple_omp_parallel_set_child_fn): Likewise.
2121         (gimple_omp_parallel_data_arg_ptr): Likewise.
2122         (gimple_omp_parallel_set_data_arg): Likewise.
2123         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
2124         (gimple_omp_parallel_data_arg): Likewise.
2125         (gimple_omp_task_clauses): Update for renaming of subclass to
2126         gomp_task.
2127         (gimple_omp_task_clauses_ptr): Likewise.
2128         (gimple_omp_task_set_clauses): Likewise.
2129         (gimple_omp_task_child_fn): Likewise.
2130         (gimple_omp_task_child_fn_ptr): Likewise.
2131         (gimple_omp_task_set_child_fn): Likewise.
2132         (gimple_omp_task_data_arg): Likewise.
2133         (gimple_omp_task_data_arg_ptr): Likewise.
2134         (gimple_omp_task_set_data_arg): Likewise.
2135         (gimple_omp_taskreg_clauses): Whitespace fixes.
2136         (gimple_omp_taskreg_clauses_ptr): Likewise.
2137         (gimple_omp_taskreg_set_clauses): Likewise.
2138         (gimple_omp_taskreg_child_fn): Likewise.
2139         (gimple_omp_taskreg_child_fn_ptr): Likewise.
2140         (gimple_omp_taskreg_set_child_fn): Likewise.
2141         (gimple_omp_taskreg_data_arg): Likewise.
2142         (gimple_omp_taskreg_data_arg_ptr): Likewise.
2143         (gimple_omp_taskreg_set_data_arg): Likewise.
2144         (gimple_omp_task_copy_fn): Update for renaming of subclass to
2145         gomp_task.
2146         (gimple_omp_task_copy_fn_ptr): Likewise.
2147         (gimple_omp_task_set_copy_fn): Likewise.
2148         (gimple_omp_task_arg_size): Likewise.
2149         (gimple_omp_task_arg_size_ptr): Likewise.
2150         (gimple_omp_task_set_arg_size): Likewise.
2151         (gimple_omp_task_arg_align): Likewise.
2152         (gimple_omp_task_arg_align_ptr): Likewise.
2153         (gimple_omp_task_set_arg_align): Likewise.
2154         (gimple_omp_single_clauses): Update for renaming of subclass to
2155         gomp_single.
2156         (gimple_omp_single_clauses_ptr): Likewise.
2157         (gimple_omp_single_set_clauses): Likewise.
2158         (gimple_omp_target_clauses): Update for renaming of subclass to
2159         gomp_target.
2160         (gimple_omp_target_clauses_ptr): Likewise.
2161         (gimple_omp_target_set_clauses): Require a gomp_target *.
2162         (gimple_omp_target_set_kind): Likewise.
2163         (gimple_omp_target_child_fn_ptr): Likewise.
2164         (gimple_omp_target_set_child_fn): Likewise.
2165         (gimple_omp_target_data_arg_ptr): Likewise.
2166         (gimple_omp_target_set_data_arg): Likewise.
2167         (gimple_omp_target_child_fn): Require a const gomp_target *.
2168         (gimple_omp_target_data_arg): Likewise.
2169         (gimple_omp_teams_clauses): Update for renaming of subclass to
2170         gomp_teams.
2171         (gimple_omp_teams_clauses_ptr): Likewise.
2172         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
2173         (gimple_omp_sections_clauses): Update for renaming of subclass to
2174         gomp_sections.
2175         (gimple_omp_sections_clauses_ptr): Likewise.
2176         (gimple_omp_sections_set_clauses): Likewise.
2177         (gimple_omp_sections_control): Likewise.
2178         (gimple_omp_sections_control_ptr): Likewise.
2179         (gimple_omp_sections_set_control): Likewise.
2180         (gimple_omp_for_set_cond): Likewise.
2181         (gimple_omp_for_cond): Likewise.
2182         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
2183         (gimple_omp_atomic_store_val_ptr): Likewise.
2184         (gimple_omp_atomic_load_set_lhs): Likewise.
2185         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
2186         (gimple_omp_atomic_load_lhs): Likewise.
2187         (gimple_omp_atomic_load_rhs): Likewise.
2188         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
2189         (gimple_omp_atomic_load_set_rhs): Likewise.
2190         (gimple_omp_atomic_load_rhs_ptr): Likewise.
2191         (gimple_omp_continue_control_def): Require a const gomp_continue *.
2192         (gimple_omp_continue_control_use): Likewise.
2193         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
2194         (gimple_omp_continue_set_control_def): Likewise.
2195         (gimple_omp_continue_control_use_ptr): Likewise.
2196         (gimple_omp_continue_set_control_use): Likewise.
2197         (gimple_transaction_body_ptr): Require a gtransaction *.
2198         (gimple_transaction_body): Likewise.
2199         (gimple_transaction_label_ptr): Likewise.
2200         (gimple_transaction_label): Require a const gtransaction *.
2201         (gimple_transaction_subcode): Likewise.
2202         (gimple_transaction_set_body): Require a gtransaction *.
2203         (gimple_transaction_set_label): Likewise.
2204         (gimple_transaction_set_subcode): Likewise.
2205         (gimple_return_retval_ptr): Require a const greturn *.
2206         (gimple_return_retval): Likewise.
2207         (gimple_return_set_retval): Require a greturn *.
2208         (gimple_expr_type): Introduce local "call_stmt" and use in place of
2209         "stmt" for typesafety.
2210
2211         * asan.c: Use gimple subclasses.
2212         * auto-profile.c: Likewise.
2213         * builtins.c: Likewise.
2214         * builtins.h: Likewise.
2215         * cfgexpand.c: Likewise.
2216         * cfgloop.c: Likewise.
2217         * cfgloopmanip.c: Likewise.
2218         * cgraph.c: Likewise.
2219         * cgraph.h: Likewise.
2220         * cgraphbuild.c: Likewise.
2221         * cgraphclones.c: Likewise.
2222         * cgraphunit.c: Likewise.
2223         * expr.h: Likewise.
2224         * gimple-builder.c: Likewise.
2225         * gimple-builder.h: Likewise.
2226         * gimple-fold.c: Likewise.
2227         * gimple-low.c: Likewise.
2228         * gimple-pretty-print.c: Likewise.
2229         * gimple-ssa-isolate-paths.c: Likewise.
2230         * gimple-ssa-strength-reduction.c: Likewise.
2231         * gimple-streamer-in.c: Likewise.
2232         * gimple-streamer-out.c: Likewise.
2233         * gimple-walk.c: Likewise.
2234         * gimplify-me.c: Likewise.
2235         * gimplify.c: Likewise.
2236         * gimplify.h: Likewise.
2237         * graphite-scop-detection.c: Likewise.
2238         * graphite-sese-to-poly.c: Likewise.
2239         * internal-fn.c: Likewise.
2240         * internal-fn.def:: Likewise.
2241         * internal-fn.h: Likewise.
2242         * ipa-icf-gimple.c: Likewise.
2243         * ipa-icf-gimple.h: Likewise.
2244         * ipa-icf.c: Likewise.
2245         * ipa-inline-analysis.c: Likewise.
2246         * ipa-prop.c: Likewise.
2247         * ipa-prop.h: Likewise.
2248         * ipa-pure-const.c: Likewise.
2249         * ipa-split.c: Likewise.
2250         * lto-streamer-in.c: Likewise.
2251         * lto-streamer-out.c: Likewise.
2252         * omp-low.c: Likewise.
2253         * predict.c: Likewise.
2254         * sanopt.c: Likewise.
2255         * sese.c: Likewise.
2256         * ssa-iterators.h: Likewise.
2257         * stmt.c: Likewise.
2258         * trans-mem.c: Likewise.
2259         * tree-call-cdce.c: Likewise.
2260         * tree-cfg.c: Likewise.
2261         * tree-cfg.h: Likewise.
2262         * tree-cfgcleanup.c: Likewise.
2263         * tree-chkp.c: Likewise.
2264         * tree-chkp.h: Likewise.
2265         * tree-complex.c: Likewise.
2266         * tree-data-ref.c: Likewise.
2267         * tree-dfa.c: Likewise.
2268         * tree-eh.c: Likewise.
2269         * tree-eh.h: Likewise.
2270         * tree-emutls.c: Likewise.
2271         * tree-if-conv.c: Likewise.
2272         * tree-inline.c: Likewise.
2273         * tree-inline.h: Likewise.
2274         * tree-into-ssa.c: Likewise.
2275         * tree-into-ssa.h: Likewise.
2276         * tree-loop-distribution.c: Likewise.
2277         * tree-nrv.c: Likewise.
2278         * tree-object-size.c: Likewise.
2279         * tree-outof-ssa.c: Likewise.
2280         * tree-parloops.c: Likewise.
2281         * tree-phinodes.c: Likewise.
2282         * tree-phinodes.h: Likewise.
2283         * tree-predcom.c: Likewise.
2284         * tree-profile.c: Likewise.
2285         * tree-scalar-evolution.c: Likewise.
2286         * tree-scalar-evolution.h
2287         * tree-sra.cn_function):
2288         * tree-ssa-alias.c: Likewise.
2289         * tree-ssa-alias.h: Likewise.
2290         * tree-ssa-ccp.c: Likewise.
2291         * tree-ssa-coalesce.c: Likewise.
2292         * tree-ssa-copy.c: Likewise.
2293         * tree-ssa-copyrename.c: Likewise.
2294         * tree-ssa-dce.c: Likewise.
2295         * tree-ssa-dom.c: Likewise.
2296         * tree-ssa-forwprop.c: Likewise.
2297         * tree-ssa-ifcombine.c: Likewise.
2298         * tree-ssa-live.c: Likewise.
2299         * tree-ssa-loop-im.c: Likewise.
2300         * tree-ssa-loop-ivcanon.c: Likewise.
2301         * tree-ssa-loop-ivopts.c: Likewise.
2302         * tree-ssa-loop-manip.c: Likewise.
2303         * tree-ssa-loop-niter.c: Likewise.
2304         * tree-ssa-loop-prefetch.c: Likewise.
2305         * tree-ssa-loop-unswitch.c: Likewise.
2306         * tree-ssa-math-opts.c: Likewise.
2307         * tree-ssa-operands.c: Likewise.
2308         * tree-ssa-phiopt.c: Likewise.
2309         * tree-ssa-phiprop.c: Likewise.
2310         * tree-ssa-pre.c: Likewise.
2311         * tree-ssa-propagate.c: Likewise.
2312         * tree-ssa-propagate.h: Likewise.
2313         * tree-ssa-reassoc.c: Likewise.
2314         * tree-ssa-sccvn.c: Likewise.
2315         * tree-ssa-sccvn.h: Likewise.
2316         * tree-ssa-sink.c: Likewise.
2317         * tree-ssa-strlen.c
2318         * tree-ssa-structalias.c
2319         * tree-ssa-tail-merge.c: Likewise.
2320         * tree-ssa-ter.c: Likewise.
2321         * tree-ssa-threadedge.c: Likewise.
2322         * tree-ssa-threadedge.h: Likewise.
2323         * tree-ssa-threadupdate.c: Likewise.
2324         * tree-ssa-uncprop.c: Likewise.
2325         * tree-ssa-uninit.c: Likewise.
2326         * tree-ssa.c: Likewise.
2327         * tree-stdarg.c: Likewise.
2328         * tree-switch-conversion.c: Likewise.
2329         * tree-tailcall.c: Likewise.
2330         * tree-vect-data-refs.c: Likewise.
2331         * tree-vect-generic.c: Likewise.
2332         * tree-vect-loop-manip.c: Likewise.
2333         * tree-vect-loop.c: Likewise.
2334         * tree-vect-patterns.c: Likewise.
2335         * tree-vect-slp.c: Likewise.
2336         * tree-vect-stmts.c: Likewise.
2337         * tree-vectorizer.h: Likewise.
2338         * tree-vrp.c: Likewise.
2339         * tree.c: Likewise.
2340         * ubsan.c: Likewise.
2341         * value-prof.c: Likewise.
2342         * value-prof.h: Likewise.
2343         * vtable-verify.c: Likewise.
2344
2345 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
2346
2347         * config/rs6000/constraints.md: Avoid signed integer overflows.
2348         * config/rs6000/predicates.md: Likewise.
2349
2350 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
2351
2352         PR target/63424
2353         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
2354
2355 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
2356
2357         PR middle-end/63762
2358         * ira.c (ira): Update preferred class.
2359
2360 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
2361
2362         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
2363         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
2364         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
2365         inline overload to use it.  Add unary arg overload.
2366         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
2367         (gimple_assign_set_rhs_from_tree): Use
2368         gimple_assign_set_rhs_with_ops instead of
2369         gimple_assign_set_rhs_with_ops_1.
2370         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
2371         (gimple_assign_set_rhs_with_ops): ... this.
2372         * ipa-split.c (split_function): Remove last NULL argument
2373         from gimple_build_assign_with_ops call.
2374         * tree-ssa-loop-im.c
2375         (move_computations_dom_walker::before_dom_children): Likewise.
2376         * tsan.c (instrument_builtin_call): Likewise.
2377         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2378         vectorizable_conversion, vectorizable_load): Likewise.
2379         * tree-vect-loop.c (vect_is_simple_reduction_1,
2380         get_initial_def_for_induction): Likewise.
2381         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2382         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2383         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2384         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
2385         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
2386         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
2387         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
2388         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
2389         neg_replacement): Likewise.
2390         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2391         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2392         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2393         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
2394         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
2395         simd_clone_adjust): Likewise.
2396         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
2397         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
2398         replace_one_candidate): Likewise.
2399         * gimple-builder.c (build_type_cast): Likewise.
2400         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2401         (forward_propagate_addr_expr_1): Remove last NULL argument
2402         from gimple_assign_set_rhs_with_ops call.
2403         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
2404         instead of gimple_assign_set_rhs_with_ops_1.
2405         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
2406         argument from gimple_build_assign_with_ops call.
2407         (repropagate_negates): Remove last NULL argument from
2408         gimple_assign_set_rhs_with_ops call.
2409         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
2410         last NULL argument from gimple_build_assign_with_ops call.
2411         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
2412         from gimple_assign_set_rhs_with_ops call.
2413         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
2414         Remove last NULL argument from gimple_build_assign_with_ops call.
2415         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
2416         of gimple_assign_set_rhs_with_ops_1.
2417         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
2418         instead of gimple_assign_set_rhs_with_ops_1.
2419         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
2420         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
2421         from gimple_build_assign_with_ops call.
2422         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
2423         from gimple_assign_set_rhs_with_ops call.
2424         * tree-vrp.c (simplify_truth_ops_using_ranges,
2425         simplify_bit_ops_using_ranges): Remove last NULL argument from
2426         gimple_assign_set_rhs_with_ops call.
2427         (simplify_float_conversion_using_ranges,
2428         simplify_internal_call_using_ranges): Remove last NULL argument from
2429         gimple_build_assign_with_ops call.
2430
2431 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
2432
2433         PR target/61915
2434         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
2435         cost.
2436
2437 2014-11-19  Marek Polacek  <polacek@redhat.com>
2438
2439         PR sanitizer/63690
2440         * ubsan.c (instrument_object_size): Check for MEM_REF.
2441
2442 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
2443
2444         PR regression/63868
2445         * cgraph.c (cgraph_node::create): Guard g->have_offload with
2446         ifdef ENABLE_OFFLOADING.
2447         * omp-low.c (create_omp_child_function): Likewise.
2448         (expand_omp_target): Guard node->mark_force_output and offload_funcs
2449         with ifdef ENABLE_OFFLOADING.
2450         * varpool.c (varpool_node::get_create): Guard g->have_offload and
2451         offload_vars with ifdef ENABLE_OFFLOADING.
2452
2453 2014-11-19  Felix Yang  <felix.yang@huawei.com>
2454             Shanyao Chen  <chenshanyao@huawei.com>
2455
2456         PR target/59593
2457         * config/arm/arm.md (define_attr "arch"): Add v6t2.
2458         (define_attr "arch_enabled"): Add test for the above.
2459         (*movhi_insn_arch4): Add new alternative.
2460
2461 2014-11-19  Richard Henderson  <rth@redhat.com>
2462
2463         * c-family/c-common.c (c_common_reswords): Add
2464         __builtin_call_with_static_chain.
2465         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
2466         * c/c-parser.c (c_parser_postfix_expression): Handle it.
2467         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
2468
2469         * calls.c (prepare_call_address): Allow decl or type for first arg.
2470         (expand_call): Pass type to prepare_call_address if no decl.
2471         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
2472         the function doesn't use it; fold it otherwise.
2473         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
2474         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
2475         function calls.
2476
2477         * targhooks.c (default_static_chain): Remove check for
2478         DECL_STATIC_CHAIN.
2479         * config/moxie/moxie.c (moxie_static_chain): Likewise.
2480         * config/i386/i386.c (ix86_static_chain): Allow decl or type
2481         as the first argument.
2482         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
2483         of the unused first parameter.
2484         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
2485         may be a type.
2486         * target.def (static_chain): Likewise.
2487
2488 2014-11-19  Renlin Li  <renlin.li@arm.com>
2489
2490     * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
2491         __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
2492
2493 2014-11-19  Marek Polacek  <polacek@redhat.com>
2494
2495         PR sanitizer/63879
2496         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
2497         !TYPE_OVERFLOW_SANITIZED.
2498         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
2499         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
2500         is 0.
2501
2502 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
2503
2504         * collect2.c (main): Don't call fatal_error before
2505         diagnostic_initialize.
2506         * lto-wrapper.c (main): Likewise.
2507
2508 2014-11-19  Tom de Vries  <tom@codesourcery.com>
2509
2510         PR tree-optimization/62167
2511         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
2512         conservatively.
2513         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
2514         assigns.
2515
2516 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
2517
2518         PR tree-optimization/63915
2519         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
2520         true instead of false as last argument to gsi_replace.
2521
2522         PR sanitizer/63520
2523         * internal-fn.c (expand_ubsan_result_store): New function.
2524         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
2525         Use it instead of just emit_move_insn.
2526
2527 2014-11-19  Richard Biener  <rguenther@suse.de>
2528
2529         PR tree-optimization/63844
2530         * omp-low.c (fixup_child_record_type): Use a restrict qualified
2531         referece type for the receiver parameter.
2532
2533 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
2534
2535         PR sanitizer/63913
2536         * ubsan.c: Include tree-eh.h.
2537         (instrument_bool_enum_load): Handle loads that can throw.
2538
2539         PR rtl-optimization/63843
2540         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
2541         optimization of ashiftrt of subreg of lshiftrt, check that code
2542         is ASHIFTRT.
2543
2544 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
2545
2546         * attribs.c (decl_attributes): Remove always true condition,
2547         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
2548
2549 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2550
2551         PR target/63937
2552         * target.def (use_by_pieces_infrastructure_p): Take unsigned
2553         HOST_WIDE_INT as the size parameter.
2554         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
2555         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
2556         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
2557         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
2558         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
2559         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
2560         * config/aarch64/aarch64.c
2561         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
2562         * doc/tm.texi: Regenerate.
2563
2564 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
2565
2566         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
2567         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
2568         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
2569         (good_cloning_opportunity_p): Likewise.
2570         (ipa-cp gate): Enable ipa-cp with LTO.
2571         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
2572         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
2573         inheritance.
2574         * ipa-inline-transform.c (inline_transform): Check if there are inlines
2575         to apply even at -O0.
2576         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
2577         (analyze_functions): Build type inheritance graph.
2578         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
2579         (want_early_inline_function_p, want_inline_small_function_p):
2580         Likewise.
2581         (check_callers): Likewise.
2582         (edge_badness): Likewise.
2583         (inline_small_functions): Always be ready for indirect inlining
2584         to happend.
2585         (ipa_inline): Always use want_inline_function_to_all_callers_p.
2586         (early_inline_small_functions): Use opt_for_fn.
2587         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
2588         (estimate_function_body_sizes): Likewise.
2589         (compute_inline_parameters): Likewise.
2590         (estimate_edge_devirt_benefit): Likewise.
2591         (inline_analyze_function): Likewise.
2592         * ipa-devirt.c (ipa_devirt): Likewise.
2593         (gate): Use in_lto_p.
2594         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
2595         (try_make_edge_direct_virtual_call): Likewise.
2596         (update_indirect_edges_after_inlining): Likewise.
2597         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
2598         * common.opt (findirect-inlining): Turn into optimization.
2599         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
2600         (pure_const_generate_summary): Likewise.
2601         (gate_pure_const): Always enable with in_lto_p.
2602
2603 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
2604
2605         * config/mips/mips.md (compression): Add `micromips32' setting.
2606         (enabled, length): Handle it.
2607         (shift_compression): Replace `micromips' with `micromips32' in
2608         the `compression' attribute.
2609         (*add<mode>3, sub<mode>3): Likewise.
2610
2611 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
2612
2613         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
2614         range, a jump otherwise.
2615
2616 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2617
2618         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
2619         Split into...
2620         (cortex_a15_gp_to_vfp): ...This.
2621         (cortex_a15_fp_to_gp): ...And this.
2622         Define and comment bypass from vfp operations to fp->gp moves.
2623
2624 2014-11-18  Martin Liska  <mliska@suse.cz>
2625
2626         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
2627
2628 2014-11-18  Martin Liska  <mliska@suse.cz>
2629
2630         * bt-load.c (add_btr_def): New fibonacci_heap is used.
2631         (migrate_btr_defs): Likewise.
2632
2633 2014-11-18  Martin Liska  <mliska@suse.cz>
2634
2635         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
2636
2637 2014-11-18  Martin Liska  <mliska@suse.cz>
2638
2639         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
2640         (find_traces): Likewise.
2641         (find_traces_1_round): Likewise.
2642
2643 2014-11-18  Martin Liska  <mliska@suse.cz>
2644
2645         * fibonacci_heap.h: New file.
2646         (fibonacci_heap::insert): Created from fibheap_insert.
2647         (fibonacci_heap::empty): Created from fibheap_empty.
2648         (fibonacci_heap::nodes): Created from fibheap_nodes.
2649         (fibonacci_heap::min_key): Created from fibheap_min_key.
2650         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
2651         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
2652         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
2653         (fibonacci_heap::min): Created from fibheap_min.
2654         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
2655         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
2656         (fibonacci_heap::union_with): Created from fibheap_union.
2657         * ipa-inline.c (update_edge_key): New heap API is used.
2658         (update_caller_keys): Likewise.
2659         (update_callee_keys): Likewise.
2660         (lookup_recursive_calls): Likewise.
2661         (recursive_inlining): Likewise.
2662         (add_new_edges_to_heap): Likewise.
2663         (heap_edge_removal_hook): Likewise.
2664         (inline_small_functions): Likewise.
2665
2666 2014-11-18  Marek Polacek  <polacek@redhat.com>
2667
2668         PR sanitizer/63866
2669         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
2670         put it into TYPE_NAME and TYPE_STUB_DECL.
2671         * ubsan.c (ubsan_type_descriptor_type): New variable.
2672         Function renamed to ...
2673         (ubsan_get_type_descriptor_type): ... this.  Cache
2674         return value in ubsan_type_descriptor_type variable.
2675         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
2676         TYPE_NAME and TYPE_STUB_DECL.
2677         (ubsan_get_source_location_type): Create a TYPE_DECL for
2678         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
2679         (ubsan_type_descriptor, ubsan_create_data): Call
2680         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
2681         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
2682
2683 2014-11-18  Felix Yang  <felix.yang@huawei.com>
2684
2685         * config/aarch64/aarch64.c (doloop_end): New pattern.
2686         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
2687
2688 2014-11-18  Jason Merrill  <jason@redhat.com>
2689
2690         * tree.c (warn_deprecated_use): Show declaration with inform.
2691
2692 2014-11-18  Richard Biener  <rguenther@suse.de>
2693
2694         PR tree-optimization/63914
2695         * tree-ssa-ccp.c (canonicalize_value): Remove float value
2696         canonicalization.
2697         (valid_lattice_transition): Allow (partial) transition
2698         from NaN to non-NaN if !HONOR_NANS.
2699         (set_lattice_value): Check for valid lattice transitions
2700         only when checking is enabled.
2701
2702 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
2703
2704         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
2705
2706 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
2707
2708         * config/arm/neon-testgen.ml (emit_prologue): Handle new
2709         compile_test_optim argument.
2710         (emit_automatics): Rename to emit_variables. Support variable
2711         indentation of its output.
2712         (compile_test_optim): New function.
2713         (test_intrinsic): Call compile_test_optim.
2714         * config/arm/neon.ml (features): Add Compiler_optim.
2715         (ops): Add Compiler_optim feature to Vbic and Vorn.
2716         (type_in_crypto_only): Replace 'or' by '||'.
2717         (reinterp): Likewise.
2718         (reinterpq): Likewise.
2719
2720 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
2721
2722         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
2723         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
2724         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
2725         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
2726         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
2727         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
2728         pointer dereference.
2729
2730 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
2731
2732         * tree.c (element_mode, integer_truep): New functions.
2733         * tree.h (element_mode, integer_truep): Declare them.
2734         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
2735         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
2736         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
2737         fold_strip_sign_ops): Use element_mode.
2738         (fold_binary_loc): Use element_mode and element_precision.
2739         * match.pd: Use integer_truep, element_mode, element_precision,
2740         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
2741         vectors. Simplify A/-A.
2742
2743 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2744
2745         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
2746         manual swapping implementation.
2747         (movcond_addsi): Likewise.
2748         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
2749         (arm_select_dominance_cc_mode): Likewise.
2750         (arm_reload_out_hi): Likewise.
2751         (gen_operands_ldrd_strd): Likewise.
2752         (output_move_double): Likewise.
2753         (arm_print_operand_address): Likewise.
2754         (thumb_output_move_mem_multiple): Likewise.
2755         (SWAP_RTX): Delete.
2756
2757 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2758
2759         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
2760         (COPYSIGNF_QUALIFIERS): Likewise.
2761         (CREATE_QUALIFIERS): Likewise.
2762         (DUP_QUALIFIERS): Likewise.
2763         (FLOAT_WIDEN_QUALIFIERS): Likewise.
2764         (FLOAT_NARROW_QUALIFIERS): Likewise.
2765         (REINTERP_QUALIFIERS): Likewise.
2766         (RINT_QUALIFIERS): Likewise.
2767         (SPLIT_QUALIFIERS): Likewise.
2768         (FIXCONV_QUALIFIERS): Likewise.
2769         (SCALARMUL_QUALIFIERS): Likewise.
2770         (SCALARMULL_QUALIFIERS): Likewise.
2771         (SCALARMULH_QUALIFIERS): Likewise.
2772         (SELECT_QUALIFIERS): Likewise.
2773         (VTBX_QUALIFIERS): Likewise.
2774         (SHIFTIMM_QUALIFIERS): Likewise.
2775         (SCALARMAC_QUALIFIERS): Likewise.
2776         (LANEMUL_QUALIFIERS): Likewise.
2777         (LANEMULH_QUALIFIERS): Likewise.
2778         (LANEMULL_QUALIFIERS): Likewise.
2779         (SHIFTACC_QUALIFIERS): Likewise.
2780         (SHIFTINSERT_QUALIFIERS): Likewise.
2781         (VTBL_QUALIFIERS): Likewise.
2782         (LOADSTRUCT_QUALIFIERS): Likewise.
2783         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
2784         (STORESTRUCT_QUALIFIERS): Likewise.
2785         (STORESTRUCTLANE_QUALIFIERS): Likewise.
2786         (neon_builtin_type_mode): Delete.
2787         (v8qi_UP): Map to V8QImode.
2788         (v8qi_UP): Map to V8QImode.
2789         (v4hi_UP): Map to V4HImode.
2790         (v4hf_UP): Map to V4HFmode.
2791         (v2si_UP): Map to V2SImode.
2792         (v2sf_UP): Map to V2SFmode.
2793         (di_UP): Map to DImode.
2794         (v16qi_UP): Map to V16QImode.
2795         (v8hi_UP): Map to V8HImode.
2796         (v4si_UP): Map to V4SImode.
2797         (v4sf_UP): Map to V4SFmode.
2798         (v2di_UP): Map to V2DImode.
2799         (ti_UP): Map to TImode.
2800         (ei_UP): Map to EImode.
2801         (oi_UP): Map to OImode.
2802         (neon_itype): Delete.
2803         (neon_builtin_datum): Remove itype, make mode a machine_mode.
2804         (VAR1): Update accordingly.
2805         (arm_init_neon_builtins): Use machine_mode directly.
2806         (neon_dereference_pointer): Likewise.
2807         (arm_expand_neon_args): Use qualifiers to decide operand types.
2808         (arm_expand_neon_builtin): Likewise.
2809         * config/arm/arm_neon_builtins.def: Remap operation type for
2810         many builtins.
2811
2812 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2813
2814         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
2815         (enum arm_simd_type): Likewise.
2816         (struct arm_simd_type_info): Likewise
2817         (arm_mangle_builtin_scalar_type): Likewise.
2818         (arm_mangle_builtin_vector_type): Likewise.
2819         (arm_mangle_builtin_type): Likewise.
2820         (arm_simd_builtin_std_type): Likewise.
2821         (arm_lookup_simd_builtin_type): Likewise.
2822         (arm_simd_builtin_type): Likewise.
2823         (arm_init_simd_builtin_types): Likewise.
2824         (arm_init_simd_builtin_scalar_types): Likewise.
2825         (arm_init_neon_builtins): Rewrite using qualifiers.
2826         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
2827         * config/arm/arm-simd-builtin-types.def: New file.
2828         * config/arm/t-arm (arm-builtins.o): Depend on it.
2829         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
2830         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
2831         (int16x4_t): Likewise.
2832         (int32x2_t): Likewise.
2833         (float16x4_t): Likewise.
2834         (float32x2_t): Likewise.
2835         (poly8x8_t): Likewise.
2836         (poly16x4_t): Likewise.
2837         (uint8x8_t): Likewise.
2838         (uint16x4_t): Likewise.
2839         (uint32x2_t): Likewise.
2840         (int8x16_t): Likewise.
2841         (int16x8_t): Likewise.
2842         (int32x4_t): Likewise.
2843         (int64x2_t): Likewise.
2844         (float32x4_t): Likewise.
2845         (poly8x16_t): Likewise.
2846         (poly16x8_t): Likewise.
2847         (uint8x16_t): Likewise.
2848         (uint16x8_t): Likewise.
2849         (uint32x4_t): Likewise.
2850         (uint64x2_t): Likewise.
2851
2852 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2853
2854         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
2855         (neon_itype): Add new types corresponding to the types used in
2856         qualifiers names.
2857         (arm_unop_qualifiers): New.
2858         (arm_bswap_qualifiers): Likewise.
2859         (arm_binop_qualifiers): Likewise.
2860         (arm_ternop_qualifiers): Likewise.
2861         (arm_getlane_qualifiers): Likewise.
2862         (arm_lanemac_qualifiers): Likewise.
2863         (arm_setlane_qualifiers): Likewise.
2864         (arm_combine_qualifiers): Likewise.
2865         (arm_load1_qualifiers): Likewise.
2866         (arm_load1_lane_qualifiers): Likewise.
2867         (arm_store1_qualifiers): Likewise.
2868         (arm_storestruct_lane_qualifiers): Likewise.
2869         (UNOP_QUALIFIERS): Likewise.
2870         (DUP_QUALIFIERS): Likewise.
2871         (SPLIT_QUALIFIERS): Likewise.
2872         (CONVERT_QUALIFIERS): Likewise.
2873         (FLOAT_WIDEN_QUALIFIERS): Likewise.
2874         (FLOAT_NARROW_QUALIFIERS): Likewise.
2875         (RINT_QUALIFIERS): Likewise.
2876         (COPYSIGNF_QUALIFIERS): Likewise.
2877         (CREATE_QUALIFIERS): Likewise.
2878         (REINTERP_QUALIFIERS): Likewise.
2879         (BSWAP_QUALIFIERS): Likewise.
2880         (BINOP_QUALIFIERS): Likewise.
2881         (FIXCONV_QUALIFIERS): Likewise.
2882         (SCALARMUL_QUALIFIERS): Likewise.
2883         (SCALARMULL_QUALIFIERS): Likewise.
2884         (SCALARMULH_QUALIFIERS): Likewise.
2885         (TERNOP_QUALIFIERS): Likewise.
2886         (SELECT_QUALIFIERS): Likewise.
2887         (VTBX_QUALIFIERS): Likewise.
2888         (GETLANE_QUALIFIERS): Likewise.
2889         (SHIFTIMM_QUALIFIERS): Likewise.
2890         (LANEMAC_QUALIFIERS): Likewise.
2891         (SCALARMAC_QUALIFIERS): Likewise.
2892         (SETLANE_QUALIFIERS): Likewise.
2893         (SHIFTINSERT_QUALIFIERS): Likewise.
2894         (SHIFTACC_QUALIFIERS): Likewise.
2895         (LANEMUL_QUALIFIERS): Likewise.
2896         (LANEMULL_QUALIFIERS): Likewise.
2897         (LANEMULH_QUALIFIERS): Likewise.
2898         (COMBINE_QUALIFIERS): Likewise.
2899         (VTBL_QUALIFIERS): Likewise.
2900         (LOAD1_QUALIFIERS): Likewise.
2901         (LOADSTRUCT_QUALIFIERS): Likewise.
2902         (LOAD1LANE_QUALIFIERS): Likewise.
2903         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
2904         (STORE1_QUALIFIERS): Likewise.
2905         (STORESTRUCT_QUALIFIERS): Likewise.
2906         (STORE1LANE_QUALIFIERS): Likewise.
2907         (STORESTRUCTLANE_QUALIFIERS): Likewise.
2908         (neon_builtin_datum): Keep track of qualifiers.
2909         (VAR1): Likewise.
2910
2911 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2912
2913         * config/arm/arm-builtins.c (VAR1): Add a comma.
2914         (VAR2): Rewrite in terms of VAR1.
2915         (VAR3-10): Likewise.
2916         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
2917         * config/arm/arm_neon_builtins.def: Remove trailing commas.
2918
2919 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2920
2921         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
2922         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
2923         * config/arm/arm-builtins.c: New.
2924         * config/arm/t-arm (arm_builtins.o): New.
2925         * config/arm/arm-protos.h (arm_expand_builtin): New.
2926         (arm_builtin_decl): Likewise.
2927         (arm_init_builtins): Likewise.
2928         (arm_atomic_assign_expand_fenv): Likewise.
2929         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
2930         (arm_init_builtins): Likewise.
2931         (arm_init_iwmmxt_builtins): Likewise
2932         (safe_vector_operand): Likewise
2933         (arm_expand_binop_builtin): Likewise
2934         (arm_expand_unop_builtin): Likewise
2935         (arm_expand_builtin): Likewise
2936         (arm_builtin_decl): Likewise
2937         (insn_flags): Remove static.
2938         (tune_flags): Likewise.
2939         (enum arm_builtins): Move to config/arm/arm-builtins.c.
2940         (arm_init_neon_builtins): Likewise.
2941         (struct builtin_description): Likewise.
2942         (arm_init_iwmmxt_builtins): Likewise.
2943         (arm_init_fp16_builtins): Likewise.
2944         (arm_init_crc32_builtins): Likewise.
2945         (arm_init_builtins): Likewise.
2946         (arm_builtin_decl): Likewise.
2947         (safe_vector_operand): Likewise.
2948         (arm_expand_ternop_builtin): Likewise.
2949         (arm_expand_binop_builtin): Likewise.
2950         (arm_expand_unop_builtin): Likewise.
2951         (neon_dereference_pointer): Likewise.
2952         (arm_expand_neon_args): Likewise.
2953         (arm_expand_neon_builtin): Likewise.
2954         (neon_split_vcombine): Likewise.
2955         (arm_expand_builtin): Likewise.
2956         (arm_builtin_vectorized_function): Likewise.
2957         (arm_atomic_assign_expand_fenv): Likewise.
2958
2959 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
2960
2961         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
2962         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
2963         (FL_ARCH3M): Likewise.
2964         (FL_MODE26): Likewise.
2965         (FL_MODE32): Likewise.
2966         (FL_ARCH4): Likewise.
2967         (FL_ARCH5): Likewise.
2968         (FL_THUMB): Likewise.
2969         (FL_LDSCHED): Likewise.
2970         (FL_STRONG): Likewise.
2971         (FL_ARCH5E): Likewise.
2972         (FL_XSCALE): Likewise.
2973         (FL_ARCH6): Likewise.
2974         (FL_VFPV2): Likewise.
2975         (FL_WBUF): Likewise.
2976         (FL_ARCH6K): Likewise.
2977         (FL_THUMB2): Likewise.
2978         (FL_NOTM): Likewise.
2979         (FL_THUMB_DIV): Likewise.
2980         (FL_VFPV3): Likewise.
2981         (FL_NEON): Likewise.
2982         (FL_ARCH7EM): Likewise.
2983         (FL_ARCH7): Likewise.
2984         (FL_ARM_DIV): Likewise.
2985         (FL_ARCH8): Likewise.
2986         (FL_CRC32): Likewise.
2987         (FL_SMALLMUL): Likewise.
2988         (FL_IWMMXT): Likewise.
2989         (FL_IWMMXT2): Likewise.
2990         (FL_TUNE): Likewise.
2991         (FL_FOR_ARCH2): Likewise.
2992         (FL_FOR_ARCH3): Likewise.
2993         (FL_FOR_ARCH3M): Likewise.
2994         (FL_FOR_ARCH4): Likewise.
2995         (FL_FOR_ARCH4T): Likewise.
2996         (FL_FOR_ARCH5): Likewise.
2997         (FL_FOR_ARCH5T): Likewise.
2998         (FL_FOR_ARCH5E): Likewise.
2999         (FL_FOR_ARCH5TE): Likewise.
3000         (FL_FOR_ARCH5TEJ): Likewise.
3001         (FL_FOR_ARCH6): Likewise.
3002         (FL_FOR_ARCH6J): Likewise.
3003         (FL_FOR_ARCH6K): Likewise.
3004         (FL_FOR_ARCH6Z): Likewise.
3005         (FL_FOR_ARCH6ZK): Likewise.
3006         (FL_FOR_ARCH6T2): Likewise.
3007         (FL_FOR_ARCH6M): Likewise.
3008         (FL_FOR_ARCH7): Likewise.
3009         (FL_FOR_ARCH7A): Likewise.
3010         (FL_FOR_ARCH7VE): Likewise.
3011         (FL_FOR_ARCH7R): Likewise.
3012         (FL_FOR_ARCH7M): Likewise.
3013         (FL_FOR_ARCH7EM): Likewise.
3014         (FL_FOR_ARCH8A): Likewise.
3015         * config/arm/arm-protos.h: Take definitions moved from arm.c.
3016
3017 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
3018
3019         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
3020         parameter, rearrange switch statement accordingly.
3021         (arm_evpc_neon_vrev): Remove "Magic Word".
3022         * config/arm/unspecs.md (unspec): Split many UNSPECs to
3023         rounding, or signed/unsigned variants.
3024         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
3025         (vcondu<mode><mode>): Likewise.
3026         (neon_vadd): Remove "Magic Word" operand.
3027         (neon_vaddl): Remove "Magic Word" operand, convert to use
3028         signed/unsigned iterator.
3029         (neon_vaddw): Likewise.
3030         (neon_vhadd): Likewise, also iterate over "rounding" forms.
3031         (neon_vqadd): Remove "Magic Word" operand, convert to use
3032         signed/unsigned iterator.
3033         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
3034         over "rounding" forms.
3035         (neon_vmul): Remove "Magic Word" operand, iterate over
3036         polynomial/float instruction forms.
3037         (neon_vmla): Remove "Magic Word" operand.
3038         (neon_vfma): Likewise.
3039         (neon_vfms): Likewise.
3040         (neon_vmls): Likewise.
3041         (neon_vmlal): Remove "Magic Word" operand, iterate over
3042         signed/unsigned forms.
3043         (neon_vmlsl): Likewise.
3044         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
3045         forms.
3046         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
3047         signed/unsigned forms.
3048         (neon_vqdmlsl): Likewise.
3049         (neon_vmull): Likewise.
3050         (neon_vqdmull): Remove "Magic Word" operand.
3051         (neon_vsub): Remove "Magic Word" operand.
3052         (neon_vsubl): Remove "Magic Word" operand, convert to use
3053         signed/unsigned iterator.
3054         (neon_vsubw): Likewise.
3055         (neon_vhsub): Likewise.
3056         (neon_vqsub): Likewise.
3057         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
3058         over "rounding" forms.
3059         (neon_vceq): Remove "Magic Word" operand.
3060         (neon_vcge): Likewise.
3061         (neon_vcgeu): Likewise.
3062         (neon_vcgt): Likewise.
3063         (neon_vcgtu): Likewise.
3064         (neon_vcle): Likewise.
3065         (neon_vclt): Likewise.
3066         (neon_vcage): Likewise.
3067         (neon_vcagt): Likewise.
3068         (neon_vabd): Remove "Magic Word" operand, iterate over
3069         signed/unsigned forms, and split out...
3070         (neon_vabdf): ...this as new.
3071         (neon_vabdl): Remove "Magic Word" operand, iterate over
3072         signed/unsigned forms.
3073         (neon_vaba): Likewise.
3074         (neon_vmax): Remove "Magic Word" operand, iterate over
3075         signed/unsigned and max/min forms, and split out...
3076         (neon_v<maxmin>f): ...this as new.
3077         (neon_vmin): Delete.
3078         (neon_vpadd): Remove "Magic Word" operand.
3079         (neon_vpaddl): Remove "Magic Word" operand, iterate over
3080         signed/unsigned variants.
3081         (neon_vpadal): Likewise.
3082         (neon_vpmax): Remove "Magic Word" operand, iterate over
3083         signed/unsigned and max/min forms, and split out...
3084         (neon_vp<maxmin>f): ...this as new.
3085         (neon_vpmin): Delete.
3086         (neon_vrecps): Remove "Magic Word" operand.
3087         (neon_vrsqrts): Likewise.
3088         (neon_vabs): Likewise.
3089         (neon_vqabs): Likewise.
3090         (neon_vneg): Likewise.
3091         (neon_vqneg): Likewise.
3092         (neon_vcls): Likewise.
3093         (neon_vcnt): Likewise.
3094         (neon_vrecpe): Likewise.
3095         (neon_vrsqrte): Likewise.
3096         (neon_vmvn): Likewise.
3097         (neon_vget_lane): Likewise.
3098         (neon_vget_laneu): New.
3099         (neon_vget_lanedi): Remove "Magic Word" operand.
3100         (neon_vget_lanev2di): Likewise.
3101         (neon_vcvt): Remove "Magic Word" operand, iterate over
3102         signed/unsigned variants.
3103         (neon_vcvt_n): Likewise.
3104         (neon_vmovn): Remove "Magic Word" operand.
3105         (neon_vqmovn): Remove "Magic Word" operand, iterate over
3106         signed/unsigned variants.
3107         (neon_vmovun): Remove "Magic Word" operand.
3108         (neon_vmovl): Remove "Magic Word" operand, iterate over
3109         signed/unsigned variants.
3110         (neon_vmul_lane): Remove "Magic Word" operand.
3111         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
3112         signed/unsigned variants.
3113         (neon_vqdmull_lane): Remove "Magic Word" operand.
3114         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
3115         rounding variants.
3116         (neon_vmla_lane): Remove "Magic Word" operand.
3117         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
3118         signed/unsigned variants.
3119         (neon_vqdmlal_lane): Remove "Magic Word" operand.
3120         (neon_vmls_lane): Likewise.
3121         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
3122         signed/unsigned variants.
3123         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
3124         (neon_vmul_n): Remove "Magic Word" operand.
3125         (neon_vmull_n): Rename to...
3126         (neon_vmulls_n): ...this, remove "Magic Word" operand.
3127         (neon_vmullu_n): New.
3128         (neon_vqdmull_n): Remove "Magic Word" operand.
3129         (neon_vqdmulh_n): Likewise.
3130         (neon_vqrdmulh_n): New.
3131         (neon_vmla_n): Remove "Magic Word" operand.
3132         (neon_vmls_n): Likewise.
3133         (neon_vmlal_n): Rename to...
3134         (neon_vmlals_n): ...this, remove "Magic Word" operand.
3135         (neon_vmlalu_n): New.
3136         (neon_vqdmlal_n): Remove "Magic Word" operand.
3137         (neon_vmlsl_n): Rename to...
3138         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
3139         (neon_vmlslu_n): New.
3140         (neon_vqdmlsl_n): Remove "Magic Word" operand.
3141         (neon_vrev64): Remove "Magic Word" operand.
3142         (neon_vrev32): Likewise.
3143         (neon_vrev16): Likewise.
3144         (neon_vshl): Remove "Magic Word" operand, iterate over
3145         signed/unsigned and "rounding" forms.
3146         (neon_vqshl): Likewise.
3147         (neon_vshr_n): Likewise.
3148         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
3149         "rounding" forms.
3150         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
3151         signed/unsigned and "rounding" forms.
3152         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
3153         "rounding" forms.
3154         (neon_vshl_n): Remove "Magic Word" operand.
3155         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
3156         signed/unsigned variants.
3157         (neon_vqshlu_n): Remove "Magic Word" operand.
3158         (neon_vshll_n): Remove "Magic Word" operand, iterate over
3159         signed/unsigned variants.
3160         (neon_vsra_n): Remove "Magic Word" operand, iterate over
3161         signed/unsigned and "rounding" forms.
3162         * config/arm/iterators.md (VPF): New.
3163         (VADDL): Likewise.
3164         (VADDW): Likewise.
3165         (VHADD): Likewise.
3166         (VQADD): Likewise.
3167         (VADDHN): Likewise.
3168         (VMLAL): Likewise.
3169         (VMLAL_LANE): Likewise.
3170         (VLMSL): Likewise.
3171         (VMLSL_LANE): Likewise.
3172         (VQDMULH): Likewise,
3173         (VQDMULH_LANE): Likewise.
3174         (VMULL): Likewise.
3175         (VMULL_LANE): Likewise.
3176         (VSUBL): Likewise.
3177         (VSUBW): Likewise.
3178         (VHSUB): Likewise.
3179         (VQSUB): Likewise.
3180         (VSUBHN): Likewise.
3181         (VABD): Likewise.
3182         (VABDL): Likewise.
3183         (VMAXMIN): Likewise.
3184         (VMAXMINF): Likewise.
3185         (VPADDL): Likewise.
3186         (VPADAL): Likewise.
3187         (VPMAXMIN): Likewise.
3188         (VPMAXMINF): Likewise.
3189         (VCVT_US): Likewise.
3190         (VCVT_US_N): Likewise.
3191         (VQMOVN): Likewise.
3192         (VMOVL): Likewise.
3193         (VSHL): Likewise.
3194         (VQSHL): Likewise.
3195         (VSHR_N): Likewise.
3196         (VSHRN_N): Likewise.
3197         (VQSHRN_N): Likewise.
3198         (VQSHRUN_N): Likewise.
3199         (VQSHL_N): Likewise.
3200         (VSHLL_N): Likewise.
3201         (VSRA_N): Likewise.
3202         (pf): Likewise.
3203         (sup): Likewise.
3204         (r): Liekwise.
3205         (maxmin): Likewise.
3206         (shift_op): Likewise.
3207         * config/arm/arm_neon_builtins.def (vaddl): Split to...
3208         (vaddls): ...this and...
3209         (vaddlu): ...this.
3210         (vaddw): Split to...
3211         (vaddws): ...this and...
3212         (vaddwu): ...this.
3213         (vhadd): Split to...
3214         (vhadds): ...this and...
3215         (vhaddu): ...this and...
3216         (vrhadds): ...this and...
3217         (vrhaddu): ...this.
3218         (vqadd): Split to...
3219         (vqadds): ...this and...
3220         (vqaddu): ...this.
3221         (vaddhn): Split to itself and...
3222         (vraddhn): ...this.
3223         (vmul): Split to...
3224         (vmulf): ...this and...
3225         (vmulp): ...this.
3226         (vmlal): Split to...
3227         (vmlals): ...this and...
3228         (vmlalu): ...this.
3229         (vmlsl): Split to...
3230         (vmlsls): ...this and...
3231         (vmlslu): ...this.
3232         (vqdmulh): Split to itself and...
3233         (vqrdmulh): ...this.
3234         (vmull): Split to...
3235         (vmullp): ...this and...
3236         (vmulls): ...this and...
3237         (vmullu): ...this.
3238         (vmull_n): Split to...
3239         (vmulls_n): ...this and...
3240         (vmullu_n): ...this.
3241         (vmull_lane): Split to...
3242         (vmulls_lane): ...this and...
3243         (vmullu_lane): ...this.
3244         (vqdmulh_n): Split to itself and...
3245         (vqrdmulh_n): ...this.
3246         (vqdmulh_lane): Split to itself and...
3247         (vqrdmulh_lane): ...this.
3248         (vshl): Split to...
3249         (vshls): ...this and...
3250         (vshlu): ...this and...
3251         (vrshls): ...this and...
3252         (vrshlu): ...this.
3253         (vqshl): Split to...
3254         (vqshls): ...this and...
3255         (vqrshlu): ...this and...
3256         (vqrshls): ...this and...
3257         (vqrshlu): ...this.
3258         (vshr_n): Split to...
3259         (vshrs_n): ...this and...
3260         (vshru_n): ...this and...
3261         (vrshrs_n): ...this and...
3262         (vrshru_n): ...this.
3263         (vshrn_n): Split to itself and...
3264         (vrshrn_n): ...this.
3265         (vqshrn_n): Split to...
3266         (vqshrns_n): ...this and...
3267         (vqshrnu_n): ...this and...
3268         (vqrshrns_n): ...this and...
3269         (vqrshrnu_n): ...this.
3270         (vqshrun_n): Split to itself and...
3271         (vqrshrun_n): ...this.
3272         (vqshl_n): Split to...
3273         (vqshl_s_n): ...this and...
3274         (vqshl_u_n): ...this.
3275         (vshll_n): Split to...
3276         (vshlls_n): ...this and...
3277         (vshllu_n): ...this.
3278         (vsra_n): Split to...
3279         (vsras_n): ...this and...
3280         (vsrau_n): ...this and.
3281         (vrsras_n): ...this and...
3282         (vrsrau_n): ...this and.
3283         (vsubl): Split to...
3284         (vsubls): ...this and...
3285         (vsublu): ...this.
3286         (vsubw): Split to...
3287         (vsubws): ...this and...
3288         (vsubwu): ...this.
3289         (vqsub): Split to...
3290         (vqsubs): ...this and...
3291         (vqsubu): ...this.
3292         (vhsub): Split to...
3293         (vhsubs): ...this and...
3294         (vhsubu): ...this.
3295         (vsubhn): Split to itself and...
3296         (vrsubhn): ...this.
3297         (vabd): Split to...
3298         (vabds): ...this and...
3299         (vabdu): ...this and...
3300         (vabdf): ...this.
3301         (vabdl): Split to...
3302         (vabdls): ...this and...
3303         (vabdlu): ...this.
3304         (vaba): Split to...
3305         (vabas): ...this and...
3306         (vabau): ...this and...
3307         (vabal): Split to...
3308         (vabals): ...this and...
3309         (vabalu): ...this.
3310         (vmax): Split to...
3311         (vmaxs): ...this and...
3312         (vmaxu): ...this and...
3313         (vmaxf): ...this.
3314         (vmin): Split to...
3315         (vmins): ...this and...
3316         (vminu): ...this and...
3317         (vminf): ...this.
3318         (vpmax): Split to...
3319         (vpmaxs): ...this and...
3320         (vpmaxu): ...this and...
3321         (vpmaxf): ...this.
3322         (vpmin): Split to...
3323         (vpmins): ...this and...
3324         (vpminu): ...this and...
3325         (vpminf): ...this.
3326         (vpaddl): Split to...
3327         (vpaddls): ...this and...
3328         (vpaddlu): ...this.
3329         (vpadal): Split to...
3330         (vpadals): ...this and...
3331         (vpadalu): ...this.
3332         (vget_laneu): New.
3333         (vqmovn): Split to...
3334         (vqmovns): ...this and...
3335         (vqmovnu): ...this.
3336         (vmovl): Split to...
3337         (vmovls): ...this and...
3338         (vmovlu): ...this.
3339         (vmlal_lane): Split to...
3340         (vmlals_lane): ...this and...
3341         (vmlalu_lane): ...this.
3342         (vmlsl_lane): Split to...
3343         (vmlsls_lane): ...this and...
3344         (vmlslu_lane): ...this.
3345         (vmlal_n): Split to...
3346         (vmlals_n): ...this and...
3347         (vmlalu_n): ...this.
3348         (vmlsl_n): Split to...
3349         (vmlsls_n): ...this and...
3350         (vmlslu_n): ...this.
3351         (vext): Make type "SHIFTINSERT".
3352         (vcvt): Split to...
3353         (vcvts): ...this and...
3354         (vcvtu): ...this.
3355         (vcvt_n): Split to...
3356         (vcvts_n): ...this and...
3357         (vcvtu_n): ...this.
3358         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
3359         (vaddl_s16): Likewise.
3360         (vaddl_s32): Likewise.
3361         (vaddl_u8): Likewise.
3362         (vaddl_u16): Likewise.
3363         (vaddl_u32): Likewise.
3364         (vaddw_s8): Likewise.
3365         (vaddw_s16): Likewise.
3366         (vaddw_s32): Likewise.
3367         (vaddw_u8): Likewise.
3368         (vaddw_u16): Likewise.
3369         (vaddw_u32): Likewise.
3370         (vhadd_s8): Likewise.
3371         (vhadd_s16): Likewise.
3372         (vhadd_s32): Likewise.
3373         (vhadd_u8): Likewise.
3374         (vhadd_u16): Likewise.
3375         (vhadd_u32): Likewise.
3376         (vhaddq_s8): Likewise.
3377         (vhaddq_s16): Likewise.
3378         (vhaddq_s32): Likewise.
3379         (vhaddq_u8): Likewise.
3380         (vhaddq_u16): Likewise.
3381         (vrhadd_s8): Likewise.
3382         (vrhadd_s16): Likewise.
3383         (vrhadd_s32): Likewise.
3384         (vrhadd_u8): Likewise.
3385         (vrhadd_u16): Likewise.
3386         (vrhadd_u32): Likewise.
3387         (vrhaddq_s8): Likewise.
3388         (vrhaddq_s16): Likewise.
3389         (vrhaddq_s32): Likewise.
3390         (vrhaddq_u8): Likewise.
3391         (vrhaddq_u16): Likewise.
3392         (vrhaddq_u32): Likewise.
3393         (vqadd_s8): Likewise.
3394         (vqadd_s16): Likewise.
3395         (vqadd_s32): Likewise.
3396         (vqadd_s64): Likewise.
3397         (vqadd_u8): Likewise.
3398         (vqadd_u16): Likewise.
3399         (vqadd_u32): Likewise.
3400         (vqadd_u64): Likewise.
3401         (vqaddq_s8): Likewise.
3402         (vqaddq_s16): Likewise.
3403         (vqaddq_s32): Likewise.
3404         (vqaddq_s64): Likewise.
3405         (vqaddq_u8): Likewise.
3406         (vqaddq_u16): Likewise.
3407         (vqaddq_u32): Likewise.
3408         (vqaddq_u64): Likewise.
3409         (vaddhn_s16): Likewise.
3410         (vaddhn_s32): Likewise.
3411         (vaddhn_s64): Likewise.
3412         (vaddhn_u16): Likewise.
3413         (vaddhn_u32): Likewise.
3414         (vaddhn_u64): Likewise.
3415         (vraddhn_s16): Likewise.
3416         (vraddhn_s32): Likewise.
3417         (vraddhn_s64): Likewise.
3418         (vraddhn_u16): Likewise.
3419         (vraddhn_u32): Likewise.
3420         (vraddhn_u64): Likewise.
3421         (vmul_p8): Likewise.
3422         (vmulq_p8): Likewise.
3423         (vqdmulh_s16): Likewise.
3424         (vqdmulh_s32): Likewise.
3425         (vqdmulhq_s16): Likewise.
3426         (vqdmulhq_s32): Likewise.
3427         (vqrdmulh_s16): Likewise.
3428         (vqrdmulh_s32): Likewise.
3429         (vqrdmulhq_s16): Likewise.
3430         (vqrdmulhq_s32): Likewise.
3431         (vmull_s8): Likewise.
3432         (vmull_s16): Likewise.
3433         (vmull_s32): Likewise.
3434         (vmull_u8): Likewise.
3435         (vmull_u16): Likewise.
3436         (vmull_u32): Likewise.
3437         (vmull_p8): Likewise.
3438         (vqdmull_s16): Likewise.
3439         (vqdmull_s32): Likewise.
3440         (vmla_s8): Likewise.
3441         (vmla_s16): Likewise.
3442         (vmla_s32): Likewise.
3443         (vmla_f32): Likewise.
3444         (vmla_u8): Likewise.
3445         (vmla_u16): Likewise.
3446         (vmla_u32): Likewise.
3447         (vmlaq_s8): Likewise.
3448         (vmlaq_s16): Likewise.
3449         (vmlaq_s32): Likewise.
3450         (vmlaq_f32): Likewise.
3451         (vmlaq_u8): Likewise.
3452         (vmlaq_u16): Likewise.
3453         (vmlaq_u32): Likewise.
3454         (vmlal_s8): Likewise.
3455         (vmlal_s16): Likewise.
3456         (vmlal_s32): Likewise.
3457         (vmlal_u8): Likewise.
3458         (vmlal_u16): Likewise.
3459         (vmlal_u32): Likewise.
3460         (vqdmlal_s16): Likewise.
3461         (vqdmlal_s32): Likewise.
3462         (vmls_s8): Likewise.
3463         (vmls_s16): Likewise.
3464         (vmls_s32): Likewise.
3465         (vmls_f32): Likewise.
3466         (vmls_u8): Likewise.
3467         (vmls_u16): Likewise.
3468         (vmls_u32): Likewise.
3469         (vmlsq_s8): Likewise.
3470         (vmlsq_s16): Likewise.
3471         (vmlsq_s32): Likewise.
3472         (vmlsq_f32): Likewise.
3473         (vmlsq_u8): Likewise.
3474         (vmlsq_u16): Likewise.
3475         (vmlsq_u32): Likewise.
3476         (vmlsl_s8): Likewise.
3477         (vmlsl_s16): Likewise.
3478         (vmlsl_s32): Likewise.
3479         (vmlsl_u8): Likewise.
3480         (vmlsl_u16): Likewise.
3481         (vmlsl_u32): Likewise.
3482         (vqdmlsl_s16): Likewise.
3483         (vqdmlsl_s32): Likewise.
3484         (vfma_f32): Likewise.
3485         (vfmaq_f32): Likewise.
3486         (vfms_f32): Likewise.
3487         (vfmsq_f32): Likewise.
3488         (vsubl_s8): Likewise.
3489         (vsubl_s16): Likewise.
3490         (vsubl_s32): Likewise.
3491         (vsubl_u8): Likewise.
3492         (vsubl_u16): Likewise.
3493         (vsubl_u32): Likewise.
3494         (vsubw_s8): Likewise.
3495         (vsubw_s16): Likewise.
3496         (vsubw_s32): Likewise.
3497         (vsubw_u8): Likewise.
3498         (vsubw_u16): Likewise.
3499         (vsubw_u32): Likewise.
3500         (vhsub_s8): Likewise.
3501         (vhsub_s16): Likewise.
3502         (vhsub_s32): Likewise.
3503         (vhsub_u8): Likewise.
3504         (vhsub_u16): Likewise.
3505         (vhsub_u32): Likewise.
3506         (vhsubq_s8): Likewise.
3507         (vhsubq_s16): Likewise.
3508         (vhsubq_s32): Likewise.
3509         (vhsubq_u8): Likewise.
3510         (vhsubq_u16): Likewise.
3511         (vhsubq_u32): Likewise.
3512         (vqsub_s8): Likewise.
3513         (vqsub_s16): Likewise.
3514         (vqsub_s32): Likewise.
3515         (vqsub_s64): Likewise.
3516         (vqsub_u8): Likewise.
3517         (vqsub_u16): Likewise.
3518         (vqsub_u32): Likewise.
3519         (vqsub_u64): Likewise.
3520         (vqsubq_s8): Likewise.
3521         (vqsubq_s16): Likewise.
3522         (vqsubq_s32): Likewise.
3523         (vqsubq_s64): Likewise.
3524         (vqsubq_u8): Likewise.
3525         (vqsubq_u16): Likewise.
3526         (vqsubq_u32): Likewise.
3527         (vqsubq_u64): Likewise.
3528         (vsubhn_s16): Likewise.
3529         (vsubhn_s32): Likewise.
3530         (vsubhn_s64): Likewise.
3531         (vsubhn_u16): Likewise.
3532         (vsubhn_u32): Likewise.
3533         (vsubhn_u64): Likewise.
3534         (vrsubhn_s16): Likewise.
3535         (vrsubhn_s32): Likewise.
3536         (vrsubhn_s64): Likewise.
3537         (vrsubhn_u16): Likewise.
3538         (vrsubhn_u32): Likewise.
3539         (vrsubhn_u64): Likewise.
3540         (vceq_s8): Likewise.
3541         (vceq_s16): Likewise.
3542         (vceq_s32): Likewise.
3543         (vceq_f32): Likewise.
3544         (vceq_u8): Likewise.
3545         (vceq_u16): Likewise.
3546         (vceq_u32): Likewise.
3547         (vceq_p8): Likewise.
3548         (vceqq_s8): Likewise.
3549         (vceqq_s16): Likewise.
3550         (vceqq_s32): Likewise.
3551         (vceqq_f32): Likewise.
3552         (vceqq_u8): Likewise.
3553         (vceqq_u16): Likewise.
3554         (vceqq_u32): Likewise.
3555         (vceqq_p8): Likewise.
3556         (vcge_s8): Likewise.
3557         (vcge_s16): Likewise.
3558         (vcge_s32): Likewise.
3559         (vcge_f32): Likewise.
3560         (vcge_u8): Likewise.
3561         (vcge_u16): Likewise.
3562         (vcge_u32): Likewise.
3563         (vcgeq_s8): Likewise.
3564         (vcgeq_s16): Likewise.
3565         (vcgeq_s32): Likewise.
3566         (vcgeq_f32): Likewise.
3567         (vcgeq_u8): Likewise.
3568         (vcgeq_u16): Likewise.
3569         (vcgeq_u32): Likewise.
3570         (vcle_s8): Likewise.
3571         (vcle_s16): Likewise.
3572         (vcle_s32): Likewise.
3573         (vcle_f32): Likewise.
3574         (vcle_u8): Likewise.
3575         (vcle_u16): Likewise.
3576         (vcle_u32): Likewise.
3577         (vcleq_s8): Likewise.
3578         (vcleq_s16): Likewise.
3579         (vcleq_s32): Likewise.
3580         (vcleq_f32): Likewise.
3581         (vcleq_u8): Likewise.
3582         (vcleq_u16): Likewise.
3583         (vcleq_u32): Likewise.
3584         (vcgt_s8): Likewise.
3585         (vcgt_s16): Likewise.
3586         (vcgt_s32): Likewise.
3587         (vcgt_f32): Likewise.
3588         (vcgt_u8): Likewise.
3589         (vcgt_u16): Likewise.
3590         (vcgt_u32): Likewise.
3591         (vcgtq_s8): Likewise.
3592         (vcgtq_s16): Likewise.
3593         (vcgtq_s32): Likewise.
3594         (vcgtq_f32): Likewise.
3595         (vcgtq_u8): Likewise.
3596         (vcgtq_u16): Likewise.
3597         (vcgtq_u32): Likewise.
3598         (vclt_s8): Likewise.
3599         (vclt_s16): Likewise.
3600         (vclt_s32): Likewise.
3601         (vclt_f32): Likewise.
3602         (vclt_u8): Likewise.
3603         (vclt_u16): Likewise.
3604         (vclt_u32): Likewise.
3605         (vcltq_s8): Likewise.
3606         (vcltq_s16): Likewise.
3607         (vcltq_s32): Likewise.
3608         (vcltq_f32): Likewise.
3609         (vcltq_u8): Likewise.
3610         (vcltq_u16): Likewise.
3611         (vcltq_u32): Likewise.
3612         (vcage_f32): Likewise.
3613         (vcageq_f32): Likewise.
3614         (vcale_f32): Likewise.
3615         (vcaleq_f32): Likewise.
3616         (vcagt_f32): Likewise.
3617         (vcagtq_f32): Likewise.
3618         (vcalt_f32): Likewise.
3619         (vcaltq_f32): Likewise.
3620         (vtst_s8): Likewise.
3621         (vtst_s16): Likewise.
3622         (vtst_s32): Likewise.
3623         (vtst_u8): Likewise.
3624         (vtst_u16): Likewise.
3625         (vtst_u32): Likewise.
3626         (vtst_p8): Likewise.
3627         (vtstq_s8): Likewise.
3628         (vtstq_s16): Likewise.
3629         (vtstq_s32): Likewise.
3630         (vtstq_u8): Likewise.
3631         (vtstq_u16): Likewise.
3632         (vtstq_u32): Likewise.
3633         (vtstq_p8): Likewise.
3634         (vabd_s8): Likewise.
3635         (vabd_s16): Likewise.
3636         (vabd_s32): Likewise.
3637         (vabd_f32): Likewise.
3638         (vabd_u8): Likewise.
3639         (vabd_u16): Likewise.
3640         (vabd_u32): Likewise.
3641         (vabdq_s8): Likewise.
3642         (vabdq_s16): Likewise.
3643         (vabdq_s32): Likewise.
3644         (vabdq_f32): Likewise.
3645         (vabdq_u8): Likewise.
3646         (vabdq_u16): Likewise.
3647         (vabdq_u32): Likewise.
3648         (vabdl_s8): Likewise.
3649         (vabdl_s16): Likewise.
3650         (vabdl_s32): Likewise.
3651         (vabdl_u8): Likewise.
3652         (vabdl_u16): Likewise.
3653         (vabdl_u32): Likewise.
3654         (vaba_s8): Likewise.
3655         (vaba_s16): Likewise.
3656         (vaba_s32): Likewise.
3657         (vaba_u8): Likewise.
3658         (vaba_u16): Likewise.
3659         (vaba_u32): Likewise.
3660         (vabaq_s8): Likewise.
3661         (vabaq_s16): Likewise.
3662         (vabaq_s32): Likewise.
3663         (vabaq_u8): Likewise.
3664         (vabaq_u16): Likewise.
3665         (vabaq_u32): Likewise.
3666         (vabal_s8): Likewise.
3667         (vabal_s16): Likewise.
3668         (vabal_s32): Likewise.
3669         (vabal_u8): Likewise.
3670         (vabal_u16): Likewise.
3671         (vabal_u32): Likewise.
3672         (vmax_s8): Likewise.
3673         (vmax_s16): Likewise.
3674         (vmax_s32): Likewise.
3675         (vmax_f32): Likewise.
3676         (vmax_u8): Likewise.
3677         (vmax_u16): Likewise.
3678         (vmax_u32): Likewise.
3679         (vmaxq_s8): Likewise.
3680         (vmaxq_s16): Likewise.
3681         (vmaxq_s32): Likewise.
3682         (vmaxq_f32): Likewise.
3683         (vmaxq_u8): Likewise.
3684         (vmaxq_u16): Likewise.
3685         (vmaxq_u32): Likewise.
3686         (vmin_s8): Likewise.
3687         (vmin_s16): Likewise.
3688         (vmin_s32): Likewise.
3689         (vmin_f32): Likewise.
3690         (vmin_u8): Likewise.
3691         (vmin_u16): Likewise.
3692         (vmin_u32): Likewise.
3693         (vminq_s8): Likewise.
3694         (vminq_s16): Likewise.
3695         (vminq_s32): Likewise.
3696         (vminq_f32): Likewise.
3697         (vminq_u8): Likewise.
3698         (vminq_u16): Likewise.
3699         (vminq_u32): Likewise.
3700         (vpadd_s8): Likewise.
3701         (vpadd_s16): Likewise.
3702         (vpadd_s32): Likewise.
3703         (vpadd_f32): Likewise.
3704         (vpadd_u8): Likewise.
3705         (vpadd_u16): Likewise.
3706         (vpadd_u32): Likewise.
3707         (vpaddl_s8): Likewise.
3708         (vpaddl_s16): Likewise.
3709         (vpaddl_s32): Likewise.
3710         (vpaddl_u8): Likewise.
3711         (vpaddl_u16): Likewise.
3712         (vpaddl_u32): Likewise.
3713         (vpaddlq_s8): Likewise.
3714         (vpaddlq_s16): Likewise.
3715         (vpaddlq_s32): Likewise.
3716         (vpaddlq_u8): Likewise.
3717         (vpaddlq_u16): Likewise.
3718         (vpaddlq_u32): Likewise.
3719         (vpadal_s8): Likewise.
3720         (vpadal_s16): Likewise.
3721         (vpadal_s32): Likewise.
3722         (vpadal_u8): Likewise.
3723         (vpadal_u16): Likewise.
3724         (vpadal_u32): Likewise.
3725         (vpadalq_s8): Likewise.
3726         (vpadalq_s16): Likewise.
3727         (vpadalq_s32): Likewise.
3728         (vpadalq_u8): Likewise.
3729         (vpadalq_u16): Likewise.
3730         (vpadalq_u32): Likewise.
3731         (vpmax_s8): Likewise.
3732         (vpmax_s16): Likewise.
3733         (vpmax_s32): Likewise.
3734         (vpmax_f32): Likewise.
3735         (vpmax_u8): Likewise.
3736         (vpmax_u16): Likewise.
3737         (vpmax_u32): Likewise.
3738         (vpmin_s8): Likewise.
3739         (vpmin_s16): Likewise.
3740         (vpmin_s32): Likewise.
3741         (vpmin_f32): Likewise.
3742         (vpmin_u8): Likewise.
3743         (vpmin_u16): Likewise.
3744         (vpmin_u32): Likewise.
3745         (vrecps_f32): Likewise.
3746         (vrecpsq_f32): Likewise.
3747         (vrsqrts_f32): Likewise.
3748         (vrsqrtsq_f32): Likewise.
3749         (vshl_s8): Likewise.
3750         (vshl_s16): Likewise.
3751         (vshl_s32): Likewise.
3752         (vshl_s64): Likewise.
3753         (vshl_u8): Likewise.
3754         (vshl_u16): Likewise.
3755         (vshl_u32): Likewise.
3756         (vshl_u64): Likewise.
3757         (vshlq_s8): Likewise.
3758         (vshlq_s16): Likewise.
3759         (vshlq_s32): Likewise.
3760         (vshlq_s64): Likewise.
3761         (vshlq_u8): Likewise.
3762         (vshlq_u16): Likewise.
3763         (vshlq_u32): Likewise.
3764         (vshlq_u64): Likewise.
3765         (vrshl_s8): Likewise.
3766         (vrshl_s16): Likewise.
3767         (vrshl_s32): Likewise.
3768         (vrshl_s64): Likewise.
3769         (vrshl_u8): Likewise.
3770         (vrshl_u16): Likewise.
3771         (vrshl_u32): Likewise.
3772         (vrshl_u64): Likewise.
3773         (vrshlq_s8): Likewise.
3774         (vrshlq_s16): Likewise.
3775         (vrshlq_s32): Likewise.
3776         (vrshlq_s64): Likewise.
3777         (vrshlq_u8): Likewise.
3778         (vrshlq_u16): Likewise.
3779         (vrshlq_u32): Likewise.
3780         (vrshlq_u64): Likewise.
3781         (vqshl_s8): Likewise.
3782         (vqshl_s16): Likewise.
3783         (vqshl_s32): Likewise.
3784         (vqshl_s64): Likewise.
3785         (vqshl_u8): Likewise.
3786         (vqshl_u16): Likewise.
3787         (vqshl_u32): Likewise.
3788         (vqshl_u64): Likewise.
3789         (vqshlq_s8): Likewise.
3790         (vqshlq_s16): Likewise.
3791         (vqshlq_s32): Likewise.
3792         (vqshlq_s64): Likewise.
3793         (vqshlq_u8): Likewise.
3794         (vqshlq_u16): Likewise.
3795         (vqshlq_u32): Likewise.
3796         (vqshlq_u64): Likewise.
3797         (vqrshl_s8): Likewise.
3798         (vqrshl_s16): Likewise.
3799         (vqrshl_s32): Likewise.
3800         (vqrshl_s64): Likewise.
3801         (vqrshl_u8): Likewise.
3802         (vqrshl_u16): Likewise.
3803         (vqrshl_u32): Likewise.
3804         (vqrshl_u64): Likewise.
3805         (vqrshlq_s8): Likewise.
3806         (vqrshlq_s16): Likewise.
3807         (vqrshlq_s32): Likewise.
3808         (vqrshlq_s64): Likewise.
3809         (vqrshlq_u8): Likewise.
3810         (vqrshlq_u16): Likewise.
3811         (vqrshlq_u32): Likewise.
3812         (vqrshlq_u64): Likewise.
3813         (vshr_n_s8): Likewise.
3814         (vshr_n_s16): Likewise.
3815         (vshr_n_s32): Likewise.
3816         (vshr_n_s64): Likewise.
3817         (vshr_n_u8): Likewise.
3818         (vshr_n_u16): Likewise.
3819         (vshr_n_u32): Likewise.
3820         (vshr_n_u64): Likewise.
3821         (vshrq_n_s8): Likewise.
3822         (vshrq_n_s16): Likewise.
3823         (vshrq_n_s32): Likewise.
3824         (vshrq_n_s64): Likewise.
3825         (vshrq_n_u8): Likewise.
3826         (vshrq_n_u16): Likewise.
3827         (vshrq_n_u32): Likewise.
3828         (vshrq_n_u64): Likewise.
3829         (vrshr_n_s8): Likewise.
3830         (vrshr_n_s16): Likewise.
3831         (vrshr_n_s32): Likewise.
3832         (vrshr_n_s64): Likewise.
3833         (vrshr_n_u8): Likewise.
3834         (vrshr_n_u16): Likewise.
3835         (vrshr_n_u32): Likewise.
3836         (vrshr_n_u64): Likewise.
3837         (vrshrq_n_s8): Likewise.
3838         (vrshrq_n_s16): Likewise.
3839         (vrshrq_n_s32): Likewise.
3840         (vrshrq_n_s64): Likewise.
3841         (vrshrq_n_u8): Likewise.
3842         (vrshrq_n_u16): Likewise.
3843         (vrshrq_n_u32): Likewise.
3844         (vrshrq_n_u64): Likewise.
3845         (vshrn_n_s16): Likewise.
3846         (vshrn_n_s32): Likewise.
3847         (vshrn_n_s64): Likewise.
3848         (vshrn_n_u16): Likewise.
3849         (vshrn_n_u32): Likewise.
3850         (vshrn_n_u64): Likewise.
3851         (vrshrn_n_s16): Likewise.
3852         (vrshrn_n_s32): Likewise.
3853         (vrshrn_n_s64): Likewise.
3854         (vrshrn_n_u16): Likewise.
3855         (vrshrn_n_u32): Likewise.
3856         (vrshrn_n_u64): Likewise.
3857         (vqshrn_n_s16): Likewise.
3858         (vqshrn_n_s32): Likewise.
3859         (vqshrn_n_s64): Likewise.
3860         (vqshrn_n_u16): Likewise.
3861         (vqshrn_n_u32): Likewise.
3862         (vqshrn_n_u64): Likewise.
3863         (vqrshrn_n_s16): Likewise.
3864         (vqrshrn_n_s32): Likewise.
3865         (vqrshrn_n_s64): Likewise.
3866         (vqrshrn_n_u16): Likewise.
3867         (vqrshrn_n_u32): Likewise.
3868         (vqrshrn_n_u64): Likewise.
3869         (vqshrun_n_s16): Likewise.
3870         (vqshrun_n_s32): Likewise.
3871         (vqshrun_n_s64): Likewise.
3872         (vqrshrun_n_s16): Likewise.
3873         (vqrshrun_n_s32): Likewise.
3874         (vqrshrun_n_s64): Likewise.
3875         (vshl_n_s8): Likewise.
3876         (vshl_n_s16): Likewise.
3877         (vshl_n_s32): Likewise.
3878         (vshl_n_s64): Likewise.
3879         (vshl_n_u8): Likewise.
3880         (vshl_n_u16): Likewise.
3881         (vshl_n_u32): Likewise.
3882         (vshl_n_u64): Likewise.
3883         (vshlq_n_s8): Likewise.
3884         (vshlq_n_s16): Likewise.
3885         (vshlq_n_s32): Likewise.
3886         (vshlq_n_s64): Likewise.
3887         (vshlq_n_u8): Likewise.
3888         (vshlq_n_u16): Likewise.
3889         (vshlq_n_u32): Likewise.
3890         (vshlq_n_u64): Likewise.
3891         (vqshl_n_s8): Likewise.
3892         (vqshl_n_s16): Likewise.
3893         (vqshl_n_s32): Likewise.
3894         (vqshl_n_s64): Likewise.
3895         (vqshl_n_u8): Likewise.
3896         (vqshl_n_u16): Likewise.
3897         (vqshl_n_u32): Likewise.
3898         (vqshl_n_u64): Likewise.
3899         (vqshlq_n_s8): Likewise.
3900         (vqshlq_n_s16): Likewise.
3901         (vqshlq_n_s32): Likewise.
3902         (vqshlq_n_s64): Likewise.
3903         (vqshlq_n_u8): Likewise.
3904         (vqshlq_n_u16): Likewise.
3905         (vqshlq_n_u32): Likewise.
3906         (vqshlq_n_u64): Likewise.
3907         (vqshlu_n_s8): Likewise.
3908         (vqshlu_n_s16): Likewise.
3909         (vqshlu_n_s32): Likewise.
3910         (vqshlu_n_s64): Likewise.
3911         (vqshluq_n_s8): Likewise.
3912         (vqshluq_n_s16): Likewise.
3913         (vqshluq_n_s32): Likewise.
3914         (vqshluq_n_s64): Likewise.
3915         (vshll_n_s8): Likewise.
3916         (vshll_n_s16): Likewise.
3917         (vshll_n_s32): Likewise.
3918         (vshll_n_u8): Likewise.
3919         (vshll_n_u16): Likewise.
3920         (vshll_n_u32): Likewise.
3921         (vsra_n_s8): Likewise.
3922         (vsra_n_s16): Likewise.
3923         (vsra_n_s32): Likewise.
3924         (vsra_n_s64): Likewise.
3925         (vsra_n_u8): Likewise.
3926         (vsra_n_u16): Likewise.
3927         (vsra_n_u32): Likewise.
3928         (vsra_n_u64): Likewise.
3929         (vsraq_n_s8): Likewise.
3930         (vsraq_n_s16): Likewise.
3931         (vsraq_n_s32): Likewise.
3932         (vsraq_n_s64): Likewise.
3933         (vsraq_n_u8): Likewise.
3934         (vsraq_n_u16): Likewise.
3935         (vsraq_n_u32): Likewise.
3936         (vsraq_n_u64): Likewise.
3937         (vrsra_n_s8): Likewise.
3938         (vrsra_n_s16): Likewise.
3939         (vrsra_n_s32): Likewise.
3940         (vrsra_n_s64): Likewise.
3941         (vrsra_n_u8): Likewise.
3942         (vrsra_n_u16): Likewise.
3943         (vrsra_n_u32): Likewise.
3944         (vrsra_n_u64): Likewise.
3945         (vrsraq_n_s8): Likewise.
3946         (vrsraq_n_s16): Likewise.
3947         (vrsraq_n_s32): Likewise.
3948         (vrsraq_n_s64): Likewise.
3949         (vrsraq_n_u8): Likewise.
3950         (vrsraq_n_u16): Likewise.
3951         (vrsraq_n_u32): Likewise.
3952         (vrsraq_n_u64): Likewise.
3953         (vabs_s8): Likewise.
3954         (vabs_s16): Likewise.
3955         (vabs_s32): Likewise.
3956         (vabs_f32): Likewise.
3957         (vabsq_s8): Likewise.
3958         (vabsq_s16): Likewise.
3959         (vabsq_s32): Likewise.
3960         (vabsq_f32): Likewise.
3961         (vqabs_s8): Likewise.
3962         (vqabs_s16): Likewise.
3963         (vqabs_s32): Likewise.
3964         (vqabsq_s8): Likewise.
3965         (vqabsq_s16): Likewise.
3966         (vqabsq_s32): Likewise.
3967         (vneg_s8): Likewise.
3968         (vneg_s16): Likewise.
3969         (vneg_s32): Likewise.
3970         (vneg_f32): Likewise.
3971         (vnegq_s8): Likewise.
3972         (vnegq_s16): Likewise.
3973         (vnegq_s32): Likewise.
3974         (vnegq_f32): Likewise.
3975         (vqneg_s8): Likewise.
3976         (vqneg_s16): Likewise.
3977         (vqneg_s32): Likewise.
3978         (vqnegq_s8): Likewise.
3979         (vqnegq_s16): Likewise.
3980         (vqnegq_s32): Likewise.
3981         (vmvn_s8): Likewise.
3982         (vmvn_s16): Likewise.
3983         (vmvn_s32): Likewise.
3984         (vmvn_u8): Likewise.
3985         (vmvn_u16): Likewise.
3986         (vmvn_u32): Likewise.
3987         (vmvn_p8): Likewise.
3988         (vmvnq_s8): Likewise.
3989         (vmvnq_s16): Likewise.
3990         (vmvnq_s32): Likewise.
3991         (vmvnq_u8): Likewise.
3992         (vmvnq_u16): Likewise.
3993         (vmvnq_u32): Likewise.
3994         (vmvnq_p8): Likewise.
3995         (vcls_s8): Likewise.
3996         (vcls_s16): Likewise.
3997         (vcls_s32): Likewise.
3998         (vclsq_s8): Likewise.
3999         (vclsq_s16): Likewise.
4000         (vclsq_s32): Likewise.
4001         (vclz_s8): Likewise.
4002         (vclz_s16): Likewise.
4003         (vclz_s32): Likewise.
4004         (vclz_u8): Likewise.
4005         (vclz_u16): Likewise.
4006         (vclz_u32): Likewise.
4007         (vclzq_s8): Likewise.
4008         (vclzq_s16): Likewise.
4009         (vclzq_s32): Likewise.
4010         (vclzq_u8): Likewise.
4011         (vclzq_u16): Likewise.
4012         (vclzq_u32): Likewise.
4013         (vcnt_s8): Likewise.
4014         (vcnt_u8): Likewise.
4015         (vcnt_p8): Likewise.
4016         (vcntq_s8): Likewise.
4017         (vcntq_u8): Likewise.
4018         (vcntq_p8): Likewise.
4019         (vrecpe_f32): Likewise.
4020         (vrecpe_u32): Likewise.
4021         (vrecpeq_f32): Likewise.
4022         (vrecpeq_u32): Likewise.
4023         (vrsqrte_f32): Likewise.
4024         (vrsqrte_u32): Likewise.
4025         (vrsqrteq_f32): Likewise.
4026         (vrsqrteq_u32): Likewise.
4027         (vget_lane_s8): Likewise.
4028         (vget_lane_s16): Likewise.
4029         (vget_lane_s32): Likewise.
4030         (vget_lane_f32): Likewise.
4031         (vget_lane_u8): Likewise.
4032         (vget_lane_u16): Likewise.
4033         (vget_lane_u32): Likewise.
4034         (vget_lane_p8): Likewise.
4035         (vget_lane_p16): Likewise.
4036         (vget_lane_s64): Likewise.
4037         (vget_lane_u64): Likewise.
4038         (vgetq_lane_s8): Likewise.
4039         (vgetq_lane_s16): Likewise.
4040         (vgetq_lane_s32): Likewise.
4041         (vgetq_lane_f32): Likewise.
4042         (vgetq_lane_u8): Likewise.
4043         (vgetq_lane_u16): Likewise.
4044         (vgetq_lane_u32): Likewise.
4045         (vgetq_lane_p8): Likewise.
4046         (vgetq_lane_p16): Likewise.
4047         (vgetq_lane_s64): Likewise.
4048         (vgetq_lane_u64): Likewise.
4049         (vcvt_s32_f32): Likewise.
4050         (vcvt_f32_s32): Likewise.
4051         (vcvt_f32_u32): Likewise.
4052         (vcvt_u32_f32): Likewise.
4053         (vcvtq_s32_f32): Likewise.
4054         (vcvtq_f32_s32): Likewise.
4055         (vcvtq_f32_u32): Likewise.
4056         (vcvtq_u32_f32): Likewise.
4057         (vcvt_n_s32_f32): Likewise.
4058         (vcvt_n_f32_s32): Likewise.
4059         (vcvt_n_f32_u32): Likewise.
4060         (vcvt_n_u32_f32): Likewise.
4061         (vcvtq_n_s32_f32): Likewise.
4062         (vcvtq_n_f32_s32): Likewise.
4063         (vcvtq_n_f32_u32): Likewise.
4064         (vcvtq_n_u32_f32): Likewise.
4065         (vmovn_s16): Likewise.
4066         (vmovn_s32): Likewise.
4067         (vmovn_s64): Likewise.
4068         (vmovn_u16): Likewise.
4069         (vmovn_u32): Likewise.
4070         (vmovn_u64): Likewise.
4071         (vqmovn_s16): Likewise.
4072         (vqmovn_s32): Likewise.
4073         (vqmovn_s64): Likewise.
4074         (vqmovn_u16): Likewise.
4075         (vqmovn_u32): Likewise.
4076         (vqmovn_u64): Likewise.
4077         (vqmovun_s16): Likewise.
4078         (vqmovun_s32): Likewise.
4079         (vqmovun_s64): Likewise.
4080         (vmovl_s8): Likewise.
4081         (vmovl_s16): Likewise.
4082         (vmovl_s32): Likewise.
4083         (vmovl_u8): Likewise.
4084         (vmovl_u16): Likewise.
4085         (vmovl_u32): Likewise.
4086         (vmul_lane_s16): Likewise.
4087         (vmul_lane_s32): Likewise.
4088         (vmul_lane_f32): Likewise.
4089         (vmul_lane_u16): Likewise.
4090         (vmul_lane_u32): Likewise.
4091         (vmulq_lane_s16): Likewise.
4092         (vmulq_lane_s32): Likewise.
4093         (vmulq_lane_f32): Likewise.
4094         (vmulq_lane_u16): Likewise.
4095         (vmulq_lane_u32): Likewise.
4096         (vmla_lane_s16): Likewise.
4097         (vmla_lane_s32): Likewise.
4098         (vmla_lane_f32): Likewise.
4099         (vmla_lane_u16): Likewise.
4100         (vmla_lane_u32): Likewise.
4101         (vmlaq_lane_s16): Likewise.
4102         (vmlaq_lane_s32): Likewise.
4103         (vmlaq_lane_f32): Likewise.
4104         (vmlaq_lane_u16): Likewise.
4105         (vmlaq_lane_u32): Likewise.
4106         (vmlal_lane_s16): Likewise.
4107         (vmlal_lane_s32): Likewise.
4108         (vmlal_lane_u16): Likewise.
4109         (vmlal_lane_u32): Likewise.
4110         (vqdmlal_lane_s16): Likewise.
4111         (vqdmlal_lane_s32): Likewise.
4112         (vmls_lane_s16): Likewise.
4113         (vmls_lane_s32): Likewise.
4114         (vmls_lane_f32): Likewise.
4115         (vmls_lane_u16): Likewise.
4116         (vmls_lane_u32): Likewise.
4117         (vmlsq_lane_s16): Likewise.
4118         (vmlsq_lane_s32): Likewise.
4119         (vmlsq_lane_f32): Likewise.
4120         (vmlsq_lane_u16): Likewise.
4121         (vmlsq_lane_u32): Likewise.
4122         (vmlsl_lane_s16): Likewise.
4123         (vmlsl_lane_s32): Likewise.
4124         (vmlsl_lane_u16): Likewise.
4125         (vmlsl_lane_u32): Likewise.
4126         (vqdmlsl_lane_s16): Likewise.
4127         (vqdmlsl_lane_s32): Likewise.
4128         (vmull_lane_s16): Likewise.
4129         (vmull_lane_s32): Likewise.
4130         (vmull_lane_u16): Likewise.
4131         (vmull_lane_u32): Likewise.
4132         (vqdmull_lane_s16): Likewise.
4133         (vqdmull_lane_s32): Likewise.
4134         (vqdmulhq_lane_s16): Likewise.
4135         (vqdmulhq_lane_s32): Likewise.
4136         (vqdmulh_lane_s16): Likewise.
4137         (vqdmulh_lane_s32): Likewise.
4138         (vqrdmulhq_lane_s16): Likewise.
4139         (vqrdmulhq_lane_s32): Likewise.
4140         (vqrdmulh_lane_s16): Likewise.
4141         (vqrdmulh_lane_s32): Likewise.
4142         (vmul_n_s16): Likewise.
4143         (vmul_n_s32): Likewise.
4144         (vmul_n_f32): Likewise.
4145         (vmul_n_u16): Likewise.
4146         (vmul_n_u32): Likewise.
4147         (vmulq_n_s16): Likewise.
4148         (vmulq_n_s32): Likewise.
4149         (vmulq_n_f32): Likewise.
4150         (vmulq_n_u16): Likewise.
4151         (vmulq_n_u32): Likewise.
4152         (vmull_n_s16): Likewise.
4153         (vmull_n_s32): Likewise.
4154         (vmull_n_u16): Likewise.
4155         (vmull_n_u32): Likewise.
4156         (vqdmull_n_s16): Likewise.
4157         (vqdmull_n_s32): Likewise.
4158         (vqdmulhq_n_s16): Likewise.
4159         (vqdmulhq_n_s32): Likewise.
4160         (vqdmulh_n_s16): Likewise.
4161         (vqdmulh_n_s32): Likewise.
4162         (vqrdmulhq_n_s16): Likewise.
4163         (vqrdmulhq_n_s32): Likewise.
4164         (vqrdmulh_n_s16): Likewise.
4165         (vqrdmulh_n_s32): Likewise.
4166         (vmla_n_s16): Likewise.
4167         (vmla_n_s32): Likewise.
4168         (vmla_n_f32): Likewise.
4169         (vmla_n_u16): Likewise.
4170         (vmla_n_u32): Likewise.
4171         (vmlaq_n_s16): Likewise.
4172         (vmlaq_n_s32): Likewise.
4173         (vmlaq_n_f32): Likewise.
4174         (vmlaq_n_u16): Likewise.
4175         (vmlaq_n_u32): Likewise.
4176         (vmlal_n_s16): Likewise.
4177         (vmlal_n_s32): Likewise.
4178         (vmlal_n_u16): Likewise.
4179         (vmlal_n_u32): Likewise.
4180         (vqdmlal_n_s16): Likewise.
4181         (vqdmlal_n_s32): Likewise.
4182         (vmls_n_s16): Likewise.
4183         (vmls_n_s32): Likewise.
4184         (vmls_n_f32): Likewise.
4185         (vmls_n_u16): Likewise.
4186         (vmls_n_u32): Likewise.
4187         (vmlsq_n_s16): Likewise.
4188         (vmlsq_n_s32): Likewise.
4189         (vmlsq_n_f32): Likewise.
4190         (vmlsq_n_u16): Likewise.
4191         (vmlsq_n_u32): Likewise.
4192         (vmlsl_n_s16): Likewise.
4193         (vmlsl_n_s32): Likewise.
4194         (vmlsl_n_u16): Likewise.
4195         (vmlsl_n_u32): Likewise.
4196         (vqdmlsl_n_s16): Likewise.
4197         (vqdmlsl_n_s32): Likewise.
4198
4199 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4200
4201         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
4202         Add cost of alu.arith in simple SImode case.
4203
4204 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
4205
4206         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
4207         registers.
4208
4209 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
4210
4211         * opts.c (finish_options): Disable aggressive opts for sanitizer.  
4212         (common_handle_option): Move code to finish_options.  
4213
4214 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
4215
4216         PR sanitizer/63802
4217         * stor-layout.c (min_align_of_type): Respect user alignment
4218         more.
4219
4220 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
4221
4222         * passes.c (remove_cgraph_node_from_order): New.
4223         (do_per_function_toporder): Register cgraph removal
4224         hook.
4225
4226 2014-11-17  Terry Guo  <terry.guo@arm.com>
4227
4228         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
4229         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
4230         (generic_vfp): Likewise.
4231         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
4232
4233 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
4234
4235         PR rtl-optimization/63906
4236         * lra-remat.c (operand_to_remat): Check SP and
4237         frame_pointer_required.
4238
4239 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
4240
4241         * doc/invoke.texi (floop-unroll-and-jam): Document
4242         (loop-unroll-jam-size): Likewise.
4243         (loop-unroll-jam-depth): Likewise.
4244         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
4245         (getScheduleForBandList): Replaced unsafe union_map reuse.
4246
4247 2014-11-17  Andrew Pinski  <apinski@cavium.com>
4248
4249         * config/aarch64/thunderx.md: Remove copyright which should not
4250         have been there.
4251
4252 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
4253             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4254
4255         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
4256         Altivec style vector loads that ignore the bottom 3 bits of the
4257         address.
4258         (rs6000_debug_addr_mask): New function to print the addr_mask
4259         values if debugging.
4260         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
4261         out addr_mask.
4262         (rs6000_setup_reg_addr_masks): Add support for Altivec style
4263         vector loads that ignore the bottom 3 bits of the address.  Allow
4264         pre-increment and pre-decrement on floating point, even if the
4265         -mupper-regs-{sf,df} options were used.
4266         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
4267         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
4268         placement for direct move support.
4269         (rs6000_option_override_internal): Add checks for -mupper-regs-df
4270         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
4271         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
4272         depending on the underlying cpu.
4273         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
4274         (rs6000_secondary_reload_toc_costs): Helper function to identify
4275         costs of a TOC load for secondary reload support.
4276         (rs6000_secondary_reload_memory): Helper function for secondary
4277         reload, to determine if a particular memory operation is directly
4278         handled by the hardware, or if it needs support from secondary
4279         reload to create a valid address.
4280         (rs6000_secondary_reload): Rework code, to be clearer.  If the
4281         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
4282         reload scalar values, since the FPR registers have D-form
4283         addressing. Move most of the code handling memory to the function
4284         rs6000_secondary_reload_memory, and use the reg_addr structure to
4285         determine what type of address modes are supported.  Print more
4286         debug information if -mdebug=addr.
4287         (rs6000_secondary_reload_inner): Rework entire function to be more
4288         general.  Use the reg_addr bits to determine what type of
4289         addressing is supported.
4290         (rs6000_preferred_reload_class): Rework.  Move constant handling
4291         into a single place.  Prefer using FLOAT_REGS for scalar floating
4292         point.
4293         (rs6000_secondary_reload_class): Use a FPR register to move a
4294         value from an Altivec register to a GPR, and vice versa.  Move VSX
4295         handling above traditional floating point.
4296
4297         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
4298         Delete some spaces in the constraints.
4299         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
4300         allow using FPR registers to load/store an Altivec register for
4301         scalar floating point types.
4302         (SF->SF move peephole2): Likewise.
4303         (DFmode splitter): Add a define_split to move floating point
4304         constants to the constant pool before register allocation.
4305         Normally constants are put into the pool immediately, but
4306         -ffast-math delays putting them into the constant pool for the
4307         reciprocal approximation support.
4308         (SFmode splitter): Likewise.
4309
4310         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
4311         (-mupper-regs-sf): Likewise.
4312
4313         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
4314         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
4315         -mupper-regs-sf.
4316         (-mupper-regs): New combination option that sets -mupper-regs-sf
4317         and -mupper-regs-df by default if the cpu supports the instructions.
4318
4319         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4320         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
4321
4322         * config/rs6000/predicates.md (memory_fp_constant): New predicate
4323         to return true if the operand is a floating point constant that
4324         must be put into the constant pool, before register allocation
4325         occurs.
4326
4327         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
4328         -mupper-regs-df by default.
4329         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
4330         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
4331         various -mcpu=... options.
4332         (power7 cpu): Enable -mupper-regs-df by default.
4333
4334         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4335         -mupper-regs.
4336
4337 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4338
4339         * ira-conflicts.c (build_conflict_bit_table): Add the current
4340         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
4341
4342 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
4343
4344         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
4345         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
4346         (devirtualization_time_bonus): Use it.
4347         (ipcp_discover_new_direct_edges): Likewise.
4348         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
4349         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
4350
4351 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
4352
4353         * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
4354         to optimization_default_node.
4355
4356 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
4357
4358         * cgraphunit.c (analyze_functions): Use opt_for_fn.
4359         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
4360
4361 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
4362
4363         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
4364         (cgraph_node::cannot_return_p): Likewise.
4365         (cgraph_edge::cannot_lead_to_return_p): Likewise.
4366         (cgraph_edge::maybe_hot_p): Likewise.
4367
4368 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
4369
4370         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
4371         (optimize_function_for_size_p): Likewise.
4372         (probably_never_executed): Likewise; replace cfun by fun.
4373
4374 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
4375
4376         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
4377         variant reading from memory and assembling to ld1.
4378
4379         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
4380         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
4381         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
4382         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
4383         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
4384         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
4385         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
4386
4387 2014-11-17  Jason Merrill  <jason@redhat.com>
4388
4389         * tree-inline.c (copy_fn): New.
4390         * tree-inline.h: Declare it.
4391
4392 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
4393
4394         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
4395         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
4396         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
4397         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
4398         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
4399         * config/aarch64/iterators.md (VD1): Remove.
4400
4401 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4402
4403         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
4404         AARCH64_FL_CRYPTO from feature flags.
4405         (cortex-a57): Likewise.
4406         (cortex-a57.cortex-a53): Likewise.
4407
4408 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
4409
4410         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
4411         DECL_FUNCTION_SPECIFIC_TARGET.
4412         * i386.c (ix86_set_current_function): Handle explicit default options.
4413
4414 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4415
4416         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
4417         instead of BNDmode.
4418         (expand_builtin_mempcpy_with_bounds): Likewise.
4419         (expand_builtin_memset_with_bounds): Likewise.
4420
4421 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4422
4423         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
4424         ipa-ref.h, plugin-api.h.
4425         (get_string_length): Handle calls with bounds.
4426         (adjust_last_stmt): Likewise.
4427         (handle_builtin_strchr): Likewise.
4428         (handle_builtin_strcpy): Likewise.
4429         (handle_builtin_memcpy): Likewise.
4430         (handle_builtin_strcat): Likewise.
4431
4432 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4433
4434         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
4435         (chkp_get_nochk_fndecl): New.
4436         (chkp_optimize_string_function_calls): New.
4437         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
4438         * tree-cfg.h (insert_cond_bb): New.
4439         * tree-cfg.c (insert_cond_bb): New.
4440
4441 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4442
4443         * tree-core.h (built_in_class): Add builtin codes to be used
4444         by Pointer Bounds Checker for instrumented builtin functions.
4445         * tree-streamer-in.c: Include ipa-chkp.h.
4446         (streamer_get_builtin_tree): Created instrumented decl if
4447         required.
4448         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
4449         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
4450         function decls.
4451         (chkp_maybe_clone_builtin_fndecl): New.
4452         (chkp_maybe_create_clone): Support builtin function decls.
4453         (chkp_versioning): Clone builtin functions.
4454         * tree-chkp.c (chkp_instrument_normal_builtin): New.
4455         (chkp_add_bounds_to_call_stmt): Support builtin functions.
4456         (chkp_replace_function_pointer): Likewise.
4457         * builtins.c (expand_builtin_memcpy_args): New.
4458         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
4459         (expand_builtin_memcpy_with_bounds): New.
4460         (expand_builtin_mempcpy_with_bounds): New.
4461         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
4462         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
4463         (expand_builtin_memset_with_bounds): New.
4464         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
4465         (expand_builtin_with_bounds): New.
4466         * builtins.h (expand_builtin_with_bounds): New.
4467         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
4468
4469 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
4470
4471         * gimple.h (gimple_set_visited, gimple_visited_p)
4472         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
4473         comments to these accessors.
4474
4475 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
4476
4477         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
4478         Set avr_log_details to "all".
4479
4480 2014-11-17  Richard Biener  <rguenther@suse.de>
4481
4482         PR middle-end/63898
4483         * match.pd: Guard X / CST -> X * CST' transform against
4484         zero CST.
4485
4486 2014-11-17  Terry Guo  <terry.guo@arm.com>
4487
4488         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
4489         format.
4490
4491 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4492
4493         * ifcvt.c (HAVE_cbranchcc4): Define.
4494         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
4495         Use HAVE_cbranchcc4.
4496
4497 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4498
4499         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
4500         aarch64_convert_mode, aarch64_gen_ccmp_first,
4501         aarch64_gen_ccmp_next): New functions.
4502         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
4503
4504 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4505
4506         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
4507         * aarch64.c (aarch64_nzcv_codes): New data.
4508         (aarch64_ccmp_mode_to_code): New.
4509         (aarch64_print_operand): Output nzcv.
4510         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
4511         New patterns.
4512         (cstore<mode>4): Handle ccmp_cc_register.
4513         * config/aarch64/predicates.md (const0_operand): New.
4514
4515 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4516
4517         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
4518         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
4519         extacted from aarch64_get_condition_code.
4520         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
4521         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
4522
4523 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4524
4525         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
4526         aarch64_ccmp_operand): New constraints.
4527
4528 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4529
4530         * Makefile.in: Add ccmp.o.
4531         * ccmp.c: New file.
4532         * ccmp.h: New file.
4533         * expr.c: include "ccmp.h"
4534         (expand_cond_expr_using_cmove): Handle VOIDmode.
4535         (expand_expr_real_1): Try to expand ccmp.
4536
4537 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4538
4539         * cfgexpand.c (expand_gimple_cond): Check ccmp.
4540         * expmed.c (emit_cstore): Make it global.
4541         * expmed.h: #include "insn-codes.h"
4542         (emit_cstore): New prototype.
4543         * expr.c (expand_operands): Make it global.
4544         * expr.h (expand_operands): New prototype.
4545         * optabs.c (get_rtx_code): Make it global.
4546         * optabs.h (get_rtx_code): New prototype.
4547
4548 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
4549
4550         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
4551         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
4552         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
4553
4554 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
4555
4556         PR middle-end/63790
4557         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
4558         Always combine comparisons or conversions from booleans.
4559
4560 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
4561
4562         * ipa-polymorphic-call.c
4563         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
4564         (ipa_polymorphic_call_context::meet_speculation_with): New function.
4565         (ipa_polymorphic_call_context::combine_with): Handle types in construction
4566         better.
4567         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
4568         speculation.
4569         (ipa_polymorphic_call_context::meet_with): New function.
4570         * cgraph.h (class ipa_polymorphic_call_context): Add
4571         meet_width, meet_speculation_with; constify speculation_consistent_p.
4572         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
4573         context.
4574         (propagate_context_accross_jump_function): Likewise; be more cureful.
4575         about set_contains_variable.
4576         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
4577         (find_more_scalar_values_for_callers_subset): Fix.
4578         (find_more_contexts_for_caller_subset): Perform meet operation.
4579
4580 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
4581
4582         * passes.c (execute_one_pass): Do not apply all transforms prior
4583         every simple IPA pass.
4584         * cgraphunit.c: Do not include fibheap.h
4585         (expand_thunk): Use get_untransformed_body.
4586         (cgraph_node::expand): Likewise.
4587         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
4588         * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
4589         (cgraph_node::get_untransformed_body): Break out from ...
4590         (cgraph_node::get_body): ... here; add code to apply all transforms.
4591         * cgraph.h (cgraph_node): Add get_untransformed_body.
4592         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
4593         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
4594         * tree-inline.c (expand_call_inline): LIkewise.
4595         * i386.c (ix86_reset_to_default_globals): Break out from ...
4596         (ix86_set_current_function): ... here;
4597         (ix86_reset_previous_fndecl): Use it.
4598         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
4599
4600 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4601
4602         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
4603         * doc/tm.texi: Regenerate.
4604
4605 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
4606
4607         * config/sh/sh.c: Do not include algorithm.
4608         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
4609         to swap values.
4610         (sh_emit_compare_and_branch): Ditto.
4611         (sh_emit_compare_and_set): Ditto.
4612         * config/sh/sh.md (replacement peephole2): Ditto.
4613         (cstore4_media): Ditto.
4614         (*fmasf4): Ditto.
4615
4616 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
4617
4618         * lra-remat.c (cand_transf_func): Process regno for
4619         rematerialization too.
4620         * lra.c (lra): Switch on rematerialization pass.
4621
4622 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
4623
4624         * lra.c (lra): Switch off rematerialization pass.
4625
4626 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
4627
4628         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
4629         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
4630         instead of builtins.
4631         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
4632         typedefs.
4633         (_mm_sqrt_sd): Fix comment.
4634         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
4635         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
4636         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
4637         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
4638         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
4639         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
4640         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
4641         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
4642         Use vector extensions instead of builtins.
4643         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
4644         _mm_mullo_epi32): Likewise.
4645         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
4646         New typedefs.
4647         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
4648         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
4649         Use vector extensions instead of builtins.
4650         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
4651         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
4652         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
4653         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
4654         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
4655         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
4656         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
4657         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
4658         New typedefs.
4659         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
4660         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
4661         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
4662         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
4663         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
4664         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
4665         _mm512_div_ps): Use vector extensions instead of builtins.
4666         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
4667         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
4668         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
4669         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
4670         Likewise.
4671
4672 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
4673
4674         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
4675         * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
4676         * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
4677         * opth-gen.awk: Add prototype of cl_optimization_hash.
4678         * tree-streamer-in.c (unpack_ts_optimization): Remove.
4679         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
4680         * tree-streamer-out.c (pack_ts_optimization): Remove.
4681         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
4682
4683 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
4684
4685         * common.opt (flag_loop_unroll_and_jam): New flag.
4686         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
4687         jam flag.
4688         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
4689         * graphite-poly.h (struct poly_bb:map_sepclass): New field
4690         * graphite-poly.c (new_poly_bb): Initialization for new field.
4691         (apply_poly_transforms): Support for unroll and jam flag.
4692         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
4693         separation class.
4694         (generate_luj_sepclass_opt): Build the separation class option.
4695         (generate_luj_options): Set unroll and jam options.
4696         (set_options): Support for unroll and jam options.
4697         (scop_to_isl_ast): Likewise
4698         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
4699         computing the separating class map.
4700         (optimize_isl): Support for the separating class map.
4701         (apply_schedule_map_to_scop): Likewise.
4702         (getScheduleMap): Likewise.
4703         (getScheduleForBand): Likewise.
4704         (getScheduleForBandList): Likewise.
4705         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
4706         * toplev.c (process_options) Likewise.
4707
4708 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
4709
4710         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
4711         from...
4712         (replace_loop_annotate): ...here.  Call it on the header and on the
4713         latch block, if any.  Restore proper behavior of final cleanup.
4714
4715 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
4716
4717         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
4718         for max-completely-peeled-insns limit.
4719
4720 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
4721
4722         * ipa-prop.h (ipa_known_type_data): Remove.
4723         (ipa_binfo_from_known_type_jfunc): Remove.
4724
4725 2014-11-14  Andrew Pinski  <apinski@cavium.com>
4726
4727         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
4728         over to thunderx.
4729         * config/aarch64/aarch64.md: Include thunderx.md.
4730         (generic_sched): Set to no for thunderx.
4731         * config/aarch64/thunderx.md: New file.
4732
4733 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4734
4735         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
4736         tests for 0.0.
4737
4738         * config/rs6000/vector.md (VEC_R): Move secondary reload support
4739         insns to rs6000.md from vector.md.
4740         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
4741         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
4742         (vec_reload_and_plus_<mptrsize>): Likewise.
4743
4744         * config/rs6000/rs6000.md (Fa): New mode attribute to give
4745         constraint for the Altivec registers for a type.
4746         (RELOAD): New mode iterator for all of the types that have
4747         secondary reload address support to load up a base register.
4748         (extendsfdf2_fpr): Use correct constraint.
4749         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
4750         instruction.
4751         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
4752         Generate the non-VSX instruction if all registers were FPRs.  Do
4753         not use the patterns in vsx.md for scalar operations.
4754         (floatsi<mode>2_lfiwax_mem): Likewise.
4755         (floatunssi<mode>2_lfiwzx): Likewise.
4756         (floatunssi<mode>2_lfiwzx_mem): Likewise.
4757         (fix_trunc<mode>di2_fctidz): Likewise.
4758         (fixuns_trunc<mode>di2_fctiduz): Likewise.
4759         (fctiwz_<mode>): Likewise.
4760         (fctiwuz_<mode>): Likewise.
4761         (friz): Likewise.
4762         (floatdidf2_fpr): Likewise.
4763         (floatdidf2_mem): Likewise.
4764         (floatunsdidf2): Likewise.
4765         (floatunsdidf2_fcfidu): Likewise.
4766         (floatunsdidf2_mem): Likewise.
4767         (floatdisf2_fcfids): Likewise.
4768         (floatdisf2_mem): Likewise.
4769         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
4770         it more obvious that the code is for pre-ISA 2.06 machines.
4771         (floatdisf2_internal2): Likewise.
4772         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
4773         Generate the non-VSX instruction if all registers were FPRs.  Do
4774         not use the patterns in vsx.md for scalar operations.
4775         (floatunsdisf2_mem): Likewise.
4776         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
4777         handlers here from vector.md, and expand the types we generate
4778         reload handlers for.
4779         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
4780         (vec_reload_and_plus_<mptrsize>): Likewise.
4781
4782         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
4783         vector forms of the instructions.  Move VSX scalar forms to
4784         rs6000.md, and add support for -mupper-regs-sf.
4785         (vsx_floatuns<VSi><mode>2): Likewise.
4786         (vsx_fix_trunc<mode><VSi>2): Likewise.
4787         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
4788         (vsx_float_fix_<mode>2): Delete DF version, rename to
4789         vsx_float_fix_v2df2.
4790         (vsx_float_fix_v2df2): Likewise.
4791
4792 2014-11-14  Martin Jambor  <mjambor@suse.cz>
4793
4794         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
4795         (ipa_pass_through_data): Removed field type_preserved.
4796         (ipa_ancestor_jf_data): removed fields type and type_preserved.
4797         (ipa_jump_func): Removed field known_type.
4798         (ipa_get_jf_known_type_offset): Removed.
4799         (ipa_get_jf_known_type_base_type): Likewise.
4800         (ipa_get_jf_known_type_component_type): Likewise.
4801         (ipa_get_jf_ancestor_type): Likewise.
4802         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
4803         (ipa_get_jf_pass_through_result): Likewise.
4804         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
4805         (values_equal_for_ipcp_p): Removed BINFO handling.
4806         (ipa_get_indirect_edge_target_1): Updated comment.
4807         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
4808         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
4809         (ipa_set_jf_known_type): Removed.
4810         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
4811         all callers.
4812         (ipa_set_jf_arith_pass_through): Likewise.
4813         (ipa_set_ancestor_jf): Likewise.
4814         (ipa_binfo_from_known_type_jfunc): Removed.
4815         (prop_type_change_info): Removed fields known_current_type and
4816         multiple_types_encountered.
4817         (extr_type_from_vtbl_ptr_store): Removed.
4818         (check_stmt_for_type_change): Do not attempt to identify changed type.
4819         (detect_type_change_from_memory_writes): Do not set the removed fields,
4820         always set jfunc to unknown.
4821         (compute_complex_assign_jump_func): Do not detect dynamic type change.
4822         (compute_complex_ancestor_jump_func): Likewise.
4823         (compute_known_type_jump_func): Removed.
4824         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
4825         change.  Do not comute known type jump functions.
4826         (combine_known_type_and_ancestor_jfs): Removed.
4827         (update_jump_functions_after_inlining): Removed handling of
4828         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
4829         (ipa_write_jump_function): Do not stream removed fields or known type
4830         jump functions.
4831         (ipa_read_jump_function): Likewise.
4832
4833 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
4834
4835         * lra-int.h (lra_create_live_ranges): Add parameter.
4836         * lra-lives.c (temp_bitmap): Move higher.
4837         (initiate_live_solver): Move temp_bitmap initialization into
4838         lra_live_ranges_init.
4839         (finish_live_solver): Move temp_bitmap clearing into
4840         live_ranges_finish.
4841         (process_bb_lives): Add parameter.  Use it to control live info
4842         update and dead insn elimination.  Pass it to mark_regno_live and
4843         mark_regno_dead.
4844         (lra_create_live_ranges): Add parameter.  Pass it to
4845         process_bb_lives.
4846         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
4847         initiate_live_solver and finish_live_solver.
4848         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
4849         Use temp_bitmap to update avail_cands.
4850         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
4851         check with lra_need_for_spill_p after live range pass.  Switch on
4852         rematerialization pass.
4853
4854 2014-11-14  Martin Jambor  <mjambor@suse.cz>
4855
4856         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
4857         agg_preserved flag instead.
4858         (ipa_get_jf_ancestor_type_preserved): Likewise.
4859         (ipa_node_params): Rename known_vals to known_csts, update all users.
4860         New field known_contexts.
4861         (ipa_get_indirect_edge_target): Update prototype.
4862         (ipcp_poly_ctx_values_pool): Declare.
4863         (ipa_context_from_jfunc): Likewise.
4864         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
4865         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
4866         parameter newline of method dump.
4867         * ipa-cp.c (ctxlat): New field.
4868         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
4869         (ipcp_poly_ctx_values_pool):New variable.
4870         (ipa_get_poly_ctx_lat): New function.
4871         (print_ipcp_constant_value): New overloaded function for contexts.
4872         (print_all_lattices): Also print contexts.
4873         (ipa_topo_info): New field contexts;
4874         (set_all_contains_variable): Also set the flag in the context lattice.
4875         (initialize_node_lattices): Likewise for flag bottom.
4876         (ipa_get_jf_ancestor_result): Removed BINFO handling.
4877         (ipa_value_from_jfunc): Likewise.
4878         (ipa_context_from_jfunc): New function.
4879         (values_equal_for_ipcp_p): New overloaded function for contexts.
4880         (allocate_and_init_ipcp_value): Construct the value.
4881         (allocate_and_init_ipcp_value): New overloaded function for contexts.
4882         (propagate_scalar_accross_jump_function): Removed handling of
4883         KNOWN_TYPE jump functions.
4884         (propagate_context_accross_jump_function): New function.
4885         (propagate_constants_accross_call): Also propagate contexts.
4886         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
4887         (ipa_get_indirect_edge_target): Likewise.
4888         (devirtualization_time_bonus): Likewise.
4889         (gather_context_independent_values): Create and populate known_contexts
4890         vector rather than known_binfos.
4891         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
4892         (estimate_local_effects): Likewise.
4893         (add_all_node_vals_to_toposort): Also add contexts to teir topological
4894         sort.
4895         (ipcp_propagate_stage): Also propagate effects of contexts.
4896         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
4897         ipa_get_indirect_edge_target_1.
4898         (cgraph_edge_brings_value_p): New overloaded function for contexts.
4899         (create_specialized_node): Work on contexts rather than BINFOs.
4900         (find_more_contexts_for_caller_subset): New function.
4901         (known_contexts_useful_p): New function.
4902         (copy_useful_known_contexts): Likewise.
4903         (modify_known_vectors_with_val): Likewise.
4904         (ipcp_val_in_agg_replacements_p): Renamed to
4905         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
4906         non-aggregate.
4907         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
4908         (decide_about_value): Work on contexts rather than BINFOs.
4909         (decide_whether_version_node): Likewise.
4910         (ipcp_driver): Initialize the new alloc pool.
4911         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
4912         printing of edge contexts.
4913         (ipa_set_ancestor_jf): Replace assert with conditional setting of
4914         type_preserved to false.
4915         (update_jump_functions_after_inlining): Use access function instead of
4916         reading agg_preserved directly.  Store combined context in the ancestor
4917         case.
4918         (try_make_edge_direct_virtual_call): Work on contexts rather than
4919         BINFOs.
4920         (update_indirect_edges_after_inlining): Get context from
4921         ipa_context_from_jfunc.
4922         (ipa_free_node_params_substructures): Free also known_contexts.
4923         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
4924         (ipa_free_all_structures_after_iinln): Likewise.
4925         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
4926         contexts rather than BINFOs.
4927         (estimate_edge_devirt_benefit): Likewise.
4928         (estimate_edge_size_and_time): Likewise.
4929         (estimate_calls_size_and_time): Likewise.
4930         (estimate_node_size_and_time): Likewise.
4931         (estimate_ipcp_clone_size_and_time): Likewise.
4932         (do_estimate_edge_time): Likewise.
4933         (do_estimate_edge_size): Likewise.
4934         (do_estimate_edge_hints): Likewise.
4935         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
4936         parameter newline, ouput newline only when it is set.
4937         (ipa_polymorphic_call_context::equal_to): New method.
4938
4939 2014-11-14  Martin Jambor  <mjambor@suse.cz>
4940
4941         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
4942         users converted to the same specialization as the using class/function
4943         or specialization on tree.
4944         (ipcp_value): Likewise.
4945         (ipcp_lattice): Likewise.
4946         (ipcp_agg_lattice): Now derived from tree specialization of
4947         ipcp_lattice.
4948         (values_topo): Moved to new class value_topo_info.
4949         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
4950         Updated all callers.
4951         (print_lattice): Turned into ipcp_lattice::print.  Updated all
4952         callers.
4953         (value_topo_info): New class template.
4954         (ipa_topo_info): New field constants.  New constructor.
4955         (build_toporder_info): Do not clear stack_top, only checkign assert
4956         it.
4957         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
4958         Updated all callers.
4959         (set_lattice_contains_variable): Turned into
4960         ipcp_lattice::set_contains_variable.  Updated all callers.
4961         (add_value_source): Turned into ipcp_value::add_source.  Updated all
4962         callers.
4963         (allocate_and_init_ipcp_value): New function.
4964         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
4965         parameter got default a value.  Updated all callers.
4966         (add_scalar_value_to_lattice): Removed, users converted to using
4967         ipcp_lattice::add_value with default value of the last parameter.
4968         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
4969         all callers.
4970         (propagate_effects): Made method of value_topo_info.
4971         (cgraph_edge_brings_value_p): Now a template function.
4972         (get_info_about_necessary_edges): Likewise.
4973         (gather_edges_for_value): Likewise.
4974         (perhaps_add_new_callers): Likewise.
4975         (decide_about_value): Likewise.
4976         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
4977
4978 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
4979
4980         * doc/install.texi (--with-diagnostics-color=): Document.
4981
4982         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
4983         IFN_GOMP_SIMD_LANE without lhs as useless.
4984
4985         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
4986         (varying_state): Add true for can_free.
4987         (check_call): For builtin or internal !nonfreeing_call_p set
4988         local->can_free.
4989         (check_stmt): For asm volatile and asm with "memory" set
4990         local->can_free.
4991         (analyze_function): Clear local->can_free initially, continue
4992         calling check_stmt until all flags are computed, dump can_free
4993         flag.
4994         (pure_const_write_summary): Write can_free flag.
4995         (pure_const_read_summary): Read it back.
4996         (propagate_pure_const): Propagate also can_free flag, set
4997         w->nonfreeing_fn if it is false after propagation.
4998         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
4999         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
5000         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
5001         Also return true for IFN_ABNORMAL_DISPATCHER.
5002         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
5003         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
5004         (input_overwrite_node): Read it back.
5005
5006 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
5007             Marek Polacek  <polacek@redhat.com>
5008
5009         * sanopt.c: Include tree-ssa-operands.h.
5010         (struct sanopt_info): Add has_freeing_call_p,
5011         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
5012         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
5013         being_visited_p fields.
5014         (struct sanopt_ctx): Add asan_check_map field.
5015         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
5016         maybe_optimize_asan_check_ifn): New functions.
5017         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
5018         internal calls.
5019         (pass_sanopt::execute): Call sanopt_optimize even for
5020         -fsanitize=address.
5021         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
5022         internal calls.
5023
5024 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
5025
5026         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
5027         'if (extract_scalar_result)' to the only place that it is true.
5028
5029 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
5030
5031         * config.gcc (default_gnu_indirect_function): Set to yes
5032         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
5033         Android nor uclibc.
5034
5035 2014-11-14  Felix Yang  <felix.yang@huawei.com>
5036             Jiji Jiang  <jiangjiji@huawei.com>
5037
5038         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
5039         VALL mode iterator instead of VALLDI.
5040
5041
5042 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
5043
5044         * optc-save-gen.awk: Output cl_target_option_eq,
5045         cl_target_option_hash, cl_target_option_stream_out,
5046         cl_target_option_stream_in functions.
5047         * opth-gen.awk: Output prototypes for
5048         cl_target_option_eq and cl_target_option_hash.
5049         * lto-streamer.h (cl_target_option_stream_out,
5050         cl_target_option_stream_in): Declare.
5051         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
5052         (cl_option_hash_eq): Use cl_target_option_eq.
5053         * tree-streamer-in.c (unpack_value_fields): Stream in
5054         TREE_TARGET_OPTION.
5055         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
5056         DECL_FUNCTION_SPECIFIC_TARGET.
5057         (hash_tree): Hash TREE_TARGET_OPTION; visit
5058         DECL_FUNCTION_SPECIFIC_TARGET.
5059         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
5060         TS_TARGET_OPTION.
5061         (streamer_write_tree_body): Output TS_TARGET_OPTION.
5062
5063 2014-11-14  Richard Biener  <rguenther@suse.de>
5064
5065         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
5066         valueization hook defaulted to no_follow_ssa_edges.
5067         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
5068         2nd valueization hook to gimple_simplify.
5069         * tree-ssa-ccp.c (valueize_op_1): New function to be
5070         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
5071         (ccp_fold): Adjust.
5072         * tree-vrp.c (vrp_valueize_1): New function to be
5073         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
5074         (vrp_visit_assignment_or_call): Adjust.
5075
5076 2014-11-14  Marek Polacek  <polacek@redhat.com>
5077
5078         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
5079         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
5080         folding with TYPE_OVERFLOW_SANITIZED.
5081
5082 2014-11-14  Marek Polacek  <polacek@redhat.com>
5083
5084         PR sanitizer/63839
5085         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
5086         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
5087         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
5088         Define.
5089         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
5090         instrument BUILT_IN_UNREACHABLE here.
5091         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
5092         const.
5093         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
5094         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
5095         SANITIZE_UNREACHABLE.
5096         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
5097         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
5098
5099 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
5100
5101         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
5102         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
5103
5104 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
5105
5106         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
5107         BYTES_BIG_ENDIAN.
5108         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
5109         vect_create_epilog_for_reduction): Likewise.
5110         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
5111
5112 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5113
5114         PR target/63724
5115         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
5116         numerical immediate handling to...
5117         (aarch64_internal_mov_immediate): ...this. New.
5118         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
5119         (aarch64_mov_operand_p): Relax predicate.
5120         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
5121         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
5122         for 'n'.
5123         (*movdi_aarch64): Likewise.
5124
5125 2014-11-14  Richard Biener  <rguenther@suse.de>
5126
5127         * match.pd: Implement more binary patterns exercised by
5128         fold_stmt.
5129         * fold-const.c (sing_bit_p): Export.
5130         (exact_inverse): Likewise.
5131         (fold_binary_loc): Remove patterns here.
5132         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
5133         * fold-const.h (sing_bit_p): Declare.
5134         (exact_inverse): Likewise.
5135
5136 2014-11-14  Marek Polacek  <polacek@redhat.com>
5137
5138         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
5139
5140 2014-11-14  Richard Biener  <rguenther@suse.de>
5141
5142         * genmatch.c (add_operator): Allow CONSTRUCTOR.
5143         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
5144         (parser::parse_op): Allow to iterate over predicates.
5145
5146 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
5147
5148         * configure.ac (--with-diagnostics-color): New configure
5149         option, default to --with-diagnostics-color=auto.
5150         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
5151         to determine -fdiagnostics-color= option default.
5152         * doc/invoke.texi (-fdiagnostics-color=): Document new
5153         default.
5154         * configure: Regenerated.
5155         * config.in: Regenerated.
5156
5157 2014-11-13  Teresa Johnson  <tejohnson@google.com>
5158
5159         PR tree-optimization/63841
5160         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
5161
5162 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
5163
5164         * timevar.def (TV_SCHED_FUSION): New time var.
5165         * passes.def (pass_sched_fusion): New pass.
5166         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
5167         (extract_base_offset_in_addr, fusion_load_store): New.
5168         (arm_sched_fusion_priority): New.
5169         (arm_option_override): Disable scheduling fusion by default
5170         on non-armv7 processors or ldrd/strd isn't preferred.
5171         * sched-int.h (struct _haifa_insn_data): New field.
5172         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
5173         * sched-rgn.c (rest_of_handle_sched_fusion): New.
5174         (pass_data_sched_fusion, pass_sched_fusion): New.
5175         (make_pass_sched_fusion): New.
5176         * haifa-sched.c (sched_fusion): New.
5177         (insn_cost): Handle sched_fusion.
5178         (priority): Handle sched_fusion by calling target hook.
5179         (enum rfs_decision): New enum value.
5180         (rfs_str): New element for RFS_FUSION.
5181         (rank_for_schedule): Support sched_fusion.
5182         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
5183         (schedule_block, fix_tick_ready): Handle sched_fusion.
5184         * common.opt (flag_schedule_fusion): New.
5185         * tree-pass.h (make_pass_sched_fusion): New.
5186         * target.def (fusion_priority): New.
5187         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
5188         * doc/tm.texi: Regenerated.
5189         * doc/invoke.texi (-fschedule-fusion): New.
5190
5191 2014-11-13  Rong Xu  <xur@google.com>
5192
5193         PR debug/63581
5194         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
5195         footer, instead of unconditionally overwritten.
5196
5197 2014-11-14  Martin Jambor  <mjambor@suse.cz>
5198
5199         * cgraph.h (clear_outer_type): Make public.  Fix comment.
5200         * ipa-devirt.c (possible_polymorphic_call_targets): Use
5201         clear_outer_type when resetting the context.
5202
5203 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
5204
5205         PR bootstrap/63853
5206         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
5207         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
5208
5209 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
5210
5211         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
5212         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
5213         * tree-inline.c (estimate_operator_cost): Likewise.
5214         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
5215         Likewise.
5216
5217         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
5218         against VEC_RSHIFT_EXPR.
5219
5220         * optabs.h (expand_vec_shift_expr): Remove.
5221         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
5222         (expand_vec_shift_expr): Remove.
5223         * tree.def (VEC_RSHIFT_EXPR): Remove
5224
5225 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
5226
5227         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
5228         (shift_amt_for_vec_perm_mask): New.
5229         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
5230         and mask appropriate.
5231
5232         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
5233         (have_whole_vector_shift): New.
5234         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
5235         looking for vec_shr_optab.
5236         (vect_create_epilog_for_reduction): Likewise; also rename local variable
5237         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
5238         instead of VEC_RSHIFT_EXPRs.
5239
5240         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
5241
5242 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
5243
5244         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
5245         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
5246
5247         tree_vec_data_refs.c (vect_permute_load_chain, vec_permute_store_chain,
5248         vec_shift_permute_load_chain): Replace vect_gen_perm_mask & assert
5249         with vect_gen_perm_mask_checked.
5250
5251         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
5252         Likewise.
5253
5254         (vect_gen_perm_mask_checked): New.
5255         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
5256         (vect_gen_perm_mask_any): ...this.
5257
5258         (perm_mask_for_reverse): Call can_vec_perm_p and
5259         vect_gen_perm_mask_checked.
5260
5261 2014-11-13  Felix Yang  <felix.yang@huawei.com>
5262
5263         * ipa-utils.h: Fix typo in comments.
5264         * ipa-profile.c: Likewise.
5265         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
5266
5267 2014-11-13  Teresa Johnson  <tejohnson@google.com>
5268
5269         PR tree-optimization/63841
5270         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
5271
5272 2014-11-13  Teresa Johnson  <tejohnson@google.com>
5273
5274         PR tree-optimization/63841
5275         * tree.c (initializer_zerop): A clobber does not zero initialize.
5276
5277 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5278
5279         * optabs.c (prepare_operand): Gracefully fail if the mode of X
5280         does not match the operand mode expected by the insn pattern.
5281
5282 2014-11-13  Richard Biener  <rguenther@suse.de>
5283
5284         * match.pd: Add tcc_comparison, inverted_tcc_comparison
5285         and inverted_tcc_comparison_with_nans operator lists.
5286         Use tcc_comparison in the truth_valued_p predicate definition.
5287         Restrict logical_inverted_value with bit_xor to integral types.
5288         Build a boolean true for simplifying x |^ !x because of
5289         vector types.  Implement patterns from forward_propagate_comparison
5290         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
5291         (get_prop_dest_stmt): Likewise.
5292         (pass_forwprop::execute): Do not call it.
5293         * fold-const.c (fold_unary_loc): Remove the pattern here.
5294
5295 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
5296             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5297
5298         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
5299         tmake_file.
5300         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
5301         accelerator compiler.
5302         * config/i386/intelmic-mkoffload.c: New file.
5303         * config/i386/t-intelmic: Ditto.
5304
5305 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
5306             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5307             Ilya Verbin  <ilya.verbin@intel.com>
5308
5309         * common.opt (foffload, foffload-abi): New options.
5310         * config/i386/i386.c (ix86_offload_options): New static function.
5311         (TARGET_OFFLOAD_OPTIONS): Define.
5312         * coretypes.h (enum offload_abi): New enum.
5313         * doc/tm.texi: Regenerate.
5314         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
5315         * gcc.c (offload_targets): New static variable.
5316         (handle_foffload_option): New static function.
5317         (driver_handle_option): Handle OPT_foffload_.
5318         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
5319         according to offload_targets.
5320         * hooks.c (hook_charptr_void_null): New hook.
5321         * hooks.h (hook_charptr_void_null): Declare.
5322         * lto-opts.c: Include lto-section-names.h.
5323         (lto_write_options): Append options from target offload_options hook and
5324         store them to offload_lto section.  Do not store target-specific,
5325         driver and diagnostic options in offload_lto section.
5326         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
5327         OPT_foffload_abi_.
5328         (append_compiler_options, append_linker_options)
5329         (append_offload_options): New static functions.
5330         (compile_offload_image): Add new arguments with options.
5331         Call append_compiler_options and append_offload_options.
5332         (compile_images_for_offload_targets): Add new arguments with options.
5333         (find_and_merge_options): New static function.
5334         (run_gcc): Outline options handling into the new functions:
5335         find_and_merge_options, append_compiler_options, append_linker_options.
5336         * opts.c (common_handle_option): Don't handle OPT_foffload_.
5337         Forbid OPT_foffload_abi_ for non-offload compiler.
5338         * target.def (offload_options): New target hook.
5339
5340 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
5341             Bernd Schmidt  <bernds@codesourcery.com>
5342             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5343             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5344
5345         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
5346         (process_command): Tweak path construction for the possibility
5347         of being configured as an offload compiler.
5348         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
5349         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
5350         (driver::set_up_specs): Tweak path construction for the possibility of
5351         being configured as an offload compiler.
5352         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
5353         (offload_names, offloadbegin, offloadend): New static variables.
5354         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
5355         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
5356         New static functions.
5357         (run_gcc): Determine whether offload sections are present.  If so, run
5358         compile_images_for_offload_targets and return the names of new generated
5359         objects to linker.  If there are offload sections, but no LTO sections,
5360         then return the copies of input objects without link-time recompilation.
5361
5362 2014-11-13  Richard Biener  <rguenther@suse.de>
5363
5364         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
5365
5366 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
5367             Bernd Schmidt  <bernds@codesourcery.com>
5368             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5369             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5370
5371         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
5372         * cgraphunit.c: Include omp-low.h.
5373         * doc/tm.texi: Regenerate.
5374         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
5375         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
5376         * lto-cgraph.c (output_offload_tables): New function.
5377         (input_offload_tables): Likewise.
5378         * lto-section-in.c (lto_section_name): Add "offload_table".
5379         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
5380         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
5381         * lto-streamer-out.c (lto_output): Call output_offload_tables.
5382         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
5383         (output_offload_tables, input_offload_tables): Declare.
5384         * omp-low.c: Include common/common-target.h and lto-section-names.h.
5385         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
5386         (expand_omp_target): Add child_fn into offload_funcs vector.
5387         (add_decls_addresses_to_decl_constructor): New function.
5388         (omp_finish_file): Likewise.
5389         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
5390         * target.def (record_offload_symbol): New DEFHOOK.
5391         * toplev.c: Include omp-low.h.
5392         (compile_file): Call omp_finish_file.
5393         * varpool.c: Include omp-low.h.
5394         (varpool_node::get_create): Add decl into offload_vars vector.
5395
5396 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
5397             Ilya Tocar  <ilya.tocar@intel.com>
5398             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5399             Bernd Schmidt  <bernds@codesourcery.com>
5400
5401         * cgraph.c: Include context.h.
5402         (cgraph_node::create): Set node->offloadable and g->have_offload if
5403         decl have "omp declare target" attribute.
5404         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
5405         * cgraphunit.c: Include lto-section-names.h.
5406         (ipa_passes): Call ipa_write_summaries if there is something to write to
5407         OFFLOAD_SECTION_NAME_PREFIX sections.
5408         (symbol_table::compile): Set flag_generate_lto if there is something to
5409         offload.
5410         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
5411         * context.c (gcc::context::context): Initialize have_offload with false.
5412         * context.h (class context): Add have_offload flag.
5413         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
5414         flag_generate_lto.
5415         (inline_free_summary): Always remove hooks.
5416         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
5417         from non-offloadable nodes while streaming a node into offload section.
5418         (reachable_from_other_partition_p): Likewise.
5419         (select_what_to_stream): New function.
5420         (compute_ltrans_boundary): Do not call
5421         lto_set_symtab_encoder_in_partition if the node should not be streamed.
5422         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
5423         (section_name_prefix): Declare.
5424         * lto-streamer.c (section_name_prefix): New variable.
5425         (lto_get_section_name): Use section_name_prefix instead of
5426         LTO_SECTION_NAME_PREFIX.
5427         * lto-streamer.h (select_what_to_stream): Declare.
5428         * omp-low.c: Include context.h.
5429         (is_targetreg_ctx): New function.
5430         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
5431         (create_omp_child_function, check_omp_nesting_restrictions): Use new
5432         is_targetreg_ctx function.  Replace usage of "omp declare target"
5433         attribute with a cgraph_node flag offloadable.
5434         (expand_omp_target): Set mark_force_output for offloadable functions.
5435         (lower_omp_critical): Set offloadable flag for omp critical symbol.
5436         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
5437         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
5438         if the node should not be streamed out.
5439         * tree-pass.h (ipa_write_summaries): New bool argument.
5440         * varpool.c: Include context.h.
5441         (varpool_node::get_create): Set node->offloadable and g->have_offload if
5442         decl have "omp declare target" attribute.
5443
5444 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
5445             Thomas Schwinge  <thomas@codesourcery.com>
5446             Ilya Verbin  <ilya.verbin@intel.com>
5447             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5448
5449         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
5450         (enable_as_accelerator): New variables substituted by configure.
5451         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
5452         being configured as an offload compiler.
5453         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
5454         ACCEL_DIR_SUFFIX.
5455         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
5456         install for the offload compiler.
5457         * config.in: Regenerate.
5458         * configure: Regenerate.
5459         * configure.ac (real_target_noncanonical, accel_dir_suffix)
5460         (enable_as_accelerator): Compute new variables.
5461         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
5462         (OFFLOAD_TARGETS): List of target names suitable for offloading.
5463         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
5464         * doc/install.texi (Options specification): Document
5465         --enable-as-accelerator-for and --enable-offload-targets.
5466
5467 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
5468
5469         PR tree-optimization/63828
5470         * ipa-polymorphic-call.c (possible_placement_new): Check
5471         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
5472
5473 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5474
5475         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
5476         (REVERSIBLE_CC_MODE): Fix example.
5477         (REVERSE_CONDITION): Fix typo.
5478         * doc/tm.texi: Regenerate.
5479
5480 2014-11-13  Tom de Vries  <tom@codesourcery.com>
5481
5482         * omp-low.c (pass_data_expand_omp): Set properties_provided to
5483         PROP_gimple_eomp.
5484         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
5485         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
5486         exit if gate is false.
5487         (pass_data pass_data_expand_omp_ssa): New pass_data.
5488         (class pass_expand_omp_ssa): New pass.
5489         (make_pass_expand_omp_ssa): New function.
5490         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
5491         instead of NEXT_PASS.
5492         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
5493         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
5494         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
5495         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
5496         cfun->omp_expand_needed.
5497         * tree-pass.h: Add define PROP_gimple_eomp.
5498         (make_pass_expand_omp_ssa): Declare.
5499
5500 2014-11-13  Marek Polacek  <polacek@redhat.com>
5501
5502         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
5503         * fold-const.c (fold_binary_loc): Use it.
5504         * match.pd: Likewise.
5505
5506 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
5507
5508         * lra-lives.c (struct bb_data): Rename to ...
5509         (struct bb_data_pseudos): ... this.
5510         (initiate_live_solver): Update struct name.
5511
5512 2014-11-13  Richard Biener  <rguenther@suse.de>
5513
5514         * match.pd: Implement conditional expression patterns.
5515         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
5516         them here.
5517         (combine_cond_exprs): Remove.
5518         (pass_forwprop::execute): Do not call combine_cond_exprs.
5519         * fold-const.c (fold_ternary_loc): Remove patterns here.
5520         (pedantic_omit_one_operand_loc): Remove.
5521
5522 2014-12-13  Richard Biener  <rguenther@suse.de>
5523
5524         PR middle-end/61559
5525         * match.pd: Implement bswap patterns for transforms checked by
5526         gcc.dg/builtin-bswap-8.c.
5527
5528 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
5529
5530         * lra.c (lra): Switch off rematerialization pass.
5531
5532 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
5533
5534         * common.opt (flra-remat): New.
5535         * opts.c (default_options_table): Add entry for flra_remat.
5536         * timevar_def (TV_LRA_REMAT): New.
5537         * doc/invoke.texi (-flra-remat): Add description of the new
5538         option.
5539         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
5540         lra-saves.c.  Add lra-remat.c.
5541         * Makefile.in (OBJS): Add lra-remat.o.
5542         * lra-remat.c: New file.
5543         * lra.c: Add info about the rematerialization pass in the top
5544         comment.
5545         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
5546         Process unallocatable regs too.
5547         (lra_constraint_new_insn_uid_start): Remove.
5548         (lra): Add code for calling rematerialization sub-pass.
5549         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
5550         (lra_constrain_insn, lra_remat): New prototypes.
5551         (lra_eliminate_regs_1): Add parameter.
5552         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
5553         Process unallocatable hard regs too.
5554         (process_bb_lives): Ditto.
5555         * lra-spills.c (remove_pseudos): Add argument to
5556         lra_eliminate_regs_1 call.
5557         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
5558         for sp offset calculation.
5559         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
5560         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
5561         calculation.
5562         (process_insn_for_elimination): Add argument for
5563         eliminate_regs_in_insn call.
5564         * lra-constraints.c (get_equiv_with_elimination):  Add argument
5565         for lra_eliminate_regs_1 call.
5566         (process_addr_reg): Add parameter.  Use it.
5567         (process_address_1): Ditto.  Add argument for process_addr_reg
5568         call.
5569         (process_address): Ditto.
5570         (curr_insn_transform): Add parameter.  Use it.  Add argument for
5571         process_address calls.
5572         (lra_constrain_insn): New function.
5573         (lra_constraints): Add argument for curr_insn_transform call.
5574
5575 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5576
5577         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
5578         (print_ignored_options): Fix quoting.
5579         * opts.c (common_handle_option): Likewise.
5580         (set_debug_level): Likewise.
5581         * toplev.c (process_options): Likewise.
5582
5583 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
5584
5585         PR ipa/63838
5586         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
5587         chain instead of node->indirect_calls.  Put !can_throw into
5588         conditions of all the loops.
5589
5590 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
5591
5592         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
5593         set pic_offset_table_rtx.
5594
5595 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
5596
5597         * common/config/mips/mips-common.c (mips_handle_option): Ensure
5598         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
5599         * config.gcc (--with-fp-32): New option.
5600         (--with-odd-spreg-32): Likewise.
5601         * config.in (HAVE_AS_DOT_MODULE): New config define.
5602         * config/mips/mips-protos.h
5603         (mips_secondary_memory_needed): New prototype.
5604         (mips_hard_regno_caller_save_mode): Likewise.
5605         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
5606         (mips_get_arg_info): Assert that V2SFmode is only handled specially
5607         with TARGET_PAIRED_SINGLE_FLOAT.
5608         (mips_return_mode_in_fpr_p): Likewise.
5609         (mips16_call_stub_mode_suffix): Likewise.
5610         (mips_get_reg_raw_mode): New static function.
5611         (mips_return_fpr_pair): O32 return values span two registers.
5612         (mips16_build_call_stub): Likewise.
5613         (mips_function_value_regno_p): Support both FP return registers.
5614         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
5615         specific cases for TARGET_FPXX to move via memory.
5616         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
5617         than UNITS_PER_FPREG 'span' one register.
5618         (mips_dwarf_frame_reg_mode): New static function.
5619         (mips_file_start): Switch to using .module instead of .gnu_attribute.
5620         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
5621         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
5622         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
5623         slots with two CFI directives even for O32 FP64.
5624         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
5625         saving/restoring callee-saved registers.
5626         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
5627         (mips_secondary_memory_needed): New function.
5628         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
5629         odd-numbered single-precision registers when using TARGET_FLOATXX.
5630         Implement -modd-spreg and defaults.
5631         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
5632         callee-saved behaviour.
5633         (mips_hard_regno_caller_save_mode): Implement.
5634         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
5635         (TARGET_GET_RAW_ARG_MODE): Define target hook.
5636         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
5637         * config/mips/mips.h (TARGET_FLOAT32): New macro.
5638         (TARGET_O32_FP64A_ABI): Likewise.
5639         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
5640         _MIPS_SPFPSET builtin define.
5641         (MIPS_FPXX_OPTION_SPEC): New macro.
5642         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
5643         --with-odd-spreg-32=* to -m[no-]odd-spreg.
5644         (ISA_HAS_ODD_SPREG): New macro.
5645         (ISA_HAS_MXHC1): True for anything other than -mfp32.
5646         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
5647         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
5648         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
5649         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
5650         (SECONDARY_MEMORY_NEEDED): Likewise.
5651         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
5652         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
5653         FP64A ABI extensions.
5654         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
5655         TARGET_FLOAT64.
5656         * config/mips/mips.opt (mfpxx): New target option.
5657         (modd-spreg): Likewise.
5658         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
5659         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
5660         fp64 sysroot.
5661         * config/mips/t-mti-elf: Remove fp64 multilib.
5662         * config/mips/t-mti-linux: Likewise.
5663         * configure.ac: Detect .module support.
5664         * configure: Regenerate.
5665         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
5666         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
5667         options.
5668
5669 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
5670
5671         PR target/63815
5672         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
5673         from ...
5674         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
5675         (x86_output_mi_thunk): Set PIC register to %r11.  Call
5676         ix86_init_large_pic_reg to initialize PIC register.
5677
5678 2014-11-12  Kai Tietz  <ktietz@redhat.com>
5679
5680         * sdbout.c (sdbout_symbol): Eliminate register only
5681         if decl isn't a global variable.
5682
5683 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
5684
5685         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
5686
5687         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
5688         qualifier_lane_index.
5689         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
5690         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
5691         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
5692
5693         (aarch64_types_getlane_qualifiers): Rename to...
5694         (aarch64_types_binop_imm_qualifiers): ...this.
5695         (TYPES_SHIFTIMM): Follow renaming.
5696         (TYPES_GETLANE): Rename to...
5697         (TYPE_GETREG): ...this.
5698
5699         (aarch64_types_setlane_qualifiers): Rename to...
5700         (aarch64_type_ternop_imm_qualifiers): ...this.
5701         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
5702         (TYPES_SETLANE): Follow renaming above, and rename self to...
5703         (TYPE_SETREG): ...this.
5704
5705         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
5706         (aarch64_simd_expand_args): Add range check and endianness-flip.
5707
5708         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
5709
5710         * config/aarch64/aarch64-simd.md
5711         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
5712         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
5713         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
5714
5715         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
5716         (aarch64_sq<r>dmulh_lane<mode>): ...this.
5717
5718         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
5719         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
5720
5721         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
5722         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
5723
5724         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
5725         (aarch64_sqdmull_lane<mode>): ...this.
5726
5727         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
5728         (aarch64_sqdmull_laneq<mode>): ...this.
5729
5730         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
5731         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
5732         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
5733         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
5734
5735         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
5736         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
5737         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
5738         bounds check and lane flip.
5739
5740         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
5741         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
5742         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
5743
5744         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
5745         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
5746         renaming of TERNOP_LANE to QUADOP_LANE.
5747
5748         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
5749         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
5750         qualifiers to TERNOP_LANE.
5751
5752 2014-11-12  Tobias Burnus  <burnus@net-b.de>
5753
5754         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
5755         * configure.ac: Ditto.
5756         * graphite-interchange.c: Remove HAVE_CLOOG block.
5757         * config.in: Regenerate.
5758         * configure: Regenerate.
5759
5760 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
5761
5762         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
5763         caller-save.
5764         (EPILOGUE_USES): Guard the check by epilogue_completed.
5765         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
5766         LR.
5767         (aarch64_can_eliminate): Check LR_REGNUM liveness.
5768
5769 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5770
5771         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
5772
5773 2014-11-12  Marek Polacek  <polacek@redhat.com>
5774
5775         * fold-const.c (fold_binary_loc): Don't fold if the result
5776         is undefined.
5777         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
5778         -(-A) -> A): Likewise.
5779
5780 2014-11-12  Richard Biener  <rguenther@suse.de>
5781
5782         Merge from match-and-simplify branch
5783         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
5784
5785         * genmatch.c (user_id): Add new member is_oper_list.
5786         (user_id::user_id): Add new default argument.
5787         (parser::parse_operator_list): New function.
5788         (parser::parse_for): Allow operator-list.
5789         (parser::parse_pattern): Call parser::parse_operator_list.
5790         (parser::parse_operation): Reject operator-list.
5791         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
5792
5793         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
5794
5795         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
5796
5797         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
5798
5799         * genmatch.c (parser::parse_op): Check if predicate is used in
5800         result operand.
5801
5802         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
5803
5804         * genmatch.c (parser::parse_for): Make sure to have a valid
5805         token to report errors at.
5806
5807         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
5808
5809         * genmatch.c (parser): Add new member parsing_match_operand.
5810         (parser::parse_operation): Check for conditional convert in result
5811         operand.
5812         (parser::parse_expr): Check for commutative operator in result operand.
5813         Check for :type in match operand.
5814         (parser::parse_simplify): Set/unset parsing_match_operand.
5815         (parser::parser): Initialize parsing_match_operand.
5816
5817         2014-10-28  Richard Biener  <rguenther@suse.de>
5818
5819         * genmatch.c (parser::parse_for): Properly check for already
5820         defined operators.
5821
5822         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
5823
5824         * genmatch.c (error_cb): Adjust for printing warnings.
5825         (warning_at): New function.
5826         (user_id): Add new member used.
5827         (get_operator): Mark user_id as used.
5828         (parse_for): Warn for unused operators.
5829
5830 2014-11-12  Richard Biener  <rguenther@suse.de>
5831
5832         * match.pd: Implement simple complex operations cancelling.
5833         * fold-const.c (fold_unary_loc): Remove them here.
5834
5835 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
5836
5837         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
5838         Define __NO_MATH_ERRNO__ if -fno-math-errno.
5839         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
5840
5841 2014-11-12  Richard Biener  <rguenther@suse.de>
5842
5843         * genmatch.c (::gen_transform): Add capture_info and
5844         expand_compares arguments.
5845         (struct expr): Add is_generic flag.
5846         (lower_cond): New functions lowering [VEC_]COND_EXPR
5847         conditions to a GENERIC and a GIMPLE variant.
5848         (lower): Call lower_cond.
5849         (cmp_operand): Also compare the is_generic flag.
5850         (capture_info::cinfo): Add cond_expr_cond_p flag.
5851         (capture_info::capture_info): Pass down whether the
5852         expression argument is a COND_EXPR condition.
5853         (capture_info::walk_match): Likewise, mark captures
5854         capturing COND_EXPR conditions with cond_expr_cond_p.
5855         (expr::gen_transform): Pass down whether we need to
5856         expand compares from COND_EXPR conditions.
5857         (capture::gen_transform): Expand compares substituted
5858         from COND_EXPR conditions into non-COND_EXPR conditions.
5859         (dt_operand::gen_gimple_expr): Handle explicitely marked
5860         GENERIC expressions as generic.
5861         (dt_simplify::gen): Pass whether we need to expand
5862         conditions to gen_transform.  Handle capture results
5863         which are from COND_EXPR conditions.
5864         (main): Pass gimple flag down to lower.
5865
5866 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
5867
5868         PR c/59708
5869         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
5870         * builtins.c (fold_builtin_arith_overflow): New function.
5871         (fold_builtin_3): Use it.
5872         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
5873         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
5874         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
5875         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
5876         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
5877         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
5878         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
5879         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
5880         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
5881         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
5882         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
5883         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
5884         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
5885         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
5886         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
5887         * expr.c (write_complex_part): Remove prototype, no longer static.
5888         * expr.h (write_complex_part): New prototype.
5889         * function.c (aggregate_value_p): For internal functions return 0.
5890         * gimple-fold.c (arith_overflowed_p): New functions.
5891         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
5892         * gimple-fold.h (arith_overflowed_p): New prototype.
5893         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
5894         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
5895         functions.
5896         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
5897         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
5898         never used.
5899         * gimplify.c (gimplify_call_expr): Handle gimplification of
5900         internal calls with lhs.
5901         * internal-fn.c (get_range_pos_neg, get_min_precision,
5902         expand_arith_overflow_result_store): New functions.
5903         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
5904         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
5905         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
5906         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
5907         (ubsan_expand_si_overflow_neg_check): Renamed to ...
5908         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
5909         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
5910         0 as first argument expansion.
5911         (ubsan_expand_si_overflow_mul_check): Renamed to ...
5912         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
5913         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
5914         Handle MUL_OVERFLOW expansion.
5915         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
5916         arguments for it.
5917         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
5918         expand_neg_overflow, prepare arguments for it.
5919         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
5920         for it.
5921         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
5922         expand_MUL_OVERFLOW): New functions.
5923         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
5924         internal functions.
5925         * tree-vrp.c (check_for_binary_op_overflow): New function.
5926         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
5927         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
5928         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
5929         internal functions.
5930         * optabs.def (umulv4_optab): New optab.
5931         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
5932         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
5933         * doc/extend.texi (Integer Overflow Builtins): Document
5934         __builtin_*_overflow.
5935
5936 2014-11-12  Richard Biener  <rguenther@suse.de>
5937
5938         * genmatch.c (capture_info::capture_info): Add missing
5939         COND_EXPR handling.
5940         (capture_info::walk_match): Fix COND_EXPR handling.
5941         (capture_info::walk_result): Likewise.
5942
5943 2014-11-12  Richard Biener  <rguenther@suse.de>
5944
5945         PR middle-end/63821
5946         * match.pd: Add missing conversion to the -(T)-X pattern.
5947
5948 2014-11-12  Richard Biener  <rguenther@suse.de>
5949
5950         PR bootstrap/63819
5951         * hash-table.h: Include ggc.h also for generator programs.
5952         * genmatch.c (ggc_internal_cleared_alloc): Properly define
5953         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
5954
5955 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5956
5957         PR tree-optimization/63761
5958         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
5959         rather than taking it as a parameter. Add some comments to explain the
5960         gsi_move_before in case of load and why canonicalization of bswap into
5961         a rotation is only done for 16bit values.
5962         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
5963         refer to the statement just before cur_stmt. Ignore 16bit bswap that
5964         are already in canonical form. Adapt bswap_replace to removal of its
5965         gsi parameter.
5966
5967 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
5968
5969         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
5970         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
5971         (for_each_rtx_in_insn): Delete.
5972         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
5973         * df-core.c: Remove reference to for_each_rtx in comment.
5974
5975 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
5976
5977         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
5978         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
5979         * doc/aarch64-acle-intrinsics.texi: Remove.
5980         * doc/arm-acle-intrinsics.texi: Remove.
5981         * doc/arm-neon-intrinsics.texi: Remove.
5982         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
5983         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
5984         Extension section. Add references to public ACLE specification.
5985
5986 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
5987
5988         * tree-vrp.c (register_edge_assert_for_2): Change return type to
5989         void and adjust accordingly.
5990         (register_edge_assert_for_1): Likewise.
5991         (register_edge_assert_for): Likewise.
5992         (find_conditional_asserts): Likewise.
5993         (find_switch_asserts): Likewise.
5994         (find_assert_locations_1): Likewise.
5995         (find_assert_locations): Likewise.
5996         (insert_range_insertions): Inspect the need_assert_for bitmap.
5997
5998 2014-11-11  Andrew Pinski  <apinski@cavium.com>
5999
6000         Bug target/61997
6001         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
6002         aarch64-builtins.c.
6003         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
6004         at the end of the file.
6005
6006 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
6007             Manuel López-Ibáñez  <manu@gcc.gnu.org>
6008
6009         PR driver/36312
6010         * diagnostic-core.h: Add prototype for fatal_error.
6011         * diagnostic.c (fatal_error): New function fatal_error.
6012         * gcc.c (store_arg): Remove have_o_argbuf_index.
6013         (process_command): Check if input and output files are the same.
6014         * toplev.c (init_asm_output): Check if input and output files are
6015         the same.
6016
6017 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
6018
6019         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
6020
6021 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
6022
6023         PR target/61535
6024         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
6025         smaller than 8 bytes.
6026         (sparc_function_arg_1): Tweak.
6027         (sparc_function_value_1): Tweak.
6028
6029 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
6030
6031         * ChangeLog.jit: New.
6032         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
6033         sphinx is installed, falling back to "texinfo" otherwise.
6034         (FULL_DRIVER_NAME): New variable, adapted from the
6035         install-driver target.  New target, a symlink within the builddir,
6036         linked to "xgcc", for use when running the JIT library from the
6037         builddir.
6038         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
6039         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
6040         out.
6041         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
6042         sphinx is installed, falling back to "texinfo" otherwise.
6043         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
6044         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
6045         * configure: Regenerate.
6046         * doc/install.texi (--enable-host-shared): Specify that this is
6047         required when building libgccjit.
6048         (Tools/packages necessary for modifying GCC): Add Sphinx.
6049         * timevar.def (TV_JIT_REPLAY): New.
6050         (TV_ASSEMBLE): New.
6051         (TV_LINK): New.
6052         (TV_LOAD): New.
6053
6054 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6055
6056         PR target/63610
6057         * configure: Regenerate.
6058
6059 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
6060
6061         * config/aarch64/aarch64-simd.md
6062         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
6063         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
6064         are punning between float vectors and integer vectors.
6065
6066 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
6067
6068         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
6069         open-coded swap with std::swap to swap values.
6070         (alpha_emit_setcc): Ditto.
6071         (alpha_emit_conditional_move): Ditto.
6072         (alpha_split_tmode_pair): Ditto.
6073
6074 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
6075
6076         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
6077         permutations on power of 2 cases.
6078
6079 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6080
6081         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
6082         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
6083
6084 2014-11-11  Richard Biener  <rguenther@suse.de>
6085
6086         * tree-core.h (pedantic_lvalues): Remove.
6087         * fold-const.c (pedantic_lvalues): Likewise.
6088         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
6089
6090 2014-11-11  Martin Liska  <mliska@suse.cz>
6091
6092         PR ipa/63622
6093         PR ipa/63795
6094         * ipa-icf.c (sem_function::merge): Add new target symbol alias
6095         support guard.
6096         (sem_variable::merge): Likewise.
6097         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
6098
6099 2014-11-11  Richard Biener  <rguenther@suse.de>
6100
6101         * match.pd: Implement patterns from associate_plusminus
6102         and factor in differences from the fold-const.c implementation.
6103         * fold-const.c (fold_binary_loc): Remove patterns here.
6104         * tree-ssa-forwprop.c (associate_plusminus): Remove.
6105         (pass_forwprop::execute): Don't call it.
6106         * tree.c (tree_nop_conversion_p): New function, factored
6107         from tree_nop_conversion.
6108         * tree.h (tree_nop_conversion_p): Declare.
6109
6110 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
6111
6112         * system.h: Include algorithm and utility.
6113         * rtl.h: Do not include utility here.
6114         * wide-int.h: Ditto.
6115         * tree-vect-data-refs.c (swap): Remove template.
6116         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
6117
6118 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6119
6120         PR bootstrap/63699
6121         PR bootstrap/63750
6122         * system.h: Include <string> before "safe-ctype.h"
6123         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
6124         calls to min/max with wi namespace.
6125         * ipa-chkp.c: Don't include <string>.
6126
6127 2014-11-11  Terry Guo  <terry.guo@arm.com>
6128
6129         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
6130         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
6131         registers.
6132         (*thumb1_movhf): Likewise.
6133
6134 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
6135
6136         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
6137         instead of INT64_MAX.
6138
6139 2014-11-11  Tobias Burnus  <burnus@net-b.de>
6140
6141         * doc/install.texi (Prerequisites): Remove CLooG.
6142
6143 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
6144
6145         * ipa-inline.c (edge_badness): Adjust.
6146         (inline_small_functions): Likewise.
6147         * predict.c (propagate_freq): Likewise.
6148         (estimate_bb_frequencies): Likewise.
6149         * sreal.c (sreal::dump): Rename from dump_sreal.
6150         (debug): Adjust.
6151         (copy): Remove function.
6152         (sreal::shift_right): Rename from sreal_sift_right.
6153         (sreal::normalize): Rename from normalize.
6154         (sreal_init): Remove function.
6155         (sreal::to_int): Rename from sreal_to_int.
6156         (sreal_compare): Remove function.
6157         (sreal::operator+): Rename from sreal_add.
6158         (sreal::operator-): Rename from sreal_sub.
6159         (sreal::operator*): Rename from sreal_mul.
6160         (sreal::operator/): Rename from sreal_div.
6161         * sreal.h (class sreal): Adjust.
6162         (inline sreal &operator+=): New operator.
6163         (inline sreal &operator-=): Likewise.
6164         (inline sreal &operator/=): Likewise.
6165         (inline sreal &operator*=): Likewise.
6166         (inline bool operator!=): Likewise.
6167         (inline bool operator>): Likewise.
6168         (inline bool operator<=): Likewise.
6169         (inline bool operator>=): Likewise.
6170
6171 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
6172
6173         * sched-deps.c (sched_analyze_1): Check pending list if it is not
6174         less than MAX_PENDING_LIST_LENGTH.
6175         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
6176
6177 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
6178
6179         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
6180         swap with std::swap to swap values.
6181         (ix86_fixup_binary_operands): Ditto.
6182         (ix86_binary_operator_ok): Ditto.
6183         (ix86_prepare_fp_compare_args): Ditto.
6184         (ix86_expand_branch): Ditto.
6185         (ix86_expand_carry_flag_compare): Ditto.
6186         (ix86_expand_int_movcc): Ditto.
6187         (ix86_prepare_sse_fp_compare_args): Ditto.
6188         (ix86_expand_sse_fp_minmax): Ditto.
6189         (ix86_expand_int_vcond): Ditto.
6190         (ix86_split_long_move): Ditto.
6191         (ix86_expand_sse_comi): Ditto.
6192         (ix86_expand_sse_compare_and_jump): Ditto.
6193         (ix86_expand_sse_compare_mask): Ditto.
6194         * config/i386/i386.md (*add<mode>_1): Ditto.
6195         (addsi_1_zext): Ditto.
6196         (*addhi_1): Ditto.
6197         (*addqi_1): Ditto.
6198         (*add<mode>_2): Ditto.
6199         (*addsi_2_zext): Ditto.
6200         (*add<mode>_3): Ditto.
6201         (*addsi_3_zext): Ditto.
6202         (*add<mode>_5): Ditto.
6203         (absneg splitter): Ditto.
6204
6205 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
6206
6207         Revert:
6208         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
6209
6210         PR target/63620
6211         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
6212         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
6213         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
6214         be reloaded through memory.
6215         (*pushxf): Ditto.
6216         (*pushdf): Ditto.
6217
6218 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
6219             Martin Liska  <mliska@suse.cz>
6220
6221         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
6222         (func_checker::compare_gimple_call): Compare gimple_call_fn,
6223         gimple_call_chain, gimple_call_fntype and call flags.
6224
6225 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
6226
6227         PR rtl-optimization/63620
6228         PR rtl-optimization/63799
6229         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
6230         and setting PIC pseudo insns.
6231         (lra_create_live_ranges): Fix the typo.
6232
6233 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
6234
6235         PR middle-end/63748
6236         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
6237         SSA copies whose source and destination names both occur in
6238         abnormal PHIs.
6239
6240 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
6241
6242         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
6243         * common.opt: Remove using of fgraphite-code-generator flag.
6244         * flag-types.h: Likewise.
6245         * graphite.c: Remove using of CLooG.
6246         * graphite-blocking.c: Likewise.
6247         * graphite-dependences.c: Likewise.
6248         * graphite-poly.c: Likewise.
6249         * graphite-poly.h: Likewise.
6250         * graphite-scop-detection.c: Likewise.
6251         * graphite-sese-to-poly.c: Likewise.
6252         * graphite-clast-to-gimple.c: Removed.
6253         * graphite-clast-to-gimple.h: Likewise.
6254         * graphite-htab.h: Likewise.
6255
6256 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
6257
6258         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
6259         Add.
6260
6261 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
6262
6263         * config/frv/frv.c (frv_io_handle_use_1): Delete.
6264         (frv_io_handle_use): Use find_all_hard_regs.
6265
6266 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
6267
6268         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
6269         than an rtx *.  Take the regstate_t directly rather than via a void *.
6270         Return a bool rather than an int.  Iterate over all subrtxes here.
6271         (frv_registers_conflict_p): Update accordingly.
6272
6273 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
6274
6275         * config/frv/frv.c: Include rtl-iter.h.
6276         (frv_acc_group_1): Delete.
6277         (frv_acc_group): Use FOR_EACH_SUBRTX.
6278
6279 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
6280
6281         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
6282         (frv_clear_registers_used): Delete.
6283         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
6284
6285 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
6286
6287         PR bootstrap/63573
6288         * calls.c (initialize_argument_information): When emitting thunk call
6289         use original memory placement of the argument.
6290
6291 2014-11-10  Renlin Li  <renlin.li@arm.com>
6292
6293         PR middle-end/61529
6294         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
6295
6296 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6297
6298         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
6299         bswaphi if available.
6300
6301 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
6302
6303         * config/nvptx/nvptx.c: New file.
6304         * config/nvptx/nvptx.h: New file.
6305         * config/nvptx/nvptx-protos.h: New file.
6306         * config/nvptx/nvptx.md: New file.
6307         * config/nvptx/t-nvptx: New file.
6308         * config/nvptx/nvptx.opt: New file.
6309         * common/config/nvptx/nvptx-common.c: New file.
6310         * config.gcc: Handle nvptx-*-*.
6311
6312 2014-11-10  Richard Biener  <rguenther@suse.de>
6313
6314         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
6315         released operands on the free list.
6316
6317 2014-11-10  Richard Biener  <rguenther@suse.de>
6318
6319         * match.pd: Implement pattern from simplify_mult.
6320         * tree-ssa-forwprop.c (simplify_mult): Remove.
6321         (pass_forwprop::execute): Do not call simplify_mult.
6322
6323 2014-11-10  Richard Biener  <rguenther@suse.de>
6324
6325         PR tree-optimization/63800
6326         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
6327         we can restore the previous availability in after_dom_children.
6328         (eliminate_dom_walker::after_dom_children): Restore
6329         previous availability.
6330
6331 2014-11-10  Richard Biener  <rguenther@suse.de>
6332
6333         PR middle-end/63798
6334         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
6335         properly treat the embedded multiplication as commutative
6336         when looking for feeding negates.
6337
6338 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
6339
6340         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
6341
6342 2014-11-10  Martin Liska  <mliska@suse.cz>
6343
6344         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
6345         for the test because of default char signedness
6346         on powerpc64 target.
6347
6348 2014-11-10  Richard Biener  <rguenther@suse.de>
6349
6350         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
6351         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
6352         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
6353
6354 2014-11-10  Richard Biener  <rguenther@suse.de>
6355
6356         * match.pd: Move rest of the conversion combining patterns
6357         from tree-ssa-forwprop.c.
6358         * tree-ssa-forwprop.c (combine_conversions): Remove.
6359         (pass_forwprop::execute): Do not call it.
6360
6361 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
6362
6363         * gimple-low.c (lower_function_body): Clear the location of the first
6364         inserted representative return if it also fills in for the fallthru.
6365
6366 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
6367
6368         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
6369         that bb is always executed to early exit. Use predicate of
6370         cd-equivalent block for join blocks if it exists.
6371         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
6372         (tree_if_conversion): Free post-dominance information.
6373
6374 2014-11-09  Jason Merrill  <jason@redhat.com>
6375
6376         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
6377         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
6378         (_mm_mask_cvtusepi32_storeu_epi16)
6379         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
6380
6381 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
6382
6383         * config/avr/predicates.md (low_io_address_operand): Fix typo.
6384
6385 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
6386
6387         PR rtl-optimization/63620
6388         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
6389         name.  Move to lra.c.  Make it external.
6390         (substitute_pseudo_within_insn): Ditto.
6391         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
6392         the new names.
6393         (undo_optional_reloads): Ditto.
6394         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
6395         New prototypes.
6396         (lra_substitute_pseudo_within_insn): Ditto.
6397         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
6398         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
6399         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
6400         bb_killed_pseudos.
6401         (struct bb_data, bb_data_t, bb_data): New.
6402         (get_bb_data, get_bb_data_by_index): Ditto.
6403         (all_hard_regs_bitmap): New.
6404         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
6405         (initiate_live_solver, finish_live_solver): New.
6406         (process_bb_lives): Change return type.  Add code updating local
6407         live data and removing dead insns.  Pass new argument to
6408         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
6409         life info.  Return the result.
6410         (lra_create_live_ranges): Add code to do global pseudo live
6411         analysis.
6412         (lra_live_ranges_init): Call initiate_live_solver.
6413         (lra_live_ranges_finish): Call finish_live_solver.
6414         * lra.c (lra_dump_bitmap_with_title): New.
6415         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
6416         from lra-constraints.c.
6417
6418 2014-11-09  Richard Biener  <rguenther@suse.de>
6419
6420         * match.pd: Add patterns convering two conversions in a row
6421         from fold-const.c.
6422         * fold-const.c (fold_unary_loc): Remove them here.
6423         * tree-ssa-forwprop.c (combine_conversions): Likewise.
6424         * genmatch.c (dt_node::gen_kids): Check whether we may
6425         follow SSA use-def chains.
6426
6427 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
6428
6429         * config/aarch64/aarch64.c: Include rtl-iter.h.
6430         (aarch64_tls_operand_p_1): Delete.
6431         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
6432
6433 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
6434
6435         * config/arm/arm.c (arm_note_pic_base): Delete.
6436         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
6437
6438 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
6439
6440         * config/arm/arm.c: Include rtl-iter.h.
6441         (arm_tls_referenced_p_1): Delete.
6442         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
6443
6444 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
6445
6446         * config/arm/aarch-common.c: Include rtl-iter.h.
6447         (search_term, arm_find_sub_rtx_with_search_term): Delete.
6448         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
6449         (arm_get_set_operands): Pass the insn pattern rather than the
6450         insn itself.
6451         (arm_no_early_store_addr_dep): Likewise.
6452
6453 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6454
6455         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
6456         related, if any.
6457         (thumb_set_return_address): Likewise.
6458
6459 2014-11-07  Jeff Law  <law@redhat.com>
6460
6461         PR tree-optimization/61515
6462         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
6463         stack rather than looking at every SSA_NAME's value.
6464
6465 2014-11-07  Richard Biener  <rguenther@suse.de>
6466
6467         PR tree-optimization/63605
6468         * fold-const.c (fold_binary_loc): Properly use element_precision
6469         for types that may not be scalar.
6470
6471 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
6472
6473         PR target/63534
6474         * config/i386/i386.md (builtin_setjmp_receiver): Use
6475         pic_offset_table_rtx for PIC register.
6476         (nonlocal_goto_receiver): Delete.
6477
6478 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
6479
6480         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
6481         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
6482
6483 2014-11-07  Martin Liska  <mliska@suse.cz>
6484
6485         PR ipa/63580
6486         * cgraphunit.c (cgraph_node::create_wrapper):
6487         TREE_ADDRESSABLE is set to false for a newly created thunk.
6488
6489 2014-11-07  Martin Liska  <mliska@suse.cz>
6490
6491         PR ipa/63747
6492         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
6493         Missing checking for CASE_LOW and CASE_HIGH added.
6494
6495 2014-11-07  Martin Liska  <mliska@suse.cz>
6496
6497         PR ipa/63595
6498         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
6499         is correctly handled for thunks created by IPA ICF.
6500
6501 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
6502 2014-11-07  Richard Biener  <rguenther@suse.de>
6503
6504         PR tree-optimization/63676
6505         * gimple-fold.c (fold_gimple_assign): Do not fold node when
6506         TREE_CLOBBER_P be true.
6507
6508 2014-11-07  Richard Biener  <rguenther@suse.de>
6509
6510         PR middle-end/63770
6511         * match.pd: Guard conflicting GENERIC pattern properly.
6512
6513 2014-11-07  Richard Biener  <rguenther@suse.de>
6514
6515         * match.pd: Add patterns for POINTER_PLUS_EXPR association
6516         and special patterns from tree-ssa-forwprop.c
6517         * fold-const.c (fold_binary_loc): Remove them here.
6518         * tree-ssa-forwprop.c (to_purge): New global bitmap.
6519         (fwprop_set_lattice_val): New function.
6520         (fwprop_invalidate_lattice): Likewise.
6521         (remove_prop_source_from_use): Instead of purging dead EH
6522         edges record blocks to do that in to_purge.
6523         (tidy_after_forward_propagate_addr): Likewise.
6524         (forward_propagate_addr_expr): Invalidate the lattice for
6525         SSA names we release.
6526         (simplify_conversion_from_bitmask): Likewise.
6527         (simplify_builtin_call): Likewise.
6528         (associate_pointerplus_align): Remove.
6529         (associate_pointerplus_diff): Likewise.
6530         (associate_pointerplus): Likewise.
6531         (fold_all_stmts): Merge with ...
6532         (pass_forwprop::execute): ... the original loop over all
6533         basic-blocks.  Delay purging dead EH edges and invalidate
6534         the lattice for SSA names we release.
6535
6536 2014-11-07  Terry Guo  <terry.guo@arm.com>
6537
6538         * config/arm/arm.opt (masm-syntax-unified): New option.
6539         * doc/invoke.texi (-masm-syntax-unified): Document new option.
6540         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
6541         (ASM_APP_ON): Redefined.
6542         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
6543         code always use UAL syntax.
6544         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
6545         * config/arm/thumb1.md: Likewise.
6546
6547 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
6548
6549         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
6550         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
6551         or in_call_delay.
6552         
6553 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
6554
6555         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
6556         Set default_mips_arch and default_mips_abi instead of tm_defines.
6557         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
6558         of tm_defines.
6559         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
6560         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
6561         based on MIPS_ABI_DEFAULT.
6562         (STANDARD_STARTFILE_PREFIX_2): Ditto.
6563
6564 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
6565
6566         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
6567         cases of extended identifiers.
6568
6569 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
6570
6571         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
6572
6573 2014-11-06  DJ Delorie  <dj@redhat.com>
6574
6575         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
6576         conditional.
6577         (movhicc_<code>_<mode>): Likewise.
6578         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
6579         subregs.
6580         (m32c_eh_return_data_regno): Change to using memregs to avoid
6581         tying up all the compute regs.
6582         (m32c_legitimate_address_p) Subregs are not valid addresses.
6583
6584 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
6585
6586         * function.c (thread_prologue_and_epilogue_insns): No longer static.
6587         * function.h (thread_prologue_and_epilogue_insns): Declare.
6588
6589         * target.def (assemble_undefined_decl): New hooks.
6590         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
6591         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
6592         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
6593         * doc/tm.texi: Regenerate.
6594         * output.h (assemble_undefined_decl): Declare.
6595         (get_fnname_from_decl): Declare.
6596         * varasm.c (assemble_undefined_decl): New function.
6597         (get_fnname_from_decl): New function.
6598         * final.c (rest_of_handle_final): Use it.
6599         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
6600         for nodes without a definition.
6601
6602         * target.def (call_args, end_call_args): New hooks.
6603         * hooks.c (hook_void_rtx_tree): New empty function.
6604         * hooks.h (hook_void_rtx_tree): Declare.
6605         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
6606         * doc/tm.texi: Regenerate.
6607         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
6608         hooks.
6609         (expand_library_call_value_1): Use the two new hooks.
6610
6611         * expr.c (use_reg_mode): Just return for pseudo registers.
6612
6613         * combine.c (try_combine): Don't allow a call as one of the source
6614         insns.
6615
6616         * target.def (decl_end): New hook.
6617         * varasm.c (assemble_variable_contents, assemble_constant_contents):
6618         Use it.
6619         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
6620         * doc/tm.texi: Regenerate.
6621
6622 2014-11-06  Renlin Li  <renlin.li@arm.com>
6623
6624         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
6625         (processor): New architecture_version field.
6626         (aarch64_override_options): Initialize aarch64_architecture_version.
6627         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
6628         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
6629
6630 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
6631
6632         * params.def (sra-max-scalarization-size-Ospeed): New.
6633         (sra-max-scalarization-size-Osize): Likewise.
6634         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
6635         (sra-max-scalarization-size-Osize): Likewise.
6636         * toplev.c (process_options): Set default values for new
6637         parameters.
6638         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
6639         * targhooks.c (get_move_ratio): Remove static designator.
6640         * target.h (get_move_ratio): Declare.
6641
6642 2014-11-06  Marek Polacek  <polacek@redhat.com>
6643
6644         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
6645         Remove vector limit.
6646
6647 2014-11-06  Richard Biener  <rguenther@suse.de>
6648
6649         * match.pd: Implement bitwise binary and unary simplifications
6650         from tree-ssa-forwprop.c.
6651         * fold-const.c (fold_unary_loc): Remove them here.
6652         (fold_binary_loc): Likewise.
6653         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
6654         (truth_valued_ssa_name): Likewise.
6655         (lookup_logical_inverted_value): Likewise.
6656         (simplify_bitwise_binary_1): Likewise.
6657         (hoist_conversion_for_bitop_p): Likewise.
6658         (simplify_bitwise_binary_boolean): Likewise.
6659         (simplify_bitwise_binary): Likewise.
6660         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
6661         and simplify_bitwise_binary.
6662         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
6663         (decision_tree::insert): Also insert non-expressions.
6664
6665 2014-11-06  Hale Wang  <hale.wang@arm.com>
6666
6667         * config/arm/arm-cores.def: Add support for
6668         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
6669         cortex-m1.small-multiply.
6670         * config/arm/arm-tables.opt: Regenerate.
6671         * config/arm/arm-tune.md: Regenerate.
6672         * config/arm/arm.c: Update the rtx-costs for MUL.
6673         * config/arm/bpabi.h: Handle
6674         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
6675         cortex-m1.small-multiply.
6676         * doc/invoke.texi: Document
6677         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
6678         cortex-m1.small-multiply.
6679
6680 2014-11-06  Hale Wang  <hale.wang@arm.com>
6681
6682         * config/arm/arm.c: Add cortex-m7 tune.
6683         * config/arm/arm-cores.def: Use cortex-m7 tune.
6684
6685 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
6686
6687         PR target/63538
6688         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
6689         (ix86_encode_section_info): Do not check for non-automatic varibles
6690         when setting SYMBOL_FLAG_FAR_ADDR flag.
6691         (x86_64_elf_select_section): Do not check ix86_cmodel here.
6692         (x86_64_elf_unique_section): Ditto.
6693         (x86_elf_aligned_common): Emit tab before .largecomm.
6694
6695 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
6696
6697         PR preprocessor/9449
6698         * doc/cpp.texi (Character sets, Tokenization)
6699         (Implementation-defined behavior): Don't refer to UCNs in
6700         identifiers requiring -fextended-identifiers.
6701         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
6702         by default for C99 and later and C++.
6703         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
6704         identifiers needing -fextended-identifiers.
6705
6706 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
6707
6708         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
6709         for 512-bit wide modes.
6710         (expand_vec_perm_1): Use correct versions of patterns.
6711         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
6712         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
6713
6714 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
6715
6716         * ipa-chkp.c: New.
6717         * ipa-chkp.h: New.
6718         * tree-chkp.c: New.
6719         * tree-chkp.h: New.
6720         * tree-chkp-opt.c: New.
6721         * rtl-chkp.c: New.
6722         * rtl-chkp.h: New.
6723         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
6724         tree-chkp-opt.o.
6725         (GTFILES): Add tree-chkp.c.
6726         * mode-classes.def (MODE_POINTER_BOUNDS): New.
6727         * tree.def (POINTER_BOUNDS_TYPE): New.
6728         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
6729         (POINTER_BOUNDS_MODE): New.
6730         (make_pointer_bounds_mode): New.
6731         * machmode.h (POINTER_BOUNDS_MODE_P): New.
6732         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
6733         (layout_type): Support POINTER_BOUNDS_TYPE.
6734         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
6735         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
6736         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
6737         (type_contains_placeholder_1): Likewise.
6738         (build_common_tree_nodes): Initialize
6739         pointer_bounds_type_node.
6740         * tree.h (POINTER_BOUNDS_TYPE_P): New.
6741         (pointer_bounds_type_node): New.
6742         (POINTER_BOUNDS_P): New.
6743         (BOUNDED_TYPE_P): New.
6744         (BOUNDED_P): New.
6745         (CALL_WITH_BOUNDS_P): New.
6746         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
6747         (gimple_call_with_bounds_p): New.
6748         (gimple_call_set_with_bounds): New.
6749         (gimple_return_retbnd): New.
6750         (gimple_return_set_retbnd): New
6751         * gimple.c (gimple_build_return): Increase number of ops
6752         for return statement.
6753         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
6754         flag.
6755         * gimple-pretty-print.c (dump_gimple_return): Print second op.
6756         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
6757         * gimplify.c (gimplify_init_constructor): Avoid infinite
6758         loop during gimplification of bounds initializer.
6759         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
6760         (special_function_p): Use original decl name when analyzing
6761         instrumentation clone.
6762         (arg_data): Add fields special_slot, pointer_arg and
6763         pointer_offset.
6764         (store_bounds): New.
6765         (emit_call_1): Propagate instrumentation flag for CALL.
6766         (initialize_argument_information): Compute pointer_arg,
6767         pointer_offset and special_slot for pointer bounds arguments.
6768         (finalize_must_preallocate): Preallocate when storing bounds
6769         in bounds table.
6770         (compute_argument_addresses): Skip pointer bounds.
6771         (expand_call): Store bounds into tables separately.  Return
6772         result joined with resulting bounds.
6773         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
6774         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
6775         (expand_return): Add returned bounds arg.  Handle returned bounds.
6776         (expand_gimple_stmt_1): Adjust to new expand_return signature.
6777         (gimple_expand_cfg): Reset rtx bounds map.
6778         * expr.c: Include tree-chkp.h, rtl-chkp.h.
6779         (expand_assignment): Handle returned bounds.
6780         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
6781         target argument.  Handle bounds returned by calls.
6782         (store_expr): Now wraps store_expr_with_bounds.
6783         * expr.h (store_expr_with_bounds): New.
6784         * function.c: Include tree-chkp.h, rtl-chkp.h.
6785         (bounds_parm_data): New.
6786         (use_register_for_decl): Do not registerize decls used for bounds
6787         stores and loads.
6788         (assign_parms_augmented_arg_list): Add bounds of the result
6789         structure pointer as the second argument.
6790         (assign_parm_find_entry_rtl): Mark bounds are never passed on
6791         the stack.
6792         (assign_parm_is_stack_parm): Likewise.
6793         (assign_parm_load_bounds): New.
6794         (assign_bounds): New.
6795         (assign_parms): Load bounds and determine a location for
6796         returned bounds.
6797         (diddle_return_value_1): New.
6798         (diddle_return_value): Handle returned bounds.
6799         * function.h (rtl_data): Add field for returned bounds.
6800         * varasm.c: Include tree-chkp.h.
6801         (output_constant): Support POINTER_BOUNDS_TYPE.
6802         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
6803         (ultimate_transparent_alias_target): Move up.
6804         (make_decl_rtl): For instrumented function use
6805         name of the original decl.
6806         (assemble_start_function): Mark function as global
6807         in case it is instrumentation clone of the global
6808         function.
6809         (do_assemble_alias): Follow transparent alias chain
6810         for identifier.  Check if original alias is public.
6811         (maybe_assemble_visibility): Use visibility of the
6812         original function for instrumented version.
6813         (default_unique_section): Likewise.
6814         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
6815         (init_emit_once): Build pointer bounds zero constants.
6816         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
6817         * target.def (builtin_chkp_function): New.
6818         (chkp_bound_type): New.
6819         (chkp_bound_mode): New.
6820         (chkp_make_bounds_constant): New.
6821         (chkp_initialize_bounds): New.
6822         (load_bounds_for_arg): New.
6823         (store_bounds_for_arg): New.
6824         (load_returned_bounds): New.
6825         (store_returned_bounds): New.
6826         (chkp_function_value_bounds): New.
6827         (setup_incoming_vararg_bounds): New.
6828         (function_arg): Update hook description with new possible return
6829         value CONST_INT.
6830         * targhooks.h (default_load_bounds_for_arg): New.
6831         (default_store_bounds_for_arg): New.
6832         (default_load_returned_bounds): New.
6833         (default_store_returned_bounds): New.
6834         (default_chkp_bound_type): New.
6835         (default_chkp_bound_mode): New.
6836         (default_builtin_chkp_function): New.
6837         (default_chkp_function_value_bounds): New.
6838         (default_chkp_make_bounds_constant): New.
6839         (default_chkp_initialize_bounds): New.
6840         (default_setup_incoming_vararg_bounds): New.
6841         * targhooks.c (default_load_bounds_for_arg): New.
6842         (default_store_bounds_for_arg): New.
6843         (default_load_returned_bounds): New.
6844         (default_store_returned_bounds): New.
6845         (default_chkp_bound_type): New.
6846         (default_chkp_bound_mode); New.
6847         (default_builtin_chkp_function): New.
6848         (default_chkp_function_value_bounds): New.
6849         (default_chkp_make_bounds_constant): New.
6850         (default_chkp_initialize_bounds): New.
6851         (default_setup_incoming_vararg_bounds): New.
6852         * builtin-types.def (BT_BND): New.
6853         (BT_FN_PTR_CONST_PTR): New.
6854         (BT_FN_CONST_PTR_CONST_PTR): New.
6855         (BT_FN_BND_CONST_PTR): New.
6856         (BT_FN_CONST_PTR_BND): New.
6857         (BT_FN_PTR_CONST_PTR_SIZE): New.
6858         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
6859         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
6860         (BT_FN_VOID_CONST_PTR_SIZE): New.
6861         (BT_FN_VOID_PTR_BND): New.
6862         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
6863         (BT_FN_BND_CONST_PTR_SIZE): New.
6864         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
6865         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
6866         * chkp-builtins.def: New.
6867         * builtins.def: include chkp-builtins.def.
6868         (DEF_CHKP_BUILTIN): New.
6869         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
6870         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
6871         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
6872         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
6873         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
6874         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
6875         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
6876         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
6877         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
6878         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
6879         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
6880         (std_expand_builtin_va_start): Init bounds for va_list.
6881         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
6882         __CHKP__ macro when Pointer Bounds Checker is on.
6883         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
6884         * passes.def (pass_ipa_chkp_versioning): New.
6885         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
6886         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
6887         (pass_chkp_instrumentation_passes): New.
6888         (pass_ipa_chkp_produce_thunks): New.
6889         (pass_local_optimization_passes): New.
6890         (pass_chkp_opt): New.
6891         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
6892         (make_pass_ipa_chkp_produce_thunks): New.
6893         (make_pass_chkp): New.
6894         (make_pass_chkp_opt): New.
6895         (make_pass_early_local_passes): Renamed to ...
6896         (make_pass_build_ssa_passes): This.
6897         (make_pass_chkp_instrumentation_passes): New.
6898         (make_pass_local_optimization_passes): New.
6899         * passes.c (pass_manager::execute_early_local_passes): Execute
6900         early passes in three steps.
6901         (execute_all_early_local_passes): Renamed to ...
6902         (execute_build_ssa_passes): This.
6903         (pass_data_early_local_passes): Renamed to ...
6904         (pass_data_build_ssa_passes): This.
6905         (pass_early_local_passes): Renamed to ...
6906         (pass_build_ssa_passes): This.
6907         (pass_data_chkp_instrumentation_passes): New.
6908         (pass_chkp_instrumentation_passes): New.
6909         (pass_data_local_optimization_passes): New.
6910         (pass_local_optimization_passes): New.
6911         (make_pass_early_local_passes): Renamed to ...
6912         (make_pass_build_ssa_passes): This.
6913         (make_pass_chkp_instrumentation_passes): New.
6914         (make_pass_local_optimization_passes): New.
6915         * c-family/c.opt (fcheck-pointer-bounds): New.
6916         (fchkp-check-incomplete-type): New.
6917         (fchkp-zero-input-bounds-for-main): New.
6918         (fchkp-first-field-has-own-bounds): New.
6919         (fchkp-narrow-bounds): New.
6920         (fchkp-narrow-to-innermost-array): New.
6921         (fchkp-optimize): New.
6922         (fchkp-use-fast-string-functions): New.
6923         (fchkp-use-nochk-string-functions): New.
6924         (fchkp-use-static-bounds): New.
6925         (fchkp-use-static-const-bounds): New.
6926         (fchkp-treat-zero-dynamic-size-as-infinite): New.
6927         (fchkp-check-read): New.
6928         (fchkp-check-write): New.
6929         (fchkp-store-bounds): New.
6930         (fchkp-instrument-calls): New.
6931         (fchkp-instrument-marked-only): New.
6932         (Wchkp): New.
6933         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
6934         (handle_bnd_legacy): New.
6935         (handle_bnd_instrument): New.
6936         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
6937         and bnd_instrument.  Fix documentation.
6938         (c_common_format_attribute_table): Likewsie.
6939         * toplev.c: include tree-chkp.h.
6940         (process_options): Check Pointer Bounds Checker is supported.
6941         (compile_file): Add chkp_finish_file call.
6942         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
6943         to handle instrumentation clones properly.
6944         (propagate_constants_accross_call): Do not propagate
6945         through instrumentation thunks.
6946         * ipa-pure-const.c (propagate_pure_const): Support
6947         IPA_REF_CHKP.
6948         * ipa-inline.c (early_inliner): Check edge has summary allocated.
6949         * ipa-split.c: Include tree-chkp.h.
6950         (find_retbnd): New.
6951         (split_part_set_ssa_name_p): New.
6952         (consider_split): Do not split retbnd and retval
6953         producers.
6954         (insert_bndret_call_after): new.
6955         (split_function): Propagate Pointer Bounds Checker
6956         instrumentation marks and handle returned bounds.
6957         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
6958         into bit field and add with_bounds field.
6959         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
6960         with_bounds field for instrumented calls.
6961         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
6962         CALL_WITH_BOUNDS_P flag for calls.
6963         * tree-ssa-ccp.c: Include tree-chkp.h.
6964         (insert_clobber_before_stack_restore): Handle
6965         BUILT_IN_CHKP_BNDRET calls.
6966         * tree-ssa-dce.c: Include tree-chkp.h.
6967         (propagate_necessity): For free call fed by alloc check
6968         bounds are also provided by the same alloc.
6969         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
6970         used by free calls.
6971         * tree-inline.c: Include tree-chkp.h.
6972         (declare_return_variable): Add arg holding
6973         returned bounds slot.  Create and initialize returned bounds var.
6974         (remap_gimple_stmt): Handle returned bounds.
6975         Return sequence of statements instead of a single statement.
6976         (insert_init_stmt): Add declaration.
6977         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
6978         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
6979         Properly handle bounds in va_arg_pack and va_arg_pack_len.
6980         (expand_call_inline): Handle returned bounds.  Add bounds copy
6981         for generated mem to mem assignments.
6982         * tree-inline.h (copy_body_data): Add fields retbnd and
6983         assign_stmts.
6984         * value-prof.c: Include tree-chkp.h.
6985         (gimple_ic): Support returned bounds.
6986         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
6987         with "chkp ctor" and "bnd_legacy" attributes.
6988         (symtab_remove_unreachable_nodes): Keep initial values for
6989         pointer bounds to be used for checks eliminations.
6990         (process_references): Handle IPA_REF_CHKP.
6991         (walk_polymorphic_call_targets): Likewise.
6992         * ipa-visibility.c (cgraph_externally_visible_p): Mark
6993         instrumented 'main' as externally visible.
6994         (function_and_variable_visibility): Filter instrumentation
6995         thunks.
6996         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
6997         field.
6998         (cgraph_node): Add instrumented_version, orig_decl and
6999         instrumentation_clone fields.
7000         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
7001         (varpool_node): Add need_bounds_init field.
7002         (cgraph_local_p): New.
7003         * cgraph.c: Include tree-chkp.h.
7004         (cgraph_node::remove): Fix instrumented_version
7005         of the referenced node if any.
7006         (cgraph_node::dump): Dump instrumentation_clone and
7007         instrumented_version fields.
7008         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
7009         references and instrumentation thunks.
7010         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
7011         all not instrumented instrumentation clones alive.
7012         (cgraph_redirect_edge_call_stmt_to_callee): Support
7013         returned bounds.
7014         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
7015         reference.
7016         (cgraph_rebuild_references): Likewise.
7017         * cgraphunit.c: Include tree-chkp.h.
7018         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
7019         function version.
7020         (varpool_finalize_decl): Register statically initialized decls
7021         in Pointer Bounds Checker.
7022         (walk_polymorphic_call_targets): Do not mark generated call to
7023         __builtin_unreachable as with_bounds.
7024         (output_weakrefs): If there are both instrumented and original
7025         versions, output only one of them.
7026         (cgraph_node::expand_thunk): Set with_bounds flag
7027         for created call statement.
7028         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
7029         (ipa_ref): increase size of use field.
7030         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
7031         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
7032         (ctor_for_folding): Do not fold constant bounds vars.
7033         * lto-streamer.h (LTO_minor_version): Change minor version from
7034         0 to 1.
7035         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
7036         pointer bounds.
7037         (lto_output_node): Output instrumentation_clone,
7038         thunk.add_pointer_bounds_args and orig_decl field.
7039         (lto_output_ref): Adjust to new ipa_ref::use field size.
7040         (input_overwrite_node): Read instrumentation_clone field.
7041         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
7042         fields.
7043         (input_ref): Adjust to new ipa_ref::use field size.
7044         (input_cgraph_1): Compute instrumented_version fields and restore
7045         IDENTIFIER_TRANSPARENT_ALIAS chains.
7046         (lto_output_varpool_node): Output
7047         need_bounds_init value.
7048         (input_varpool_node): Read need_bounds_init value.
7049         * lto-partition.c (add_symbol_to_partition_1): Keep original
7050         and instrumented versions together.
7051         (privatize_symbol_name): Restore transparent alias chain if required.
7052         (add_references_to_partition): Add references to pointer bounds vars.
7053         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
7054         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
7055         (gen_type_die_with_usage): Skip pointer bounds.
7056         (dwarf2out_global_decl): Likewise.
7057         (is_base_type): Support POINTER_BOUNDS_TYPE.
7058         (gen_formal_types_die): Skip pointer bounds.
7059         (gen_decl_die): Likewise.
7060         * var-tracking.c (vt_add_function_parameters): Skip
7061         bounds parameters.
7062         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
7063         thunk still exists.
7064         (sem_variable::merge): Reset need_bounds_init flag.
7065         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
7066         and attributes.
7067         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
7068         (TARGET_STORE_BOUNDS_FOR_ARG): New.
7069         (TARGET_LOAD_RETURNED_BOUNDS): New.
7070         (TARGET_STORE_RETURNED_BOUNDS): New.
7071         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
7072         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
7073         (TARGET_BUILTIN_CHKP_FUNCTION): New.
7074         (TARGET_CHKP_BOUND_TYPE): New.
7075         (TARGET_CHKP_BOUND_MODE): New.
7076         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
7077         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
7078         * doc/tm.texi: Regenerated.
7079         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
7080         (BND32mode): New.
7081         (BND64mode): New.
7082         * doc/invoke.texi (-mmpx): New.
7083         (-mno-mpx): New.
7084         (chkp-max-ctor-size): New.
7085         * config/i386/constraints.md (w): New.
7086         (Ti): New.
7087         (Tb): New.
7088         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
7089         * config/i386/i386-modes.def (BND32): New.
7090         (BND64): New.
7091         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
7092         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
7093         (regclass_map): Add bound registers.
7094         (dbx_register_map): Likewise.
7095         (dbx64_register_map): Likewise.
7096         (svr4_dbx_register_map): Likewise.
7097         (isa_opts): Add -mmpx.
7098         (PTA_MPX): New.
7099         (ix86_option_override_internal): Support MPX ISA.
7100         (ix86_conditional_register_usage): Support bound registers.
7101         (ix86_code_end): Add MPX bnd prefix.
7102         (output_set_got): Likewise.
7103         (print_reg): Avoid prefixes for bound registers.
7104         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
7105         (ix86_print_operand_punct_valid_p): Likewise.
7106         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
7107         UNSPEC_BNDLDX_ADDR.
7108         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
7109         (ix86_class_likely_spilled_p): Add bound regs support.
7110         (ix86_hard_regno_mode_ok): Likewise.
7111         (x86_order_regs_for_local_alloc): Likewise.
7112         (ix86_bnd_prefixed_insn_p): New.
7113         (ix86_builtins): Add
7114         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
7115         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
7116         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
7117         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
7118         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
7119         IX86_BUILTIN_BNDUPPER.
7120         (builtin_isa): Add leaf_p and nothrow_p fields.
7121         (def_builtin): Initialize leaf_p and nothrow_p.
7122         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
7123         flags.
7124         (bdesc_mpx): New.
7125         (bdesc_mpx_const): New.
7126         (ix86_init_mpx_builtins): New.
7127         (ix86_init_builtins): Call ix86_init_mpx_builtins.
7128         (ix86_emit_cmove): New.
7129         (ix86_emit_move_max): New.
7130         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
7131         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
7132         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
7133         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
7134         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
7135         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
7136         (ix86_function_value_bounds): New.
7137         (ix86_builtin_mpx_function): New.
7138         (ix86_get_arg_address_for_bt): New.
7139         (ix86_load_bounds): New.
7140         (ix86_store_bounds): New.
7141         (ix86_load_returned_bounds): New.
7142         (ix86_store_returned_bounds): New.
7143         (ix86_mpx_bound_mode): New.
7144         (ix86_make_bounds_constant): New.
7145         (ix86_initialize_bounds):
7146         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
7147         (TARGET_STORE_BOUNDS_FOR_ARG): New.
7148         (TARGET_LOAD_RETURNED_BOUNDS): New.
7149         (TARGET_STORE_RETURNED_BOUNDS): New.
7150         (TARGET_CHKP_BOUND_MODE): New.
7151         (TARGET_BUILTIN_CHKP_FUNCTION): New.
7152         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
7153         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
7154         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
7155         (ix86_option_override_internal): Do not
7156         support x32 with MPX.
7157         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
7158         and force_bnd_pass.
7159         (function_arg_advance_32): Return number of used integer
7160         registers.
7161         (function_arg_advance_64): Likewise.
7162         (function_arg_advance_ms_64): Likewise.
7163         (ix86_function_arg_advance): Handle pointer bounds.
7164         (ix86_function_arg): Likewise.
7165         (ix86_function_value_regno_p): Mark fisrt bounds registers as
7166         possible function value.
7167         (ix86_function_value_1): Handle pointer bounds type/mode
7168         (ix86_return_in_memory): Likewise.
7169         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
7170         (ix86_expand_call): Generate returned bounds.
7171         (ix86_setup_incoming_vararg_bounds): New.
7172         (ix86_va_start): Initialize bounds for pointers in va_list.
7173         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
7174         * config/i386/i386.h (TARGET_MPX): New.
7175         (TARGET_MPX_P): New.
7176         (FIRST_PSEUDO_REGISTER): Fix to new value.
7177         (FIXED_REGISTERS): Add bound registers.
7178         (CALL_USED_REGISTERS): Likewise.
7179         (REG_ALLOC_ORDER): Likewise.
7180         (HARD_REGNO_NREGS): Likewise.
7181         (VALID_BND_REG_MODE): New.
7182         (FIRST_BND_REG): New.
7183         (LAST_BND_REG): New.
7184         (reg_class): Add BND_REGS.
7185         (REG_CLASS_NAMES): Likewise.
7186         (REG_CLASS_CONTENTS): Likewise.
7187         (BND_REGNO_P): New.
7188         (ANY_BND_REG_P): New.
7189         (BNDmode): New.
7190         (HI_REGISTER_NAMES): Add bound registers.
7191         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
7192         stdarg fields.
7193         * config/i386/i386.md (UNSPEC_BNDMK): New.
7194         (UNSPEC_BNDMK_ADDR): New.
7195         (UNSPEC_BNDSTX): New.
7196         (UNSPEC_BNDLDX): New.
7197         (UNSPEC_BNDLDX_ADDR): New.
7198         (UNSPEC_BNDCL): New.
7199         (UNSPEC_BNDCU): New.
7200         (UNSPEC_BNDCN): New.
7201         (UNSPEC_MPX_FENCE): New.
7202         (UNSPEC_SIZEOF): New.
7203         (BND0_REG): New.
7204         (BND1_REG): New.
7205         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
7206         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
7207         (prefix_rep): Check for bnd prefix.
7208         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
7209         (length_nobnd): New.
7210         (length): Use length_nobnd when specified.
7211         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
7212         (BND): New.
7213         (bnd_ptr): New.
7214         (BNDCHECK): New.
7215         (bndcheck): New.
7216         (*jcc_1): Add MPX bnd prefix.
7217         (*jcc_2): Likewise.
7218         (jump): Likewise.
7219         (*indirect_jump): Likewise.
7220         (*tablejump_1): Likewise.
7221         (simple_return_internal): Likewise.
7222         (simple_return_internal_long): Likewise.
7223         (simple_return_pop_internal): Likewise.
7224         (simple_return_indirect_internal): Likewise.
7225         (<mode>_mk): New.
7226         (*<mode>_mk): New.
7227         (mov<mode>): New.
7228         (*mov<mode>_internal_mpx): New.
7229         (<mode>_<bndcheck>): New.
7230         (*<mode>_<bndcheck>): New.
7231         (<mode>_ldx): New.
7232         (*<mode>_ldx): New.
7233         (<mode>_stx): New.
7234         (*<mode>_stx): New.
7235         move_size_reloc_<mode>): New.
7236         * config/i386/predicates.md (address_mpx_no_base_operand): New.
7237         (address_mpx_no_index_operand): New.
7238         (bnd_mem_operator): New.
7239         (symbol_operand): New.
7240         (x86_64_immediate_size_operand): New.
7241         * config/i386/i386.opt (mmpx): New.
7242         * config/i386/i386-builtin-types.def (BND): New.
7243         (ULONG): New.
7244         (BND_FTYPE_PCVOID_ULONG): New.
7245         (VOID_FTYPE_BND_PCVOID): New.
7246         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
7247         (BND_FTYPE_PCVOID_PCVOID): New.
7248         (BND_FTYPE_PCVOID): New.
7249         (BND_FTYPE_BND_BND): New.
7250         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
7251         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
7252         (ULONG_FTYPE_VOID): New.
7253         (PVOID_FTYPE_BND): New.
7254
7255 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
7256
7257         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
7258         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
7259         pass_cleanup_barriers, pass_delay_slots,
7260         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
7261         pass_shorten_branches, pass_est_nothrow_function_flags,
7262         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
7263         into pass_late_compilation.
7264         (pass_late_compilation): Add.
7265         * passes.c (pass_data_late_compilation, pass_late_compilation,
7266         make_pass_late_compilation): New.
7267         * timevar.def (TV_LATE_COMPILATION): New.
7268
7269         * target.def (omit_struct_return_reg): New data hook.
7270         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
7271         * doc/tm.texi: Regenerate.
7272         * function.c (expand_function_end): Use it.
7273
7274         * target.def (no_register_allocation): New data hook.
7275         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
7276         * doc/tm.texi: Regenerate.
7277         * ira.c (gate_ira): New function.
7278         (pass_data_ira): Set has_gate.
7279         (pass_ira): Add a gate function.
7280         (pass_data_reload): Likewise.
7281         (pass_reload): Add a gate function.
7282         (pass_ira): Use it.
7283         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
7284         no register allocation happens on the target and return.
7285         * final.c (alter_subreg): Ensure register is not a pseudo before
7286         calling simplify_subreg.
7287         (output_operand): Assert that x isn't a pseudo only if doing
7288         register allocation.
7289
7290         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
7291         global vars.
7292
7293         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
7294         sorry if necessary.
7295
7296 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
7297
7298         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
7299         * rtl.h (SUBREG_P): New macro added.
7300
7301 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
7302
7303         * config/aarch64/aarch64-builtins.c
7304         (aarch64_build_scalar_type): Remove.
7305         (aarch64_scalar_builtin_types, aarch64_simd_type,
7306         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
7307         aarch64_mangle_builtin_vector_type,
7308         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
7309         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
7310         aarch64_init_simd_builtin_types,
7311         aarch64_init_simd_builtin_scalar_types): New.
7312         (aarch64_init_simd_builtins): Refactor.
7313         (aarch64_init_crc32_builtins): Fixup with qualifier.
7314         * config/aarch64/aarch64-protos.h
7315         (aarch64_mangle_builtin_type): Export.
7316         * config/aarch64/aarch64-simd-builtin-types.def: New.
7317         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
7318         (aarch64_mangle_type): Refactor.
7319         * config/aarch64/arm_neon.h: Declare vector types based on
7320         internal types.
7321         * config/aarch64/t-aarch64: Update dependency.
7322
7323 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
7324
7325         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
7326         atomic_update_decl): Guard declaration with #ifdef.
7327
7328 2014-11-04  Marek Polacek  <polacek@redhat.com>
7329
7330         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
7331
7332 2014-11-04  Marek Polacek  <polacek@redhat.com>
7333
7334         * Makefile.in (OBJS): Add sanopt.o.
7335         (GTFILES): Add sanopt.c.
7336         * asan.h (asan_expand_check_ifn): Declare.
7337         * asan.c (asan_expand_check_ifn): No longer static.
7338         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
7339         * sanopt.c: ...here.  New file.
7340
7341 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
7342 2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
7343
7344         PR target/63293
7345         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
7346         stack adjustment.
7347
7348 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
7349
7350         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
7351         also verify that mode is equal to the mode of op0.
7352
7353         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
7354         emit into a sequence instead.
7355
7356 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7357
7358         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
7359
7360 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
7361
7362         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
7363         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
7364         (reduc_smax_<mode> *2): Rename to...
7365         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
7366         (reduc_umin_<mode> *2): Rename to...
7367         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
7368         (reduc_umax_<mode> *2): Rename to...
7369         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
7370
7371 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
7372
7373         config/arm/neon.md (reduc_plus_*): Rename to...
7374         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
7375
7376 2014-11-04  Michael Collison <michael.collison@linaro.org>
7377
7378         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
7379         to support constraints for CONST_INT in atomic operations.
7380         * config/aarch64/atomics.md
7381         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
7382         (atomic_nand<mode>): Likewise.
7383         (atomic_fetch_<atomic_optab><mode>): Likewise.
7384         (atomic_fetch_nand<mode>): Likewise.
7385         (atomic_<atomic_optab>_fetch<mode>): Likewise.
7386         (atomic_nand_fetch<mode>): Likewise.
7387
7388 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7389
7390         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
7391         of __ARM_FEATURE_IDIV.
7392
7393 2014-11-04  Marek Polacek  <polacek@redhat.com>
7394
7395         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
7396
7397 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7398
7399         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
7400
7401 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7402
7403         Revert:
7404         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7405         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
7406         Allow CC mode if HAVE_cbranchcc4.
7407
7408 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7409
7410         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
7411         with -fdump-go-spec.  Anonymous substructures are now flattened and
7412         replaced by their fields (record) or the first named, non-bitfield
7413         field (union).
7414
7415 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7416
7417         * input.c (expand_location_to_spelling_point): Fix typo.
7418         (expansion_point_location_if_in_system_header): Fix comment.
7419
7420 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7421
7422         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
7423
7424 2014-11-03  Richard Biener  <rguenther@suse.de>
7425
7426         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
7427         like ordinary operations.
7428         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
7429         as NOP_EXPR.
7430
7431 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
7432
7433         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
7434         macros.
7435         * configure, config.h.in: Regenerate.
7436         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
7437         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
7438         (RS6000_GLIBC_ATOMIC_FENV): New macro.
7439         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
7440         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
7441         (RS6000_GLIBC_ATOMIC_FENV): New macro.
7442         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
7443         (atomic_update_decl): New static variables.
7444         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
7445         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
7446         and __atomic_feupdateenv for soft-float and no-FPRs.
7447
7448 2014-11-03  Richard Biener  <rguenther@suse.de>
7449
7450         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
7451         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
7452         * fold-const.c (fold_unary_loc): Remove them here.
7453         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
7454         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
7455         GIMPLE_UNARY_RHS case.
7456         (gimple_fold_stmt_to_constant_1): Likewise.
7457         (replace_stmt_with_simplification): Fix inverted comparison.
7458
7459 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
7460
7461         PR tree-optimization/60770
7462         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
7463         statement should be removed.
7464         (maybe_register_def): Likewise. Replace clobbers with default
7465         definitions.
7466         (rewrite_dom_walker::before_dom_children): Remove statement if
7467         rewrite_update_stmt says so.
7468         * tree-ssa-live.c: Include tree-ssa.h.
7469         (set_var_live_on_entry): Do not mark undefined variables as live.
7470         (verify_live_on_entry): Do not check undefined variables.
7471         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
7472         of partially undefined variables.
7473         * tree-ssa.c (ssa_undefined_value_p): Likewise.
7474         (execute_update_addresses_taken): Do not drop clobbers.
7475
7476 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
7477
7478         PR tree-optimization/63666
7479         * fold-const.c: Include "optabs.h".
7480         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
7481         can_vec_perm_p permutation to one that is not.
7482
7483 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7484
7485         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
7486
7487 2014-11-03  Andrew Pinski  <apinski@cavium.com>
7488
7489         * config/mips/mips-cpus.def (octeon3): New cpu.
7490         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
7491         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
7492         of the comparison no longer matches mode of the operands.
7493         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
7494         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
7495         (TARGET_OCTEON2): Likewise.
7496         (TUNE_OCTEON): Add Octeon3.
7497         * config/mips/mips.md (processor): Add octeon3.
7498         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
7499         (octeon_arith): Add octeon3.
7500         (octeon_condmove): Remove.
7501         (octeon_condmove_o1): New reservation.
7502         (octeon_condmove_o2): New reservation.
7503         (octeon_condmove_o3_int_on_cc): New reservation.
7504         (octeon_load_o2): Add octeon3.
7505         (octeon_cop_o2): Likewise.
7506         (octeon_store): Likewise.
7507         (octeon_brj_o2): Likewise.
7508         (octeon_imul3_o2): Likewise.
7509         (octeon_imul_o2): Likewise.
7510         (octeon_mfhilo_o2): Likewise.
7511         (octeon_imadd_o2): Likewise.
7512         (octeon_idiv_o2_si): Likewise.
7513         (octeon_idiv_o2_di): Likewise.
7514         (octeon_fpu): Add to the automaton.
7515         (octeon_fpu): New cpu unit.
7516         (octeon_condmove_o2): Check for non floating point modes.
7517         (octeon_load_o2): Add prefetchx.
7518         (octeon_cop_o2): Don't check for octeon3.
7519         (octeon3_faddsubcvt): New reservation.
7520         (octeon3_fmul): Likewise.
7521         (octeon3_fmadd): Likewise.
7522         (octeon3_div_sf): Likewise.
7523         (octeon3_div_df): Likewise.
7524         (octeon3_sqrt_sf): Likewise.
7525         (octeon3_sqrt_df): Likewise.
7526         (octeon3_rsqrt_sf): Likewise.
7527         (octeon3_rsqrt_df): Likewise.
7528         (octeon3_fabsnegmov): Likewise.
7529         (octeon_fcond): Likewise.
7530         (octeon_fcondmov): Likewise.
7531         (octeon_fpmtc1): Likewise.
7532         (octeon_fpmfc1): Likewise.
7533         (octeon_fpload): Likewise.
7534         (octeon_fpstore): Likewise.
7535         * config/mips/mips-tables.opt: Regenerate.
7536         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
7537
7538 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
7539
7540         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
7541         Allow CC mode if HAVE_cbranchcc4.
7542
7543 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
7544
7545         * config/arc/arc.c (write_ext_corereg_1): Delete.
7546         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
7547
7548 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
7549
7550         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
7551         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
7552
7553 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
7554
7555         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
7556         (small_data_pattern_1): Delete.
7557         (small_data_pattern): Use FOR_EACH_SUBRTX.
7558
7559 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
7560
7561         * config/arc/arc.c: Include rtl-iter.h.
7562         (arc_rewrite_small_data_1): Delete.
7563         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
7564
7565 2014-11-02  Michael Collison  <michael.collison@linaro.org>
7566
7567         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
7568         to support vector modes.
7569         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
7570
7571 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
7572
7573         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
7574         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
7575         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
7576         * optabs.c: (gen_move_insn): Move to expr.c.
7577         * expr.h: Move protypes and enums to optabs.h.
7578         * expr.c: (gen_move_insn): Relocate from optabs.c.
7579         * genemit.c (main): Include insn-codes.h.
7580         * gengtype.c (open_base_files): Include insn-codes.h.
7581         * asan.c: Include insn-codes.h.
7582         * bb-reorder.c: Ditto.
7583         * builtins.c: Ditto.
7584         * calls.c: Ditto.
7585         * cfgexpand.c: Ditto.
7586         * cilk-common.c: Ditto.
7587         * combine.c: Ditto.
7588         * dojump.c: Ditto.
7589         * dse.c: Ditto.
7590         * except.c: Ditto.
7591         * explow.c: Ditto.
7592         * expmed.c: Ditto.
7593         * function.c: Ditto.
7594         * ifcvt.c: Ditto.
7595         * internal-fn.c: Ditto.
7596         * loop-unroll.c: Ditto.
7597         * lra.c: Ditto.
7598         * modulo-sched.c: Ditto.
7599         * omp-low.c: Ditto.
7600         * postreload.c: Ditto.
7601         * ree.c: Ditto.
7602         * reload.c: Ditto.
7603         * reload1.c: Ditto.
7604         * shrink-wrap.c: Ditto.
7605         * simplify-rtx.c: Ditto.
7606         * stmt.c: Ditto.
7607         * target-globals.c: Ditto.
7608         * targhooks.c: Ditto.
7609         * toplev.c: Ditto.
7610         * tree-if-conv.c: Ditto.
7611         * tree-ssa-forwprop.c: Ditto.
7612         * tree-ssa-loop-prefetch.c: Ditto.
7613         * tree-ssa-math-opts.c: Ditto.
7614         * tree-ssa-phiopt.c: Ditto.
7615         * tree-ssa-reassoc.c: Ditto.
7616         * tree-switch-conversion.c: Ditto.
7617         * tree-vect-data-refs.c: Ditto.
7618         * tree-vect-generic.c: Ditto.
7619         * tree-vect-loop.c: Ditto.
7620         * tree-vect-patterns.c: Ditto.
7621         * tree-vect-slp.c: Ditto.
7622         * tree-vect-stmts.c: Ditto.
7623         * tree-vrp.c: Ditto.
7624         * value-prof.c: Ditto.
7625         * config/aarch64/aarch64-builtins.c: Ditto.
7626         * config/alpha/alpha.c: Ditto.
7627         * config/arm/arm.c: Ditto.
7628         * config/cris/cris.c: Ditto.
7629         * config/epiphany/epiphany.c: Ditto.
7630         * config/frv/frv.c: Ditto.
7631         * config/h8300/h8300.c: Ditto.
7632         * config/ia64/ia64.c: Ditto.
7633         * config/iq2000/iq2000.c: Ditto.
7634         * config/m32c/m32c.c: Ditto.
7635         * config/mep/mep.c: Ditto.
7636         * config/microblaze/microblaze.c: Ditto.
7637         * config/mips/mips.c: Ditto.
7638         * config/mn10300/mn10300.c: Ditto.
7639         * config/moxie/moxie.c: Ditto.
7640         * config/msp430/msp430.c: Ditto.
7641         * config/nios2/nios2.c: Ditto.
7642         * config/pa/pa.c: Ditto.
7643         * config/rl78/rl78.c: Ditto.
7644         * config/rs6000/rs6000.c: Ditto.
7645         * config/rx/rx.c: Ditto.
7646         * config/s390/s390.c: Ditto.
7647         * config/sh/sh.c: Ditto.
7648         * config/sh/sh_treg_combine.cc: Ditto.
7649         * config/spu/spu.c: Ditto.
7650         * config/stormy16/stormy16.c: Ditto.
7651         * config/tilegx/mul-tables.c: Ditto.
7652         * config/tilegx/tilegx.c: Ditto.
7653         * config/tilepro/mul-tables.c: Ditto.
7654         * config/tilepro/tilepro.c: Ditto.
7655         * config/vax/vax.c: Ditto.
7656
7657 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7658
7659         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
7660         (CLEAR_BY_PIECES_P): Likewise.
7661         (SET_BY_PIECES_P): Likewise.
7662         (STORE_BY_PIECES_P): Likewise.
7663         * doc/tm.texi: Regenerate.
7664         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
7665         SET_BY_PIECES_P, STORE_BY_PIECES_P.
7666         * expr.c (MOVE_BY_PIECES_P): Remove.
7667         (CLEAR_BY_PIECES_P): Likewise.
7668         (SET_BY_PIECES_P): Likewise.
7669         (STORE_BY_PIECES_P): Likewise.
7670         (can_move_by_pieces): Rewrite in terms of
7671         targetm.use_by_pieces_infrastructure_p.
7672         (emit_block_move_hints): Likewise.
7673         (can_store_by_pieces): Likewise.
7674         (store_by_pieces): Likewise.
7675         (clear_storage_hints): Likewise.
7676         (emit_push_insn): Likewise.
7677         (expand_constructor): Likewise.
7678
7679 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7680
7681         * config/aarch64/aarch64.c
7682         (aarch64_use_by_pieces_infrastructre_p): New.
7683         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
7684         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
7685
7686 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7687
7688         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
7689         (STORE_BY_PIECES_P): Likewise.
7690         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
7691         (mips_move_by_pieces_p): Rename to...
7692         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
7693         parameters, use the default hook implementation as a
7694         fall-back.
7695
7696 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7697
7698         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
7699         (sh_use_by_pieces_infrastructure_p): Likewise.
7700         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
7701         (STORE_BY_PIECES_P): Likewise.
7702         (SET_BY_PIECES_P): Likewise.
7703
7704 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7705
7706         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
7707         (arc_use_by_pieces_infrastructure_p): Likewise.
7708         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
7709         (CAN_MOVE_BY_PIECES): Likewise.
7710
7711 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7712
7713         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
7714         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
7715         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
7716         (CLEAR_BY_PIECES): Likewise.
7717         (SET_BY_PIECES): Likewise.
7718         (STORE_BY_PIECES): Likewise.
7719
7720 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
7721
7722         * target.def (use_by_pieces_infrastructure_p): New.
7723         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
7724         is deprecated.
7725         (STORE_BY_PIECES_P): Likewise.
7726         (CLEAR_BY_PIECES_P): Likewise.
7727         (SET_BY_PIECES_P): Likewise.
7728         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
7729         * doc/tm.texi: Regenerate.
7730         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
7731         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
7732         (STORE_BY_PIECES_P): Likewise.
7733         (CLEAR_BY_PIECES_P): Likewise.
7734         (SET_BY_PIECES_P): Likewise.
7735         (STORE_MAX_PIECES): Move to...
7736         * defaults.h (STORE_MAX_PIECES): ...here.
7737         * targhooks.c (get_move_ratio): New.
7738         (default_use_by_pieces_infrastructure_p): Likewise.
7739         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
7740         * target.h (by_pieces_operation): New.
7741
7742 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
7743
7744         PR target/63702
7745         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
7746         assignment to 'nargs' variable.
7747
7748 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
7749
7750         PR target/63620
7751         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
7752         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
7753         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
7754         be reloaded through memory.
7755         (*pushxf): Ditto.
7756         (*pushdf): Ditto.
7757
7758 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
7759
7760         PR rtl-optimization/63659
7761         * ree.c (update_reg_equal_equiv_notes): New function.
7762         (combine_set_extension, transform_ifelse): Use it.
7763
7764 2014-10-31  Jeff Law  <law@redhat.com>
7765
7766         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
7767         and Jonny Grant (collect2).
7768
7769 2014-10-31  Richard Biener  <rguenther@suse.de>
7770
7771         * builtins.c (fold_builtin_atomic_always_lock_free): Use
7772         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
7773         approprate.
7774         (fold_builtin_expect): Likewise.
7775         (integer_valued_real_p): Likewise.
7776         * cfgexpand.c (expand_debug_expr): Likewise.
7777         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
7778         (find_foldable_builtin_expect): Likewise.
7779         * trans-mem.c (thread_private_new_memory): Likewise.
7780         * tree-affine.c (aff_combination_expand): Likewise.
7781         * tree-data-ref.c (initialize_matrix_A): Likewise.
7782         * tree-inline.c (copy_bb): Likewise.
7783         * tree-pretty-print.c (dump_function_name): Likewise.
7784         (print_call_name): Likewise.
7785         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
7786         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
7787         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
7788         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
7789         (vect_recog_widen_mult_pattern): Likewise.
7790         (vect_operation_fits_smaller_type): Likewise.
7791         * tree-vrp.c (find_assert_locations_1): Likewise.
7792         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
7793         converts to NOP_EXPR.
7794
7795 2014-10-31  Richard Biener  <rguenther@suse.de>
7796
7797         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
7798         CONVERT_EXPRs in generated code.
7799         (dt_simplify::gen): Likewise.
7800
7801 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
7802
7803         PR target/63534
7804         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
7805         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
7806         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
7807         using mcount in 32bit PIC mode.
7808         (ix86_elim_entry_set_got): New.
7809         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
7810         in PROLOGUE, delete initial if possible.
7811
7812 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
7813
7814         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
7815         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
7816
7817 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7818
7819         PR tree-optimization/63259
7820         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
7821         rotation left if it is a 16 bit byte swap.
7822         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
7823         and RROTATE_EXPR statements if it is a byte rotation.
7824
7825 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
7826
7827         PR sanitizer/63697
7828         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
7829         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
7830         instead of vr0.min - vr1.min and vr0.max - vr1.max.
7831
7832 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
7833
7834         PR ipa/63696
7835         * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
7836         alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
7837
7838 2014-10-30  Felix Yang  <felix.yang@huawei.com>
7839
7840         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
7841         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
7842         (xtensa_reorg, xtensa_reorg_loops): New.
7843         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
7844         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
7845         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
7846         (xtensa_doloop_hooks): Define.
7847         * config/xtensa/xtensa.md (doloop_end, loop_end): New
7848         (zero_cost_loop_start): Rewritten.
7849         (zero_cost_loop_end): Likewise.
7850
7851 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
7852
7853         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
7854
7855 2014-10-30  Richard Biener  <rguenther@suse.de>
7856
7857         * genmatch.c: Remove <map>, <utility> and <string> includes.
7858         Include ggc.h and hash-map.h.
7859         (ggc_internal_cleared_alloc): Provide stub definition.
7860         (ggc_free): Likewise.
7861         (struct capture_id_map_hasher): New traits for hash_map.
7862         (cid_map_t): New typedef.
7863         (everywhere else): Replace std::map use with cid_map_t.
7864         * hash-map.h (hash_map::elements): New member function.
7865         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
7866         hash-map.h and $(GGC_H) as dependency.
7867
7868 2014-10-30  Richard Biener  <rguenther@suse.de>
7869
7870         * genmatch.c (capture_info::walk_c_expr): Ignore capture
7871         uses inside TREE_TYPE ().
7872         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
7873         (find_candidates_dom_walker::before_dom_children): Likewise.
7874         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
7875         (replace_profitable_candidates): Likewise.
7876         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
7877         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
7878         * convert.c (convert_to_integer): Use CASE_CONVERT.
7879
7880 2014-10-30  Richard Biener  <rguenther@suse.de>
7881
7882         * match.pd: Implement more patterns that simplify to a single value.
7883         * fold-const.c (fold_binary_loc): Remove them here.
7884         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
7885         (fwprop_ssa_val): Remove restriction on single uses.
7886
7887 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7888
7889         * config/avr/driver-avr.c (avr_set_current_device): Remove.
7890
7891 2014-10-30  Martin Liska  <mliska@suse.cz>
7892
7893         PR ipa/63574
7894         PR ipa/63664
7895         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
7896         (func_checker::compare_gimple_label): Simlified comparison introduced.
7897         * ipa-icf-gimple.h: Missing comment added.
7898
7899 2014-10-30  Jeff Law  <law@redhat.com>
7900
7901         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
7902         argument from rtx to rtx_insn *.
7903         (compute_movmem_length, compute_clrmem_length): Likewise.
7904         (copy_fp_args, length_fp_args): Likewise.
7905         * config/pa/pa.c (legitimize_pic_address): Promote local variable
7906         "insn" from rtx to rtx_insn *.
7907         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
7908         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
7909         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
7910         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
7911         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
7912         (compute_movmem_length, compute_clrmem_length): Likewise.
7913         (copy_fp-args, length_fp_args): Likewise.
7914
7915 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7916
7917         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
7918         scalar typedef.
7919         (CUMULATIVE_ARGS): Guard against target includes.
7920         (machine_function): Likewise.
7921
7922 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7923
7924         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
7925         recog state after aarch64_prev_real_insn call.
7926
7927 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7928
7929         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
7930
7931 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7932
7933         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
7934         (struct machine_function): Gate definition on
7935         !defined(USED_FOR_TARGET).
7936
7937 2014-10-29  DJ Delorie  <dj@redhat.com>
7938
7939         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
7940
7941 2014-10-29  Martin Liska  <mliska@suse.cz>
7942
7943         PR ipa/63587
7944         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
7945         to local declarations.
7946         * function.c (add_local_decl): Implementation moved from header
7947         file, assert introduced for tree type.
7948         * function.h: Likewise.
7949
7950 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7951
7952         * godump.c (go_format_type): Represent "float _Complex" and
7953         "double _Complex" as complex64 or complex128 in Go, as appropriate.
7954
7955 2014-10-29  Richard Biener  <rguenther@suse.de>
7956
7957         * match.pd: Implement a first set of conversion patterns.
7958         * fold-const.c (fold_unary_loc): Remove them here.
7959         * tree-ssa-forwprop.c (simplify_vce): Remove.
7960         (pass_forwprop::execute): Do not call simplify_vce.
7961
7962 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
7963
7964         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
7965         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
7966         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
7967         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
7968         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
7969         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
7970         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
7971         config/arc/arc.h, config/arc/predicates.md,
7972         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
7973         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
7974         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
7975         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
7976         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
7977         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
7978         config/cr16/cr16-protos.h, config/cr16/cr16.c,
7979         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
7980         config/darwin-protos.h, config/darwin.c,
7981         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
7982         config/epiphany/epiphany.md, config/fr30/fr30.c,
7983         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
7984         config/h8300/h8300-protos.h, config/h8300/h8300.c,
7985         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
7986         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
7987         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
7988         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
7989         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
7990         config/lm32/lm32-protos.h, config/lm32/lm32.c,
7991         config/m32c/m32c-protos.h, config/m32c/m32c.c,
7992         config/m32r/m32r-protos.h, config/m32r/m32r.c,
7993         config/m68k/m68k-protos.h, config/m68k/m68k.c,
7994         config/mcore/mcore-protos.h, config/mcore/mcore.c,
7995         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
7996         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
7997         config/mips/mips-protos.h, config/mips/mips.c,
7998         config/mmix/mmix-protos.h, config/mmix/mmix.c,
7999         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
8000         config/moxie/moxie.c, config/msp430/msp430-protos.h,
8001         config/msp430/msp430.c, config/nds32/nds32-cost.c,
8002         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
8003         config/nds32/nds32-protos.h, config/nds32/nds32.c,
8004         config/nios2/nios2-protos.h, config/nios2/nios2.c,
8005         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
8006         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
8007         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
8008         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
8009         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
8010         config/s390/predicates.md, config/s390/s390-protos.h,
8011         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8012         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
8013         config/sh/sh.md, config/sparc/predicates.md,
8014         config/sparc/sparc-protos.h, config/sparc/sparc.c,
8015         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
8016         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
8017         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
8018         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
8019         config/tilepro/tilepro.c, config/v850/v850-protos.h,
8020         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
8021         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
8022         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
8023         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
8024         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
8025         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
8026         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
8027         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
8028         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
8029         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
8030         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
8031         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
8032         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
8033         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
8034         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
8035         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
8036         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
8037         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
8038         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
8039         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
8040         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
8041         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
8042         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
8043         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
8044         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
8045         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
8046         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
8047         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
8048         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
8049         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
8050         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
8051         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
8052         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
8053         var-tracking.c, varasm.c: Remove redundant enum from
8054         machine_mode.
8055         * gengtype.c (main): Treat machine_mode as a scalar typedef.
8056         * genmodes.c (emit_insn_modes_h): Hide inline functions if
8057         USED_FOR_TARGET.
8058
8059 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
8060
8061         PR rtl-optimization/63340 (part 2)
8062         * rtl.h (invalid_mode_change_p): Delete.
8063         (valid_mode_changes_for_regno): New function.
8064         * reginfo.c (invalid_mode_change_p): Delete.
8065         (valid_mode_changes_for_regno): New function.
8066         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
8067         classes to registers that are allowed by valid_mode_changes_for_regno.
8068         (setup_regno_cost_classes_by_mode): Likewise.
8069         (print_allocno_costs): Remove invalid_mode_change_p test.
8070         (print_pseudo_costs, find_costs_and_classes): Likewise.
8071
8072 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
8073
8074         PR rtl-optimization/63340 (part 1)
8075         * ira-costs.c (all_cost_classes): New variable.
8076         (complete_cost_classes): New function, split out from...
8077         (setup_cost_classes): ...here.
8078         (initiate_regno_cost_classes): Set up all_cost_classes.
8079         (restrict_cost_classes): New function.
8080         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
8081         registers that are valid for the register's mode.
8082         (setup_regno_cost_classes_by_mode): Model the mode cache as a
8083         restriction of all_cost_classes to a particular mode.
8084         (print_allocno_costs): Remove contains_reg_of_mode check.
8085         (print_pseudo_costs, find_costs_and_classes): Likewise.
8086
8087 2014-10-29  Richard Biener  <rguenther@suse.de>
8088
8089         PR tree-optimization/63666
8090         * tree-vect-slp.c (vect_get_mask_element): Properly handle
8091         accessing out-of-bound elements.
8092
8093 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8094             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8095             Anna Tikhonova  <anna.tikhonova@intel.com>
8096             Ilya Tocar  <ilya.tocar@intel.com>
8097             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8098             Ilya Verbin  <ilya.verbin@intel.com>
8099             Kirill Yukhin  <kirill.yukhin@intel.com>
8100             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8101
8102         * config/i386/i386.md
8103         (movhi_internal): Always detect maskmov.
8104         (movqi_internal): Fix target check.
8105
8106 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8107             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8108             Anna Tikhonova  <anna.tikhonova@intel.com>
8109             Ilya Tocar  <ilya.tocar@intel.com>
8110             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8111             Ilya Verbin  <ilya.verbin@intel.com>
8112             Kirill Yukhin  <kirill.yukhin@intel.com>
8113             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8114
8115         * config/i386/avx512bwintrin.h: Add new intrinsics.
8116         * config/i386/avx512vlbwintrin.h: Ditto.
8117         * config/i386/avx512vlintrin.h: Ditto.
8118
8119 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8120
8121         * godump.c (precision_to_units): New helper function.
8122         (go_append_artificial_name): Ditto.
8123         (go_append_decl_name): Ditto.
8124         (go_append_bitfield): Ditto.
8125         (go_get_uinttype_for_precision): Ditto.
8126         (go_append_padding): Ditto.
8127         (go_force_record_alignment): Ditto.
8128         (go_format_type): Represent unions with an array of uints of the size
8129         of the alignment in go.  This fixes the 'random' size of the union's
8130         representation using just the first field.
8131         (go_format_type): Add argument that indicates whether a record is
8132         nested (used for generation of artificial go names).
8133         (go_output_fndecl): Adapt to new go_format_type signature.
8134         (go_output_typedef): Ditto.
8135         (go_output_var): Ditto.
8136         (go_output_var): Prefer to output type as alias (typedef).
8137         (go_format_type): Bitfields in records are simulated as arrays of bytes
8138         in go.
8139
8140         * godump.c (go_format_type): Fix handling of arrays with zero elements.
8141
8142 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
8143
8144         * cgraph.h: Flatten.  Remove all include files.
8145         (symbol_table::initialize): Move to cgraph.c.
8146         * cgraph.c: Adjust include files.
8147         (symbol_table::initialize): Relocate from cgraph.h.
8148         * gengtype.c (open_base_files): Adjust include files.
8149         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
8150         included files.
8151         * ipa-inline.h: Remove all include files.
8152         * ipa-prop.h: Ditto.
8153         * ipa-reference.h: Ditto.
8154         * ipa-utils.h: Ditto:
8155         * lto-streamer.h: Remove cgraph.h from include list.
8156         * asan.c: Adjust include files.
8157         * auto-profile.c: Ditto.
8158         * bb-reorder.c: Ditto.
8159         * calls.c: Ditto.
8160         * cfgexpand.c: Ditto.
8161         * cgraphbuild.c: Ditto.
8162         * cgraphclones.c: Ditto.
8163         * cgraphunit.c: Ditto.
8164         * combine.c: Ditto.
8165         * coverage.c: Ditto.
8166         * data-streamer.c: Ditto.
8167         * data-streamer-in.c: Ditto.
8168         * data-streamer-out.c: Ditto.
8169         * dbxout.c: Ditto.
8170         * dwarf2out.c: Ditto.
8171         * except.c: Ditto.
8172         * expr.c: Ditto.
8173         * final.c: Ditto.
8174         * fold-const.c: Ditto.
8175         * ggc-page.c: Ditto.
8176         * gimple-fold.c: Ditto.
8177         * gimple-iterator.c: Ditto.
8178         * gimple-pretty-print.c: Ditto.
8179         * gimple-streamer-in.c: Ditto.
8180         * gimple-streamer-out.c: Ditto.
8181         * gimplify.c: Ditto.
8182         * ipa.c: Ditto.
8183         * ipa-comdats.c: Ditto.
8184         * ipa-cp.c: Ditto.
8185         * ipa-devirt.c: Ditto.
8186         * ipa-icf.c: Ditto.
8187         * ipa-icf-gimple.c: Ditto.
8188         * ipa-inline-analysis.c: Ditto.
8189         * ipa-inline.c: Ditto.
8190         * ipa-inline-transform.c: Ditto.
8191         * ipa-polymorphic-call.c: Ditto.
8192         * ipa-profile.c: Ditto.
8193         * ipa-prop.c: Ditto.
8194         * ipa-pure-const.c: Ditto.
8195         * ipa-ref.c: Ditto.
8196         * ipa-reference.c: Ditto.
8197         * ipa-split.c: Ditto.
8198         * ipa-utils.c: Ditto.
8199         * ipa-visibility.c: Ditto.
8200         * langhooks.c: Ditto.
8201         * lto-cgraph.c: Ditto.
8202         * lto-compress.c: Ditto.
8203         * lto-opts.c: Ditto.
8204         * lto-section-in.c: Ditto.
8205         * lto-section-out.c: Ditto.
8206         * lto-streamer.c: Ditto.
8207         * lto-streamer-in.c: Ditto.
8208         * lto-streamer-out.c: Ditto.
8209         * omp-low.c: Ditto.
8210         * opts-global.c: Ditto.
8211         * passes.c: Ditto.
8212         * predict.c: Ditto.
8213         * print-tree.c: Ditto.
8214         * profile.c: Ditto.
8215         * ree.c: Ditto.
8216         * stor-layout.c: Ditto.
8217         * symtab.c: Ditto.
8218         * toplev.c: Ditto.
8219         * trans-mem.c: Ditto.
8220         * tree.c: Ditto.
8221         * tree-cfg.c: Ditto.
8222         * tree-eh.c: Ditto.
8223         * tree-emutls.c: Ditto.
8224         * tree-inline.c: Ditto.
8225         * tree-nested.c: Ditto.
8226         * tree-pretty-print.c: Ditto.
8227         * tree-profile.c: Ditto.
8228         * tree-sra.c: Ditto.
8229         * tree-ssa-alias.c: Ditto.
8230         * tree-ssa-loop-ivcanon.c: Ditto.
8231         * tree-ssa-loop-ivopts.c: Ditto.
8232         * tree-ssa-pre.c: Ditto.
8233         * tree-ssa-structalias.c: Ditto.
8234         * tree-streamer.c: Ditto.
8235         * tree-streamer-in.c: Ditto.
8236         * tree-streamer-out.c: Ditto.
8237         * tree-switch-conversion.c: Ditto.
8238         * tree-tailcall.c: Ditto.
8239         * tree-vect-data-refs.c: Ditto.
8240         * tree-vectorizer.c: Ditto.
8241         * tree-vect-stmts.c: Ditto.
8242         * tsan.c: Ditto.
8243         * ubsan.c: Ditto.
8244         * value-prof.c: Ditto.
8245         * varasm.c: Ditto.
8246         * varpool.c: Ditto.
8247         * config/arm/arm.c: Ditto.
8248         * config/bfin/bfin.c: Ditto.
8249         * config/c6x/c6x.c: Ditto.
8250         * config/cris/cris.c: Ditto.
8251         * config/darwin.c: Ditto.
8252         * config/darwin-c.c: Ditto.
8253         * config/i386/i386.c: Ditto.
8254         * config/i386/winnt.c: Ditto.
8255         * config/microblaze/microblaze.c: Ditto.
8256         * config/mips/mips.c: Ditto.
8257         * config/rs6000/rs6000.c: Ditto.
8258         * config/rx/rx.c: Ditto.
8259
8260 2014-10-28  Richard Biener  <rguenther@suse.de>
8261
8262         * gimple-fold.h (follow_single_use_edges): Declare.
8263         * gimple-fold.c (follow_single_use_edges): New function.
8264         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
8265         * tree-ssa-propagate.c
8266         (substitute_and_fold_dom_walker::before_dom_children): Allow
8267         following single-use edges when folding stmts we propagated into.
8268
8269 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8270             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8271             Anna Tikhonova  <anna.tikhonova@intel.com>
8272             Ilya Tocar  <ilya.tocar@intel.com>
8273             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8274             Ilya Verbin  <ilya.verbin@intel.com>
8275             Kirill Yukhin  <kirill.yukhin@intel.com>
8276             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8277
8278         * config/i386/avx512bwintrin.h: New.
8279         * config/i386/avx512dqintrin.h: Ditto.
8280         * config/i386/avx512vlbwintrin.h: Ditto.
8281         * config/i386/avx512vldqintrin.h: Ditto.
8282         * config/i386/avx512vlintrin.h: Ditto.
8283         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
8284         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
8285
8286 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8288             Anna Tikhonova  <anna.tikhonova@intel.com>
8289             Ilya Tocar  <ilya.tocar@intel.com>
8290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8291             Ilya Verbin  <ilya.verbin@intel.com>
8292             Kirill Yukhin  <kirill.yukhin@intel.com>
8293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8294
8295         * config/i386/i386.c
8296         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
8297         avx_shufpd256_mask, avx_vpermilv2df_mask.
8298
8299 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8300             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8301             Anna Tikhonova  <anna.tikhonova@intel.com>
8302             Ilya Tocar  <ilya.tocar@intel.com>
8303             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8304             Ilya Verbin  <ilya.verbin@intel.com>
8305             Kirill Yukhin  <kirill.yukhin@intel.com>
8306             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8307
8308         * config/i386/i386.c
8309         (ix86_init_mmx_sse_builtins):
8310         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
8311         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
8312         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
8313         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
8314         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
8315         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
8316         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
8317         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
8318         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
8319         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
8320         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
8321         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
8322         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
8323         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
8324         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
8325         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
8326         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
8327         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
8328
8329 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8330             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8331             Anna Tikhonova  <anna.tikhonova@intel.com>
8332             Ilya Tocar  <ilya.tocar@intel.com>
8333             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8334             Ilya Verbin  <ilya.verbin@intel.com>
8335             Kirill Yukhin  <kirill.yukhin@intel.com>
8336             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8337
8338         * config/i386/i386.c
8339         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
8340         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
8341         IX86_BUILTIN_GATHER3ALTDIV8SI.
8342         (ix86_expand_builtin):
8343         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
8344         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
8345         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
8346         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
8347         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
8348         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
8349         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
8350         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
8351         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
8352         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
8353         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
8354         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
8355         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
8356         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
8357         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
8358         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
8359         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
8360         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
8361         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
8362         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
8363
8364 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8365             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8366             Anna Tikhonova  <anna.tikhonova@intel.com>
8367             Ilya Tocar  <ilya.tocar@intel.com>
8368             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8369             Ilya Verbin  <ilya.verbin@intel.com>
8370             Kirill Yukhin  <kirill.yukhin@intel.com>
8371             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8372
8373         * config/i386/i386-builtin-types.def
8374         (SHORT): New.
8375         (V32HI): Ditto.
8376         (V12QI): Ditto.
8377         (V14QI): Ditto.
8378         (V32SI): Ditto.
8379         (V8UDI): Ditto.
8380         (V16USI): Ditto.
8381         (V32UHI): Ditto.
8382         (PSHORT): Ditto.
8383         (PV32QI): Ditto.
8384         (PV32HI): Ditto.
8385         (PV64QI): Ditto.
8386         (PCV8HI): Ditto.
8387         (PCV16QI): Ditto.
8388         (PCV16HI): Ditto.
8389         (PCV32QI): Ditto.
8390         (PCV32HI): Ditto.
8391         (PCV64QI): Ditto.
8392         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
8393         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
8394         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
8395         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
8396         (V16SF_FTYPE_V16HI): Ditto.
8397         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
8398         (V16SF_FTYPE_V16SI): Ditto.
8399         (V4DI_FTYPE_V4DI): Ditto.
8400         (V16SI_FTYPE_V16SF): Ditto.
8401         (V8DI_FTYPE_PV2DI): Ditto.
8402         (V8DF_FTYPE_PV2DF): Ditto.
8403         (V4DI_FTYPE_PV2DI): Ditto.
8404         (V4DF_FTYPE_PV2DF): Ditto.
8405         (V16SI_FTYPE_PV2SI): Ditto.
8406         (V16SF_FTYPE_PV2SF): Ditto.
8407         (V8SF_FTYPE_FLOAT): Ditto.
8408         (V4SF_FTYPE_FLOAT): Ditto.
8409         (V4DF_FTYPE_DOUBLE): Ditto.
8410         (V8SF_FTYPE_PV4SF): Ditto.
8411         (V8SI_FTYPE_PV4SI): Ditto.
8412         (V4SI_FTYPE_PV2SI): Ditto.
8413         (V8SF_FTYPE_PV2SF): Ditto.
8414         (V8SI_FTYPE_PV2SI): Ditto.
8415         (V16SF_FTYPE_PV8SF): Ditto.
8416         (V16SI_FTYPE_PV8SI): Ditto.
8417         (V8DI_FTYPE_V8SF): Ditto.
8418         (V4DI_FTYPE_V4SF): Ditto.
8419         (V2DI_FTYPE_V4SF): Ditto.
8420         (V64QI_FTYPE_QI): Ditto.
8421         (V32HI_FTYPE_HI): Ditto.
8422         (V16UHI_FTYPE_V16UHI): Ditto.
8423         (V32UHI_FTYPE_V32UHI): Ditto.
8424         (V2UDI_FTYPE_V2UDI): Ditto.
8425         (V4UDI_FTYPE_V4UDI): Ditto.
8426         (V8UDI_FTYPE_V8UDI): Ditto.
8427         (V4USI_FTYPE_V4USI): Ditto.
8428         (V16USI_FTYPE_V16USI): Ditto.
8429         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
8430         (V2DF_FTYPE_V8DF_INT): Ditto.
8431         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
8432         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
8433         (V8DF_FTYPE_V8DF_INT): Ditto.
8434         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
8435         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
8436         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
8437         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
8438         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
8439         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
8440         (V8DI_FTYPE_V8DI_INT): Ditto.
8441         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
8442         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
8443         (V8SF_FTYPE_V16SF_INT): Ditto.
8444         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
8445         (V64QI_FTYPE_V32HI_V32HI): Ditto.
8446         (V32HI_FTYPE_V16SI_V16SI): Ditto.
8447         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
8448         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
8449         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
8450         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
8451         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
8452         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
8453         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
8454         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
8455         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
8456         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
8457         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
8458         (V32HI_FTYPE_V64QI_V64QI): Ditto.
8459         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
8460         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
8461         (V32HI_FTYPE_V32HI_V32HI): Ditto.
8462         (V32HI_FTYPE_V32HI_INT): Ditto.
8463         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
8464         (V16SI_FTYPE_V32HI_V32HI): Ditto.
8465         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
8466         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
8467         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
8468         (V8SI_FTYPE_V16SI_INT): Ditto.
8469         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
8470         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
8471         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
8472         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
8473         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
8474         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
8475         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
8476         (V8DI_FTYPE_V16SI_V16SI): Ditto.
8477         (V8DI_FTYPE_V64QI_V64QI): Ditto.
8478         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
8479         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
8480         (V2DI_FTYPE_V8DI_INT): Ditto.
8481         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
8482         (QI_FTYPE_QI): Ditto.
8483         (SI_FTYPE_SI): Ditto.
8484         (DI_FTYPE_DI): Ditto.
8485         (HI_FTYPE_V16QI): Ditto.
8486         (SI_FTYPE_V32QI): Ditto.
8487         (DI_FTYPE_V64QI): Ditto.
8488         (QI_FTYPE_V8HI): Ditto.
8489         (HI_FTYPE_V16HI): Ditto.
8490         (SI_FTYPE_V32HI): Ditto.
8491         (QI_FTYPE_V4SI): Ditto.
8492         (QI_FTYPE_V8SI): Ditto.
8493         (HI_FTYPE_V16SI): Ditto.
8494         (QI_FTYPE_V2DI): Ditto.
8495         (QI_FTYPE_V4DI): Ditto.
8496         (QI_FTYPE_V8DI): Ditto.
8497         (V16QI_FTYPE_HI): Ditto.
8498         (V32QI_FTYPE_SI): Ditto.
8499         (V64QI_FTYPE_DI): Ditto.
8500         (V8HI_FTYPE_QI): Ditto.
8501         (V16HI_FTYPE_HI): Ditto.
8502         (V32HI_FTYPE_SI): Ditto.
8503         (V4SI_FTYPE_QI): Ditto.
8504         (V4SI_FTYPE_HI): Ditto.
8505         (V8SI_FTYPE_QI): Ditto.
8506         (V8SI_FTYPE_HI): Ditto.
8507         (V2DI_FTYPE_QI): Ditto.
8508         (V4DI_FTYPE_QI): Ditto.
8509         (QI_FTYPE_QI_QI): Ditto.
8510         (SI_FTYPE_SI_SI): Ditto.
8511         (DI_FTYPE_DI_DI): Ditto.
8512         (QI_FTYPE_QI_INT): Ditto.
8513         (SI_FTYPE_SI_INT): Ditto.
8514         (DI_FTYPE_DI_INT): Ditto.
8515         (HI_FTYPE_V16QI_V16QI): Ditto.
8516         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
8517         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
8518         (SI_FTYPE_V32QI_V32QI): Ditto.
8519         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
8520         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
8521         (DI_FTYPE_V64QI_V64QI): Ditto.
8522         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
8523         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
8524         (QI_FTYPE_V8HI_V8HI): Ditto.
8525         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
8526         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
8527         (HI_FTYPE_V16HI_V16HI): Ditto.
8528         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
8529         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
8530         (SI_FTYPE_V32HI_V32HI): Ditto.
8531         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
8532         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
8533         (QI_FTYPE_V4SI_V4SI): Ditto.
8534         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
8535         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
8536         (QI_FTYPE_V8SI_V8SI): Ditto.
8537         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
8538         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
8539         (QI_FTYPE_V2DI_V2DI): Ditto.
8540         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
8541         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
8542         (QI_FTYPE_V4DI_V4DI): Ditto.
8543         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
8544         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
8545         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
8546         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
8547         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
8548         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
8549         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
8550         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
8551         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
8552         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
8553         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
8554         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
8555         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
8556         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
8557         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
8558         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
8559         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
8560         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
8561         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
8562         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
8563         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
8564         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
8565         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
8566         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
8567         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
8568         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
8569         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
8570         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
8571         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
8572         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
8573         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
8574         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
8575         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
8576         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
8577         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
8578         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
8579         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
8580         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
8581         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
8582         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
8583         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
8584         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
8585         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
8586         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
8587         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
8588         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
8589         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
8590         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
8591         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
8592         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
8593         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
8594         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
8595         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
8596         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
8597         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
8598         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
8599         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
8600         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
8601         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
8602         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
8603         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
8604         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
8605         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
8606         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
8607         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
8608         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
8609         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
8610         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
8611         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
8612         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
8613         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
8614         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
8615         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
8616         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
8617         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
8618         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
8619         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
8620         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
8621         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
8622         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
8623         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
8624         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
8625         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
8626         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
8627         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
8628         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
8629         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
8630         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
8631         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
8632         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
8633         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
8634         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
8635         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
8636         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
8637         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
8638         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
8639         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
8640         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
8641         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
8642         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
8643         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
8644         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
8645         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
8646         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
8647         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
8648         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
8649         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
8650         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
8651         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
8652         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
8653         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
8654         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
8655         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
8656         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
8657         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
8658         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
8659         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
8660         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
8661         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
8662         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
8663         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
8664         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
8665         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
8666         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
8667         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
8668         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
8669         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
8670         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
8671         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
8672         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
8673         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
8674         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
8675         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
8676         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
8677         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
8678         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
8679         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
8680         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
8681         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
8682         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
8683         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
8684         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
8685         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
8686         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
8687         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
8688         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
8689         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
8690         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
8691         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
8692         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
8693         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
8694         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
8695         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
8696         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
8697         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
8698         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
8699         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
8700         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
8701         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
8702         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
8703         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
8704         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
8705         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
8706         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
8707         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
8708         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
8709         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
8710         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
8711         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
8712         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
8713         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
8714         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
8715         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
8716         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
8717         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
8718         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
8719         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
8720         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
8721         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
8722         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
8723         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
8724         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
8725         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
8726         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
8727         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
8728         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
8729         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
8730         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
8731         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
8732         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
8733         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
8734         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
8735         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
8736         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
8737         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
8738         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
8739         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
8740         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
8741         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
8742         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
8743         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
8744         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
8745         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
8746         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
8747         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
8748         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
8749         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
8750         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
8751         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
8752         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
8753         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
8754         (QI_FTYPE_V8DF_INT): Ditto.
8755         (QI_FTYPE_V4DF_INT): Ditto.
8756         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
8757         (QI_FTYPE_V2DF_INT): Ditto.
8758         (HI_FTYPE_V16SF_INT): Ditto.
8759         (QI_FTYPE_V8SF_INT): Ditto.
8760         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
8761         (QI_FTYPE_V4SF_INT): Ditto.
8762         (QI_FTYPE_V8DF_INT_QI): Ditto.
8763         (QI_FTYPE_V4DF_INT_QI): Ditto.
8764         (QI_FTYPE_V2DF_INT_QI): Ditto.
8765         (HI_FTYPE_V16SF_INT_HI): Ditto.
8766         (QI_FTYPE_V8SF_INT_QI): Ditto.
8767         (QI_FTYPE_V4SF_INT_QI): Ditto.
8768         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
8769         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
8770         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
8771         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
8772         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
8773         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
8774         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
8775         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
8776         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
8777         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
8778         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
8779         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
8780         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
8781         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
8782         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
8783         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
8784         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
8785         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
8786         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
8787         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
8788         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
8789         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
8790         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
8791         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
8792         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
8793         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
8794         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
8795         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
8796         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
8797         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
8798         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
8799         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
8800         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
8801         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
8802         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
8803         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
8804         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
8805         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
8806         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
8807         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
8808         (V8DI_FTYPE_V8DI_INT): Ditto.
8809         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
8810         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
8811         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
8812         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
8813         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
8814         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
8815         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
8816         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
8817         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
8818         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
8819         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
8820         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
8821         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
8822         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
8823         * config/i386/i386.c (ix86_builtins):
8824         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
8825         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
8826         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
8827         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
8828         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
8829         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
8830         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
8831         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
8832         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
8833         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
8834         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
8835         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
8836         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
8837         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
8838         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
8839         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
8840         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
8841         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
8842         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
8843         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
8844         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
8845         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
8846         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
8847         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
8848         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
8849         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
8850         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
8851         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
8852         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
8853         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
8854         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
8855         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
8856         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
8857         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
8858         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
8859         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
8860         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
8861         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
8862         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
8863         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
8864         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
8865         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
8866         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
8867         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
8868         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
8869         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
8870         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
8871         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
8872         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
8873         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
8874         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
8875         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
8876         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
8877         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
8878         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
8879         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
8880         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
8881         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
8882         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
8883         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
8884         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
8885         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
8886         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
8887         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
8888         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
8889         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
8890         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
8891         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
8892         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
8893         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
8894         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
8895         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
8896         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
8897         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
8898         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
8899         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
8900         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
8901         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
8902         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
8903         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
8904         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
8905         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
8906         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
8907         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
8908         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
8909         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
8910         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
8911         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
8912         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
8913         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
8914         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
8915         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
8916         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
8917         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
8918         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
8919         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
8920         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
8921         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
8922         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
8923         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
8924         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
8925         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
8926         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
8927         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
8928         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
8929         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
8930         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
8931         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
8932         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
8933         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
8934         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
8935         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
8936         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
8937         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
8938         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
8939         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
8940         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
8941         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
8942         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
8943         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
8944         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
8945         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
8946         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
8947         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
8948         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
8949         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
8950         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
8951         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
8952         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
8953         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
8954         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
8955         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
8956         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
8957         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
8958         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
8959         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
8960         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
8961         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
8962         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
8963         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
8964         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
8965         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
8966         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
8967         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
8968         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
8969         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
8970         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
8971         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
8972         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
8973         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
8974         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
8975         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
8976         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
8977         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
8978         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
8979         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
8980         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
8981         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
8982         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
8983         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
8984         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
8985         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
8986         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
8987         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
8988         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
8989         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
8990         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
8991         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
8992         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
8993         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
8994         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
8995         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
8996         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
8997         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
8998         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
8999         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
9000         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
9001         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
9002         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
9003         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
9004         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
9005         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
9006         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
9007         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
9008         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
9009         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
9010         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
9011         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
9012         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
9013         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
9014         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
9015         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
9016         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
9017         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
9018         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
9019         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
9020         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
9021         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
9022         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
9023         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
9024         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
9025         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
9026         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
9027         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
9028         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
9029         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
9030         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
9031         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
9032         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
9033         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
9034         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
9035         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
9036         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
9037         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
9038         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
9039         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
9040         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
9041         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
9042         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
9043         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
9044         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
9045         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
9046         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
9047         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
9048         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
9049         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
9050         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
9051         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
9052         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
9053         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
9054         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
9055         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
9056         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
9057         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
9058         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
9059         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
9060         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
9061         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
9062         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
9063         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
9064         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
9065         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
9066         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
9067         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
9068         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
9069         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
9070         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
9071         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
9072         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
9073         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
9074         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
9075         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
9076         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
9077         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
9078         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
9079         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
9080         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
9081         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
9082         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
9083         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
9084         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
9085         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
9086         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
9087         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
9088         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
9089         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
9090         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
9091         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
9092         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
9093         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
9094         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
9095         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
9096         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
9097         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
9098         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
9099         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
9100         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
9101         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
9102         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
9103         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
9104         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
9105         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
9106         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
9107         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
9108         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
9109         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
9110         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
9111         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
9112         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
9113         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
9114         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
9115         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
9116         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
9117         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
9118         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
9119         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
9120         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
9121         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
9122         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
9123         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
9124         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
9125         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
9126         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
9127         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
9128         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
9129         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
9130         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
9131         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
9132         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
9133         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
9134         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
9135         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
9136         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
9137         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
9138         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
9139         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
9140         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
9141         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
9142         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
9143         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
9144         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
9145         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
9146         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
9147         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
9148         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
9149         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
9150         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
9151         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
9152         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
9153         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
9154         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
9155         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
9156         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
9157         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
9158         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
9159         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
9160         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
9161         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
9162         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
9163         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
9164         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
9165         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
9166         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
9167         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
9168         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
9169         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
9170         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
9171         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
9172         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
9173         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
9174         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
9175         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
9176         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
9177         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
9178         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
9179         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
9180         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
9181         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
9182         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
9183         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
9184         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
9185         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
9186         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
9187         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
9188         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
9189         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
9190         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
9191         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
9192         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
9193         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
9194         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
9195         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
9196         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
9197         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
9198         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
9199         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
9200         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
9201         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
9202         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
9203         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
9204         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
9205         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
9206         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
9207         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
9208         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
9209         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
9210         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
9211         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
9212         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
9213         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
9214         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
9215         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
9216         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
9217         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
9218         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
9219         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
9220         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
9221         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
9222         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
9223         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
9224         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
9225         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
9226         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
9227         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
9228         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
9229         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
9230         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
9231         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
9232         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
9233         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
9234         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
9235         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
9236         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
9237         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
9238         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
9239         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
9240         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
9241         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
9242         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
9243         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
9244         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
9245         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
9246         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
9247         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
9248         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
9249         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
9250         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
9251         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
9252         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
9253         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
9254         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
9255         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
9256         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
9257         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
9258         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
9259         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
9260         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
9261         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
9262         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
9263         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
9264         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
9265         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
9266         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
9267         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
9268         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
9269         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
9270         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
9271         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
9272         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
9273         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
9274         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
9275         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
9276         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
9277         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
9278         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
9279         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
9280         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
9281         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
9282         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
9283         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
9284         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
9285         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
9286         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
9287         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
9288         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
9289         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
9290         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
9291         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
9292         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
9293         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
9294         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
9295         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
9296         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
9297         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
9298         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
9299         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
9300         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
9301         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
9302         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
9303         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
9304         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
9305         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
9306         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
9307         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
9308         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
9309         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
9310         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
9311         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
9312         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
9313         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
9314         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
9315         (bdesc_special_args):
9316         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
9317         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
9318         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
9319         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
9320         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
9321         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
9322         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
9323         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
9324         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
9325         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
9326         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
9327         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
9328         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
9329         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
9330         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
9331         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
9332         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
9333         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
9334         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
9335         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
9336         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
9337         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
9338         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
9339         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
9340         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
9341         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
9342         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
9343         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
9344         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
9345         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
9346         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
9347         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
9348         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
9349         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
9350         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
9351         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
9352         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
9353         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
9354         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
9355         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
9356         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
9357         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
9358         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
9359         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
9360         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
9361         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
9362         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
9363         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
9364         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
9365         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
9366         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
9367         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
9368         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
9369         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
9370         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
9371         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
9372         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
9373         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
9374         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
9375         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
9376         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
9377         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
9378         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
9379         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
9380         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
9381         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
9382         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
9383         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
9384         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
9385         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
9386         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
9387         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
9388         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
9389         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
9390         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
9391         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
9392         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
9393         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
9394         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
9395         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
9396         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
9397         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
9398         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
9399         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
9400         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
9401         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
9402         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
9403         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
9404         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
9405         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
9406         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
9407         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
9408         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
9409         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
9410         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
9411         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
9412         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
9413         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
9414         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
9415         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
9416         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
9417         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
9418         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
9419         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
9420         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
9421         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
9422         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
9423         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
9424         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
9425         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
9426         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
9427         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
9428         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
9429         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
9430         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
9431         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
9432         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
9433         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
9434         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
9435         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
9436         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
9437         __builtin_ia32_reducesd, __builtin_ia32_reducess,
9438         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
9439         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
9440         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
9441         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
9442         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
9443         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
9444         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
9445         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
9446         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
9447         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
9448         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
9449         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
9450         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
9451         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
9452         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
9453         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
9454         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
9455         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
9456         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
9457         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
9458         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
9459         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
9460         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
9461         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
9462         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
9463         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
9464         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
9465         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
9466         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
9467         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
9468         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
9469         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
9470         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
9471         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
9472         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
9473         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
9474         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
9475         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
9476         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
9477         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
9478         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
9479         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
9480         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
9481         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
9482         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
9483         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
9484         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
9485         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
9486         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
9487         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
9488         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
9489         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
9490         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
9491         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
9492         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
9493         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
9494         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
9495         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
9496         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
9497         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
9498         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
9499         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
9500         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
9501         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
9502         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
9503         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
9504         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
9505         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
9506         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
9507         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
9508         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
9509         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
9510         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
9511         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
9512         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
9513         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
9514         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
9515         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
9516         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
9517         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
9518         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
9519         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
9520         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
9521         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
9522         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
9523         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
9524         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
9525         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
9526         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
9527         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
9528         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
9529         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
9530         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
9531         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
9532         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
9533         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
9534         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
9535         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
9536         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
9537         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
9538         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
9539         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
9540         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
9541         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
9542         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
9543         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
9544         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
9545         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
9546         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
9547         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
9548         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
9549         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
9550         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
9551         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
9552         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
9553         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
9554         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
9555         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
9556         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
9557         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
9558         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
9559         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
9560         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
9561         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
9562         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
9563         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
9564         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
9565         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
9566         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
9567         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
9568         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
9569         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
9570         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
9571         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
9572         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
9573         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
9574         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
9575         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
9576         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
9577         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
9578         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
9579         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
9580         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
9581         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
9582         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
9583         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
9584         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
9585         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
9586         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
9587         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
9588         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
9589         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
9590         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
9591         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
9592         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
9593         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
9594         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
9595         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
9596         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
9597         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
9598         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
9599         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
9600         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
9601         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
9602         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
9603         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
9604         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
9605         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
9606         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
9607         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
9608         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
9609         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
9610         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
9611         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
9612         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
9613         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
9614         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
9615         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
9616         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
9617         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
9618         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
9619         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
9620         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
9621         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
9622         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
9623         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
9624         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
9625         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
9626         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
9627         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
9628         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
9629         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
9630         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
9631         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
9632         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
9633         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
9634         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
9635         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
9636         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
9637         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
9638         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
9639         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
9640         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
9641         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
9642         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
9643         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
9644         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
9645         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
9646         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
9647         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
9648         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
9649         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
9650         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
9651         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
9652         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
9653         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
9654         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
9655         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
9656         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
9657         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
9658         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
9659         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
9660         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
9661         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
9662         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
9663         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
9664         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
9665         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
9666         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
9667         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
9668         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
9669         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
9670         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
9671         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
9672         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
9673         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
9674         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
9675         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
9676         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
9677         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
9678         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
9679         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
9680         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
9681         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
9682         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
9683         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
9684         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
9685         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
9686         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
9687         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
9688         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
9689         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
9690         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
9691         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
9692         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
9693         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
9694         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
9695         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
9696         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
9697         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
9698         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
9699         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
9700         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
9701         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
9702         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
9703         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
9704         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
9705         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
9706         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
9707         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
9708         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
9709         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
9710         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
9711         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
9712         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
9713         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
9714         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
9715         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
9716         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
9717         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
9718         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
9719         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
9720         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
9721         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
9722         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
9723         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
9724         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
9725         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
9726         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
9727         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
9728         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
9729         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
9730         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
9731         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
9732         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
9733         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
9734         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
9735         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
9736         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
9737         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
9738         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
9739         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
9740         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
9741         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
9742         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
9743         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
9744         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
9745         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
9746         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
9747         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
9748         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
9749         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
9750         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
9751         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
9752         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
9753         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
9754         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
9755         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
9756         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
9757         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
9758         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
9759         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
9760         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
9761         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
9762         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
9763         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
9764         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
9765         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
9766         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
9767         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
9768         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
9769         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
9770         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
9771         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
9772         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
9773         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
9774         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
9775         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
9776         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
9777         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
9778         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
9779         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
9780         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
9781         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
9782         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
9783         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
9784         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
9785         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
9786         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
9787         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
9788         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
9789         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
9790         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
9791         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
9792         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
9793         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
9794         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
9795         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
9796         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
9797         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
9798         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
9799         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
9800         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
9801         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
9802         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
9803         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
9804         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
9805         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
9806         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
9807         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
9808         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
9809         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
9810         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
9811         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
9812         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
9813         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
9814         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
9815         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
9816         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
9817         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
9818         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
9819         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
9820         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
9821         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
9822         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
9823         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
9824         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
9825         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
9826         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
9827         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
9828         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
9829         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
9830         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
9831         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
9832         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
9833         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
9834         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
9835         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
9836         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
9837         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
9838         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
9839         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
9840         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
9841         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
9842         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
9843         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
9844         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
9845         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
9846         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
9847         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
9848         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
9849         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
9850         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
9851         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
9852         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
9853         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
9854         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
9855         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
9856         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
9857         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
9858         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
9859         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
9860         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
9861         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
9862         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
9863         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
9864         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
9865         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
9866         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
9867         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
9868         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
9869         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
9870         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
9871         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
9872         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
9873         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
9874         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
9875         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
9876         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
9877         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
9878         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
9879         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
9880         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
9881         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
9882         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
9883         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
9884         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
9885         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
9886         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
9887         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
9888         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
9889         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
9890         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
9891         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
9892         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
9893         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
9894         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
9895         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
9896         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
9897         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
9898         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
9899         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
9900         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
9901         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
9902         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
9903         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
9904         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
9905         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
9906         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
9907         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
9908         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
9909         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
9910         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
9911         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
9912         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
9913         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
9914         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
9915         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
9916         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
9917         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
9918         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
9919         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
9920         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
9921         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
9922         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
9923         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
9924         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
9925
9926 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
9927
9928         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
9929         type for the left shift in CASE_CONVERT case.
9930
9931 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9932
9933         * asan.h (asan_intercepted_p): New function.
9934         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
9935         hash value construction.  Call iterative_hash_expr instead of explicit
9936         hash building.
9937         (asan_mem_ref_hasher::equal): Change condition.
9938         (has_mem_ref_been_instrumented): Likewise.
9939         (update_mem_ref_hash_table): Likewise.
9940         (maybe_update_mem_ref_hash_table): New function.
9941         (instrument_strlen_call): Removed.
9942         (get_mem_refs_of_builtin_call): Handle new parameter.
9943         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
9944         of instrument_mem_region_access if intercepted_p is true.
9945         (instrument_mem_region_access): Instrument only base with len instead of
9946         base and end with 1.
9947         (build_check_stmt): Remove start_instrumented and end_instrumented
9948         parameters.
9949         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
9950         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
9951         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
9952         * builtins.c (expand_builtin): Include asan.h.  Don't expand string/memory
9953         builtin functions that have interceptors if ASan is enabled.
9954
9955 2014-10-28  Richard Biener  <rguenther@suse.de>
9956
9957         PR middle-end/63665
9958         * fold-const.c (fold_comparison): Properly guard simplifying
9959         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
9960
9961 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
9962
9963         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
9964         * fold-const.c (const_binop): Likewise.
9965         * cfgexpand.c (expand_debug_expr): Likewise.
9966         * tree-inline.c (estimate_operator_cost): Likewise.
9967         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9968         * optabs.c (optab_for_tree_code): Likewise.
9969         (expand_vec_shift_expr): Likewise, update comment.
9970         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
9971         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
9972         * optabs.def: Remove vec_shl_optab.
9973         * doc/md.texi: Remove references to vec_shr_m.
9974
9975 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
9976
9977         * asan.c (report_error_func): Add noabort path.
9978         (check_func): Ditto.  Formatting.
9979         (asan_expand_check_ifn): Handle noabort path.
9980         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
9981         to default value.
9982         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
9983         * opts.c (finish_options): Reword comment.
9984         * sanitizer.def: Add noabort ASan builtins.
9985
9986 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
9987
9988         * asan.c (set_asan_shadow_offset): New function.
9989         (asan_shadow_offset): Likewise.
9990         (asan_emit_stack_protection): Call asan_shadow_offset.
9991         (build_shadow_mem_access): Likewise.
9992         * asan.h (set_asan_shadow_offset): Declare.
9993         * common.opt (fasan-shadow-offset): New option.
9994         (frandom-seed): Fixed parameter name.
9995         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
9996         (frandom-seed): Fixed parameter name.
9997         * opts-global.c (handle_common_deferred_options): Handle
9998         -fasan-shadow-offset.
9999         * opts.c (common_handle_option): Likewise.
10000
10001 2014-10-27  Jiong Wang <jiong.wang@arm.com>
10002
10003         PR target/63442
10004         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
10005
10006 2014-10-27  DJ Delorie  <dj@redhat.com>
10007
10008         * tree.c (build_common_tree_nodes): Don't even store the
10009         __int128 types if they're not supported.
10010
10011 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10012
10013         * config/i386/i386.c (ix86_loop_memcount): Delete.
10014         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
10015
10016 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10017
10018         * config/i386/i386.c (find_constant_1): Delete.
10019         (find_constant): Use FOR_EACH_SUBRTX.
10020
10021 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10022
10023         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
10024         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
10025
10026 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10027
10028         * config/i386/i386.c: Include rtl-iter.h
10029         (ix86_check_avx256_register): Take a const_rtx and return a bool.
10030         (ix86_check_avx256_stores): Update call accordingly.
10031         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
10032         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
10033
10034 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10035
10036         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
10037         Take an rtx and return a bool.
10038         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
10039         Use FOR_EACH_SUBRTX_VAR.
10040         * config/alpha/predicates.md (some_small_symbolic_operand): Update
10041         accordingly.
10042
10043 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10044
10045         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
10046         a bool.
10047         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
10048         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
10049
10050 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10051
10052         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
10053         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
10054
10055 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10056
10057         * config/alpha/alpha.c: Include rtl-iter.h.
10058         (split_small_symbolic_operand_1): Delete.
10059         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
10060
10061 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10062
10063         * config/s390/s390.c: Include rtl-iter.h.
10064         (check_dpu): Delete.
10065         (s390_loop_unroll_adjust): Only iterate over patterns.
10066         Use FOR_EACH_SUBRTX.
10067
10068 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10069
10070         * config/spu/spu.c: Include rtl-iter.h
10071         (ea_symbol_ref): Replace with...
10072         (ea_symbol_ref_p): ...this new function.
10073         (spu_legitimate_address_p): Update call accordingly.
10074         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
10075
10076 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
10077             Tom Tromey  <tromey@redhat.com>
10078
10079         * aclocal.m4, configure: Rebuild.
10080         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
10081         * configure.ac: Use GCC_ENABLE_PLUGINS.
10082         * stor-layout.c (finish_bitfield_layout): Now public.  Change
10083         argument type to 'tree'.
10084         (finish_record_layout): Update.
10085         * stor-layout.h (finish_bitfield_layout): Declare.
10086
10087 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
10088
10089         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
10090         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
10091         Restore, enable for bigendian, update to use __builtin..._scal...
10092
10093 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
10094
10095         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
10096         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
10097         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
10098         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
10099
10100         * config/aarch64/aarch64-simd.md
10101         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
10102         (reduc_<maxmin_uns>_internal<mode>): ...this.
10103         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
10104         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
10105
10106         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
10107         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
10108         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
10109
10110         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
10111         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
10112         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
10113         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
10114         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
10115         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
10116         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
10117         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
10118
10119 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
10120
10121         * config/aarch64/aarch64-simd-builtins.def
10122         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
10123         Remove.
10124         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
10125
10126         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
10127         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
10128
10129         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
10130         (aarch64_reduc_plus_internal<mode>): ...this.
10131
10132         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
10133         (aarch64_reduc_plus_internalv2si): ...this.
10134
10135         (reduc_splus_<mode>/V2F): Rename to...
10136         (aarch64_reduc_plus_internal<mode>): ...this.
10137
10138         * config/aarch64/iterators.md
10139         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
10140         (UNSPEC_ADDV): New.
10141         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
10142
10143         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
10144         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
10145         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
10146         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
10147         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
10148
10149 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
10150
10151         PR tree-optimization/61114
10152         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
10153         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
10154
10155         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
10156         back to old reduc_... + BIT_FIELD_REF only if not.
10157
10158         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
10159         return the reduce-to-scalar (reduc_..._scal) optab.
10160         (scalar_reduc_to_vector): New.
10161
10162         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
10163         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
10164         New.
10165
10166         * optabs.h (scalar_reduc_to_vector): Declare.
10167
10168         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
10169         to either scalar or vector.
10170
10171 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
10172
10173         PR tree-optimization/61114
10174         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
10175         extract_bit_field around optab result.
10176
10177         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
10178         scalar not vector.
10179
10180         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
10181         for REDUC_{MIN,MAX,PLUS}_EXPR.
10182
10183         * tree-vect-loop.c (vect_analyze_loop): Update comment.
10184         (vect_create_epilog_for_reduction): For direct vector reduction, use
10185         result of tree code directly without extract_bit_field.
10186
10187         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
10188         comment.
10189
10190 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
10191
10192         * basic-block.h: Remove all includes.
10193         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
10194         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
10195         * Makefile.in (GTFILES): Add cfg.h to list.
10196         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
10197         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
10198         * genconditions.c (write_header): Add predict.h and basic-block.h to
10199         lits of includes.
10200         * genemit.c (main): Ditto.
10201         * genpreds.c (write_insn_preds_c): Ditto.
10202         * genrecog.c (write_header): Ditto.
10203         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
10204         to list of includes.
10205         * alias.c: Adjust include files.
10206         * asan.c: Ditto.
10207         * auto-inc-dec.c: Ditto.
10208         * auto-profile.c: Ditto.
10209         * bb-reorder.c: Ditto.
10210         * bt-load.c: Ditto.
10211         * builtins.c: Ditto.
10212         * caller-save.c: Ditto.
10213         * calls.c: Ditto.
10214         * cfg.c: Ditto.
10215         * cfganal.c: Ditto.
10216         * cfgbuild.c: Ditto.
10217         * cfgcleanup.c: Ditto.
10218         * cfgexpand.c: Ditto.
10219         * cfghooks.c: Ditto.
10220         * cfgloop.c: Ditto.
10221         * cfgloopanal.c: Ditto.
10222         * cfgloopmanip.c: Ditto.
10223         * cfgrtl.c: Ditto.
10224         * cgraphbuild.c: Ditto.
10225         * cgraphclones.c: Ditto.
10226         * cgraphunit.c: Ditto.
10227         * combine-stack-adj.c: Ditto.
10228         * combine.c: Ditto.
10229         * compare-elim.c: Ditto.
10230         * coverage.c: Ditto.
10231         * cprop.c: Ditto.
10232         * cse.c: Ditto.
10233         * cselib.c: Ditto.
10234         * data-streamer-in.c: Ditto.
10235         * data-streamer-out.c: Ditto.
10236         * data-streamer.c: Ditto.
10237         * dce.c: Ditto.
10238         * ddg.c: Ditto.
10239         * ddg.h: Ditto.
10240         * df-core.c: Ditto.
10241         * df-problems.c: Ditto.
10242         * df-scan.c: Ditto.
10243         * df.h: Ditto.
10244         * dojump.c: Ditto.
10245         * dominance.c: Ditto.
10246         * domwalk.c: Ditto.
10247         * dse.c: Ditto.
10248         * dwarf2cfi.c: Ditto.
10249         * emit-rtl.c: Ditto.
10250         * et-forest.c: Ditto.
10251         * except.c: Ditto.
10252         * expmed.c: Ditto.
10253         * expr.c: Ditto.
10254         * final.c: Ditto.
10255         * fold-const.c: Ditto.
10256         * function.c: Ditto.
10257         * fwprop.c: Ditto.
10258         * gcc-plugin.h: Ditto.
10259         * gcse.c: Ditto.
10260         * generic-match-head.c: Ditto.
10261         * ggc-page.c: Ditto.
10262         * gimple-builder.c: Ditto.
10263         * gimple-expr.c: Ditto.
10264         * gimple-fold.c: Ditto.
10265         * gimple-iterator.c: Ditto.
10266         * gimple-low.c: Ditto.
10267         * gimple-match-head.c: Ditto.
10268         * gimple-pretty-print.c: Ditto.
10269         * gimple-ssa-isolate-paths.c: Ditto.
10270         * gimple-ssa-strength-reduction.c: Ditto.
10271         * gimple-streamer-in.c: Ditto.
10272         * gimple-streamer-out.c: Ditto.
10273         * gimple-streamer.h: Ditto.
10274         * gimple-walk.c: Ditto.
10275         * gimple.c: Ditto.
10276         * gimplify-me.c: Ditto.
10277         * gimplify.c: Ditto.
10278         * graph.c: Ditto.
10279         * graphite-blocking.c: Ditto.
10280         * graphite-clast-to-gimple.c: Ditto.
10281         * graphite-dependences.c: Ditto.
10282         * graphite-interchange.c: Ditto.
10283         * graphite-isl-ast-to-gimple.c: Ditto.
10284         * graphite-optimize-isl.c: Ditto.
10285         * graphite-poly.c: Ditto.
10286         * graphite-scop-detection.c: Ditto.
10287         * graphite-sese-to-poly.c: Ditto.
10288         * graphite.c: Ditto.
10289         * haifa-sched.c: Ditto.
10290         * hw-doloop.c: Ditto.
10291         * ifcvt.c: Ditto.
10292         * init-regs.c: Ditto.
10293         * internal-fn.c: Ditto.
10294         * ipa-cp.c: Ditto.
10295         * ipa-devirt.c: Ditto.
10296         * ipa-icf-gimple.c: Ditto.
10297         * ipa-icf.c: Ditto.
10298         * ipa-inline-analysis.c: Ditto.
10299         * ipa-inline.c: Ditto.
10300         * ipa-polymorphic-call.c: Ditto.
10301         * ipa-profile.c: Ditto.
10302         * ipa-prop.c: Ditto.
10303         * ipa-pure-const.c: Ditto.
10304         * ipa-reference.c: Ditto.
10305         * ipa-split.c: Ditto.
10306         * ipa-utils.c: Ditto.
10307         * ipa.c: Ditto.
10308         * ira-build.c: Ditto.
10309         * ira-color.c: Ditto.
10310         * ira-conflicts.c: Ditto.
10311         * ira-costs.c: Ditto.
10312         * ira-emit.c: Ditto.
10313         * ira-lives.c: Ditto.
10314         * ira.c: Ditto.
10315         * jump.c: Ditto.
10316         * lcm.c: Ditto.
10317         * loop-doloop.c: Ditto.
10318         * loop-init.c: Ditto.
10319         * loop-invariant.c: Ditto.
10320         * loop-iv.c: Ditto.
10321         * loop-unroll.c: Ditto.
10322         * lower-subreg.c: Ditto.
10323         * lra-assigns.c: Ditto.
10324         * lra-coalesce.c: Ditto.
10325         * lra-constraints.c: Ditto.
10326         * lra-eliminations.c: Ditto.
10327         * lra-lives.c: Ditto.
10328         * lra-spills.c: Ditto.
10329         * lra.c: Ditto.
10330         * lto-cgraph.c: Ditto.
10331         * lto-compress.c: Ditto.
10332         * lto-opts.c: Ditto.
10333         * lto-section-in.c: Ditto.
10334         * lto-section-out.c: Ditto.
10335         * lto-streamer-in.c: Ditto.
10336         * lto-streamer-out.c: Ditto.
10337         * lto-streamer.c: Ditto.
10338         * mcf.c: Ditto.
10339         * mode-switching.c: Ditto.
10340         * modulo-sched.c: Ditto.
10341         * omp-low.c: Ditto.
10342         * optabs.c: Ditto.
10343         * opts-global.c: Ditto.
10344         * passes.c: Ditto.
10345         * postreload-gcse.c: Ditto.
10346         * postreload.c: Ditto.
10347         * predict.c: Ditto.
10348         * print-rtl.c: Ditto.
10349         * profile.c: Ditto.
10350         * recog.c: Ditto.
10351         * ree.c: Ditto.
10352         * reg-stack.c: Ditto.
10353         * regcprop.c: Ditto.
10354         * regcprop.h: Ditto.
10355         * reginfo.c: Ditto.
10356         * regrename.c: Ditto.
10357         * regstat.c: Ditto.
10358         * reload.c: Ditto.
10359         * reload1.c: Ditto.
10360         * reorg.c: Ditto.
10361         * resource.c: Ditto.
10362         * rtlanal.c: Ditto.
10363         * sched-deps.c: Ditto.
10364         * sched-ebb.c: Ditto.
10365         * sched-int.h: Ditto.
10366         * sched-rgn.c: Ditto.
10367         * sched-vis.c: Ditto.
10368         * sel-sched-dump.c: Ditto.
10369         * sel-sched-ir.c: Ditto.
10370         * sel-sched-ir.h: Ditto.
10371         * sel-sched.c: Ditto.
10372         * sese.c: Ditto.
10373         * shrink-wrap.c: Ditto.
10374         * stack-ptr-mod.c: Ditto.
10375         * stmt.c: Ditto.
10376         * store-motion.c: Ditto.
10377         * symtab.c: Ditto.
10378         * toplev.c: Ditto.
10379         * tracer.c: Ditto.
10380         * trans-mem.c: Ditto.
10381         * tree-affine.c: Ditto.
10382         * tree-call-cdce.c: Ditto.
10383         * tree-cfg.c: Ditto.
10384         * tree-cfgcleanup.c: Ditto.
10385         * tree-chrec.c: Ditto.
10386         * tree-complex.c: Ditto.
10387         * tree-data-ref.c: Ditto.
10388         * tree-dfa.c: Ditto.
10389         * tree-eh.c: Ditto.
10390         * tree-emutls.c: Ditto.
10391         * tree-if-conv.c: Ditto.
10392         * tree-inline.c: Ditto.
10393         * tree-into-ssa.c: Ditto.
10394         * tree-loop-distribution.c: Ditto.
10395         * tree-nested.c: Ditto.
10396         * tree-nrv.c: Ditto.
10397         * tree-object-size.c: Ditto.
10398         * tree-outof-ssa.c: Ditto.
10399         * tree-parloops.c: Ditto.
10400         * tree-phinodes.c: Ditto.
10401         * tree-predcom.c: Ditto.
10402         * tree-pretty-print.c: Ditto.
10403         * tree-profile.c: Ditto.
10404         * tree-scalar-evolution.c: Ditto.
10405         * tree-sra.c: Ditto.
10406         * tree-ssa-address.c: Ditto.
10407         * tree-ssa-alias.c: Ditto.
10408         * tree-ssa-ccp.c: Ditto.
10409         * tree-ssa-coalesce.c: Ditto.
10410         * tree-ssa-copy.c: Ditto.
10411         * tree-ssa-copyrename.c: Ditto.
10412         * tree-ssa-dce.c: Ditto.
10413         * tree-ssa-dom.c: Ditto.
10414         * tree-ssa-dse.c: Ditto.
10415         * tree-ssa-forwprop.c: Ditto.
10416         * tree-ssa-ifcombine.c: Ditto.
10417         * tree-ssa-live.c: Ditto.
10418         * tree-ssa-loop-ch.c: Ditto.
10419         * tree-ssa-loop-im.c: Ditto.
10420         * tree-ssa-loop-ivcanon.c: Ditto.
10421         * tree-ssa-loop-ivopts.c: Ditto.
10422         * tree-ssa-loop-manip.c: Ditto.
10423         * tree-ssa-loop-niter.c: Ditto.
10424         * tree-ssa-loop-prefetch.c: Ditto.
10425         * tree-ssa-loop-unswitch.c: Ditto.
10426         * tree-ssa-loop.c: Ditto.
10427         * tree-ssa-math-opts.c: Ditto.
10428         * tree-ssa-operands.c: Ditto.
10429         * tree-ssa-phiopt.c: Ditto.
10430         * tree-ssa-phiprop.c: Ditto.
10431         * tree-ssa-pre.c: Ditto.
10432         * tree-ssa-propagate.c: Ditto.
10433         * tree-ssa-reassoc.c: Ditto.
10434         * tree-ssa-sccvn.c: Ditto.
10435         * tree-ssa-sink.c: Ditto.
10436         * tree-ssa-strlen.c: Ditto.
10437         * tree-ssa-structalias.c: Ditto.
10438         * tree-ssa-tail-merge.c: Ditto.
10439         * tree-ssa-ter.c: Ditto.
10440         * tree-ssa-threadedge.c: Ditto.
10441         * tree-ssa-threadupdate.c: Ditto.
10442         * tree-ssa-uncprop.c: Ditto.
10443         * tree-ssa-uninit.c: Ditto.
10444         * tree-ssa.c: Ditto.
10445         * tree-ssanames.c: Ditto.
10446         * tree-stdarg.c: Ditto.
10447         * tree-streamer-in.c: Ditto.
10448         * tree-streamer-out.c: Ditto.
10449         * tree-streamer.c: Ditto.
10450         * tree-switch-conversion.c: Ditto.
10451         * tree-tailcall.c: Ditto.
10452         * tree-vect-data-refs.c: Ditto.
10453         * tree-vect-generic.c: Ditto.
10454         * tree-vect-loop-manip.c: Ditto.
10455         * tree-vect-loop.c: Ditto.
10456         * tree-vect-patterns.c: Ditto.
10457         * tree-vect-slp.c: Ditto.
10458         * tree-vect-stmts.c: Ditto.
10459         * tree-vectorizer.c: Ditto.
10460         * tree-vrp.c: Ditto.
10461         * tree.c: Ditto.
10462         * tsan.c: Ditto.
10463         * ubsan.c: Ditto.
10464         * valtrack.c: Ditto.
10465         * valtrack.h: Ditto.
10466         * value-prof.c: Ditto.
10467         * var-tracking.c: Ditto.
10468         * varasm.c: Ditto.
10469         * varpool.c: Ditto.
10470         * vtable-verify.c: Ditto.
10471         * web.c: Ditto.
10472         * config/aarch64/aarch64-builtins.c: Ditto.
10473         * config/aarch64/aarch64.c: Ditto.
10474         * config/alpha/alpha.c: Ditto.
10475         * config/arc/arc.c: Ditto.
10476         * config/arm/arm.c: Ditto.
10477         * config/avr/avr.c: Ditto.
10478         * config/bfin/bfin.c: Ditto.
10479         * config/c6x/c6x.c: Ditto.
10480         * config/cr16/cr16.c: Ditto.
10481         * config/cris/cris.c: Ditto.
10482         * config/darwin-c.c: Ditto.
10483         * config/darwin.c: Ditto.
10484         * config/epiphany/epiphany.c: Ditto.
10485         * config/epiphany/mode-switch-use.c: Ditto.
10486         * config/epiphany/resolve-sw-modes.c: Ditto.
10487         * config/fr30/fr30.c: Ditto.
10488         * config/frv/frv.c: Ditto.
10489         * config/h8300/h8300.c: Ditto.
10490         * config/i386/i386.c: Ditto.
10491         * config/i386/winnt.c: Ditto.
10492         * config/ia64/ia64.c: Ditto.
10493         * config/iq2000/iq2000.c: Ditto.
10494         * config/lm32/lm32.c: Ditto.
10495         * config/m32c/m32c.c: Ditto.
10496         * config/m32r/m32r.c: Ditto.
10497         * config/m68k/m68k.c: Ditto.
10498         * config/mcore/mcore.c: Ditto.
10499         * config/mep/mep.c: Ditto.
10500         * config/microblaze/microblaze.c: Ditto.
10501         * config/mips/mips.c: Ditto.
10502         * config/mmix/mmix.c: Ditto.
10503         * config/mn10300/mn10300.c: Ditto.
10504         * config/moxie/moxie.c: Ditto.
10505         * config/msp430/msp430.c: Ditto.
10506         * config/nds32/nds32-cost.c: Ditto.
10507         * config/nds32/nds32-fp-as-gp.c: Ditto.
10508         * config/nds32/nds32-intrinsic.c: Ditto.
10509         * config/nds32/nds32-isr.c: Ditto.
10510         * config/nds32/nds32-md-auxiliary.c: Ditto.
10511         * config/nds32/nds32-memory-manipulation.c: Ditto.
10512         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
10513         * config/nds32/nds32-predicates.c: Ditto.
10514         * config/nds32/nds32.c: Ditto.
10515         * config/nios2/nios2.c: Ditto.
10516         * config/pa/pa.c: Ditto.
10517         * config/pdp11/pdp11.c: Ditto.
10518         * config/rl78/rl78.c: Ditto.
10519         * config/rs6000/rs6000.c: Ditto.
10520         * config/rx/rx.c: Ditto.
10521         * config/s390/s390.c: Ditto.
10522         * config/sh/sh-mem.cc: Ditto.
10523         * config/sh/sh.c: Ditto.
10524         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
10525         * config/sh/sh_treg_combine.cc: Ditto.
10526         * config/sparc/sparc.c: Ditto.
10527         * config/spu/spu.c: Ditto.
10528         * config/stormy16/stormy16.c: Ditto.
10529         * config/tilegx/tilegx.c: Ditto.
10530         * config/tilepro/tilepro.c: Ditto.
10531         * config/v850/v850.c: Ditto.
10532         * config/vax/vax.c: Ditto.
10533         * config/xtensa/xtensa.c: Ditto.
10534
10535 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
10536
10537         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
10538         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
10539         Remove using preprocessor directives.
10540
10541 2014-10-27  Richard Biener  <rguenther@suse.de>
10542
10543         * match.pd (0 % X): Properly use the iterator iterating over
10544         all modulo operators.
10545         (X % 1): Likewise.
10546
10547 2014-10-27  Richard Biener  <rguenther@suse.de>
10548
10549         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
10550         (lattice): New global.
10551         (fwprop_ssa_val): New function.
10552         (fold_all_stmts): Likewise.
10553         (pass_forwprop::execute): Finally fold all stmts.
10554
10555 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10556
10557         PR c++/53061
10558         * doc/invoke.texi (fmessage-length): Update text to match reality.
10559
10560 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10561
10562         * config/microblaze/microblaze.c: Include rtl-iter.h.
10563         (microblaze_tls_referenced_p_1): Delete.
10564         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
10565
10566 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10567
10568         * config/mips/mips.c (mips_at_reg_p): Delete.
10569         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
10570
10571 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10572
10573         * config/mips/mips.c (mips_record_lo_sum): Replace with...
10574         (mips_record_lo_sums): ...this new function.
10575         (mips_reorg_process_insns): Update accordingly.
10576
10577 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10578
10579         * config/mips/mips.c (mips_sim_insn): Update comment.
10580         (mips_sim_wait_regs_2): Delete.
10581         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
10582
10583 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10584
10585         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
10586         and return a bool.  Iterate over all subrtxes here.
10587         (r10k_needs_protection_p): Update accordingly.
10588
10589 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10590
10591         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
10592         rather than an rtx pointer.  Change type of insn from "void *"
10593         to its real type.  Return bool rather than int.  Iterate over
10594         all subrtxes here.
10595         (r10k_needs_protection_p_store): Update accordingly.
10596         (r10k_needs_protection_p): Likewise.
10597
10598 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10599
10600         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
10601         (mips16_rewrite_pool_refs): Take the insn and constant pool as
10602         parameters.  Iterate over the instruction's pattern and return void.
10603         (mips16_lay_out_constants): Update accordingly.
10604
10605 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10606
10607         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
10608         (mips_refers_to_kernel_reg_p): ...this new function.
10609         (mips_expand_prologue): Update accordingly.
10610
10611 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10612
10613         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
10614         as a parameter instead of the containing MEM.  Iterate over all
10615         subrtxes.  Don't return a value.
10616         (mips_rewrite_small_data): Update call accordingly.
10617
10618 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10619
10620         * config/mips/mips.c: Include rtl-iter.h.
10621         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
10622         Take the context as a parameter instead of the containing MEM.
10623         Iterate over all subrtxes.
10624         (mips_small_data_pattern_p): Update call accordingly.
10625
10626 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10627
10628         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
10629         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
10630
10631 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10632
10633         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
10634         return a bool.  Replace "void *" with specific type.  Iterate
10635         over all subrtxes.
10636         (mep_store_data_bypass_1): Update calls accordingly.
10637
10638 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10639
10640         * config/mep/mep.c: Include rtl-iter.h.
10641         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
10642         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
10643
10644 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10645
10646         * config/xtensa/xtensa.c: Include rtl-iter.h.
10647         (xtensa_tls_referenced_p_1): Delete.
10648         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
10649
10650 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10651
10652         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
10653         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
10654
10655 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10656
10657         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
10658         rtx as argument and return the number of changes.
10659         * config/sh/sh.c: Include rtl-iter.h.
10660         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
10661         over all subrtxes.  Return the number of changes made.
10662         * config/sh/sh.md: Update caller accordingly.
10663
10664 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10665
10666         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
10667         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
10668
10669 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
10670
10671         * config/m68k/m68k.c: Include rtl-iter.h.
10672         (m68k_final_prescan_insn_1): Delete.
10673         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
10674
10675 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
10676
10677         PR tree-optimization/63641
10678         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
10679         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
10680
10681 2014-10-25  Alan Modra  <amodra@gmail.com>
10682
10683         PR rtl-optimization/63615
10684         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
10685         decomposing PLUS or MINUS if operands are not placed adjacent
10686         in the "ops" array.
10687
10688 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
10689
10690         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
10691         not allow e500 double in registers not satisyfing
10692         SPE_SIMD_REGNO_P.
10693
10694 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
10695
10696         * dwarf2out.c (declare_in_namespace): Only emit external
10697         declarations in the local scope once.
10698
10699 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
10700
10701         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
10702
10703 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
10704
10705         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
10706         update uses to use new macro arguments.
10707         (__LD3_LANE_FUNC): Likewise.
10708         (__LD4_LANE_FUNC): Likewise.
10709
10710 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
10711
10712         * config/aarch64/aarch64-builtins.c
10713         (aarch64_types_loadstruct_lane_qualifiers): Define.
10714         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
10715         ld4_lane): New builtins.
10716         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
10717         New pattern.
10718         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
10719         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
10720         (aarch64_ld2_lane<mode>): New expand.
10721         (aarch64_ld3_lane<mode>): Likewise.
10722         (aarch64_ld4_lane<mode>): Likewise.
10723         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
10724         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
10725
10726 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
10727
10728         * avr-protos.h (avr_out_sign_extend): New.
10729         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
10730         (avr_out_sign_extend): New function.
10731         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
10732         (extendhisi2, extendpsisi2): Use it.
10733         (adjust_len) [sext]: New.
10734
10735 2014-10-24  Martin Liska  <mliska@suse.cz>
10736
10737         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
10738         added.
10739
10740 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10741
10742         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
10743         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
10744         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
10745         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
10746
10747 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10748
10749         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
10750         do while (0).
10751         * config/aarch64/aarch64.c (is_mem_p): Delete.
10752         (is_memory_op): Rename to...
10753         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
10754         (dep_between_memop_and_curr): Assert that the input is a SET.
10755         (aarch64_madd_needs_nop): Add comment.  Do not call
10756         dep_between_memop_and_curr on NULL body.
10757         (aarch64_final_prescan_insn): Add comment.
10758         Include rtl-iter.h.
10759
10760 2014-10-24  Richard Biener  <rguenther@suse.de>
10761
10762         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
10763         to genmatch BUILD_LIBS instead.
10764
10765 2014-10-24  Richard Biener  <rguenther@suse.de>
10766
10767         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
10768         and build_call_expr_loc.
10769         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
10770         non_lvalue_loc to build it for GENERIC.
10771         (decision_tree::gen_generic): Add location argument to
10772         generic_simplify prototype.
10773         (capture_info): New class.
10774         (capture_info::capture_info): New constructor.
10775         (capture_info::walk_match): New method.
10776         (capture_info::walk_result): New method.
10777         (capture_info::walk_c_expr): New method.
10778         (dt_simplify::gen): Handle preserving side-effects for
10779         GENERIC code generation.
10780         (decision_tree::gen_generic): Do not reject operands
10781         with TREE_SIDE_EFFECTS.
10782         * generic-match.h: New file.
10783         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
10784         * match.pd: Add some constant folding patterns from fold-const.c.
10785         * fold-const.c: Include generic-match.h.
10786         (fold_unary_loc): Dispatch to generic_simplify.
10787         (fold_ternary_loc): Likewise.
10788         (fold_binary_loc): Likewise.  Remove patterns now implemented
10789         by generic_simplify.
10790         * gimple-fold.c (replace_stmt_with_simplification): New function.
10791         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
10792         (no_follow_ssa_edges): New function.
10793         (fold_stmt): New overload with valueization hook.  Use
10794         no_follow_ssa_edges for the overload without hook.
10795         (fold_stmt_inplace): Likewise.
10796         * gimple-fold.h (no_follow_ssa_edges): Declare.
10797
10798 2014-10-24  Felix Yang  <felix.yang@huawei.com>
10799         Jiji Jiang  <jiangjiji@huawei.com>
10800
10801         PR target/63173
10802         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
10803         (__LD3R_FUNC): Ditto.
10804         (__LD4R_FUNC): Ditto.
10805         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
10806          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
10807          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
10808          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
10809          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
10810          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
10811         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
10812          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
10813          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
10814          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
10815          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
10816          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
10817         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
10818          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
10819          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
10820          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
10821          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
10822          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
10823         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
10824         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
10825         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
10826         builtins.
10827         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
10828         (aarch64_simd_ld3r<mode>): Likewise.
10829         (aarch64_simd_ld4r<mode>): Likewise.
10830         (aarch64_ld2r<mode>): New expand.
10831         (aarch64_ld3r<mode>): Likewise.
10832         (aarch64_ld4r<mode>): Likewise.
10833
10834 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
10835
10836         * rtlanal.c (get_base_term): Handle SCRATCH.
10837
10838 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
10839
10840         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
10841         register pressure.
10842
10843 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
10844
10845         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
10846         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
10847         (max_issue, choose_ready, sched_init): Update.
10848
10849 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
10850
10851         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
10852         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
10853         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
10854         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
10855         (print_rank_for_schedule_stats): Print out elements of ready list that
10856         ended up on their respective places due to each of the sorting
10857         heuristics.
10858         (ready_sort): Update.
10859         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
10860         (schedule_block): Update.
10861
10862 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
10863
10864         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
10865         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
10866         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
10867         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
10868         (model_start_schedule): Update.
10869         (sched_pressure_start_bb): New static function.  Calculate
10870         sched_class_regs_num.
10871         (schedule_block): Use it.
10872         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
10873
10874 2014-10-24  Richard Biener  <rguenther@suse.de>
10875
10876         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
10877         host library and make sure to pull in the required libintl
10878         and libiconv dependencies.
10879
10880 2014-10-24  Richard Biener  <rguenther@suse.de>
10881
10882         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
10883
10884 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
10885
10886         PR bootstrap/63632
10887         * collect2.c (main): Filter out -fno-lto.
10888
10889 2014-10-24  Martin Liska  <mliska@suse.cz>
10890
10891         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
10892         division by zero in dumps.
10893         (sem_item_optimizer::merge_classes): Ditto.
10894
10895 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
10896
10897         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
10898
10899 2014-10-23  Ian Lance Taylor  <iant@google.com>
10900
10901         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
10902
10903 2014-10-23  Ian Lance Taylor  <iant@google.com>
10904
10905         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
10906
10907 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
10908
10909         PR debug/63623
10910         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
10911         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
10912         instead of only handling autoinc in dest if it is a MEM.
10913         (vt_stack_adjustments): Fix up formatting.
10914
10915 2014-10-23  DJ Delorie  <dj@redhat.com>
10916
10917         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
10918         independend of -mlarge.
10919         * config/msp430/constraints.md (Ys): Update comment.
10920
10921 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
10922
10923         PR target/63534
10924         PR target/63618
10925         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
10926         while it is pseudo.
10927         * dse.c (deletable_insn_p): Likewise.
10928
10929 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
10930
10931         * config/avr/avr.c: Fix GNU coding rules and typos.
10932         * config/avr/avr.h: Dito.
10933         * config/avr/avr-c.c: Dito.
10934         * config/avr/avr.md: Dito.
10935
10936 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
10937
10938         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
10939         New.
10940         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
10941         iterator.
10942         (define_expand "abs<mode>2"): Ditto.
10943
10944 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
10945
10946         * tree-core.h (tree_var_decl): Extend `function_code' field
10947         by one bit, move `regdecl_flag' field to ...
10948         (tree_decl_with_vis): Here.
10949         * tree.h (DECL_STATIC_CHAIN): Update struct name.
10950
10951 2014-10-23  Richard Biener  <rguenther@suse.de>
10952
10953         * Makefile.in (BUILD_CPPLIB): Add.
10954         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
10955         Drop LIBIBERTY.
10956
10957 2014-10-23  Richard Biener  <rguenther@suse.de>
10958
10959         * fold-const.c (fold_binary_loc): Preserve side-effects of
10960         X - X when simplifying to 0.
10961         * stor-layout.c (finish_bitfield_representative): Strip
10962         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
10963
10964 2014-10-22  Richard Biener  <rguenther@suse.de>
10965             Tobias Burnus <burnus@net-b.de>
10966
10967         PR lto/63603
10968         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
10969
10970 2014-10-22  Dehao Chen  <dehao@google.com>
10971
10972         * auto-profile.c: Change order of header files.
10973
10974 2014-10-22  Guozhi Wei  <carrot@google.com>
10975
10976         PR tree-optimization/63530
10977         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
10978         pointer alignment according to DR_MISALIGNMENT.
10979
10980 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
10981
10982         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
10983
10984 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
10985
10986         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
10987         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
10988         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
10989         * dominance.h: New.  Add prototypes for dominance.c.
10990         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
10991         * cfghooks.h: (struct profile_record) Relocate here.
10992         Relocate 2 prototypes from basic-block.h.
10993         * basic-block.h: Move prototypes and struct to new header files.
10994         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
10995         * rtl.h: Move a few prototypes to new header files.
10996         * cfgcleanup.c (merge_memattrs): Make static.
10997         * genopinit.c (main): Add predict.h to list of includes.
10998         * predict.h: Update prototype list to match predict.c.
10999         * predict.c (maybe_hot_count_p): Export.
11000         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
11001         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
11002         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
11003         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
11004         * profile.h: Adjust prototypes.
11005         * ifcvt.h: New.  Relocate struct ce_if_block here.
11006         * ifcvt.c: Include ifcvt.h.
11007         * config/frv/frv.c: Include ifcvt.h.
11008         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
11009
11010 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11011
11012         * lra.c (lra): Remove call to recog_init.
11013         * config/i386/i386.md (preferred_for_speed): New attribute
11014         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
11015         "enabled".  Remove check for sched1.
11016
11017 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11018
11019         * recog.h (recog_data_d): Remove enabled_alternatives.
11020         * recog.c (extract_insn): Don't set it.
11021         * reload.c (find_reloads): Call get_enabled_alternatives.
11022
11023 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11024
11025         * recog.h (constrain_operands): Add an alternative_mask parameter.
11026         (constrain_operands_cached): Likewise.
11027         (get_preferred_alternatives): Declare new form.
11028         * recog.c (get_preferred_alternatives): New bb-taking instance.
11029         (constrain_operands): Take the set of available alternatives as
11030         a parameter.
11031         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
11032         (extract_constrain_insn_cached): Update calls to constrain_operands.
11033         * caller-save.c (reg_save_code): Likewise.
11034         * ira.c (setup_prohibited_mode_move_regs): Likewise.
11035         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
11036         * ree.c (combine_reaching_defs): Likewise.
11037         * reload.c (can_reload_into): Likewise.
11038         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
11039         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
11040         (emit_insn_if_valid_for_reload): Likewise.
11041         * reorg.c (fill_slots_from_thread): Likewise.
11042         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
11043         * config/pa/pa.c (pa_can_combine_p): Likewise.
11044         * config/rl78/rl78.c (insn_ok_now): Likewise.
11045         * config/sh/sh.md (define_peephole2): Likewise.
11046         * final.c (final_scan_insn): Update call to constrain_operands_cached.
11047
11048 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11049
11050         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
11051         attributes.
11052         * genattr.c (main): Handle "preferred_for_size" and
11053         "preferred_for_speed" in the same way as "enabled".
11054         * recog.h (bool_attr): New enum.
11055         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
11056         (get_preferred_alternatives, check_bool_attrs): Declare.
11057         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
11058         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
11059         New functions.
11060         (get_enabled_alternatives): Use get_bool_attr_mask.
11061         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
11062         instead of recog_data.enabled_alternatives.
11063         * ira.c (ira_setup_alts): Likewise.
11064         * postreload.c (reload_cse_simplify_operands): Likewise.
11065         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
11066         * ira-lives.c (preferred_alternatives): New variable.
11067         (process_bb_node_lives): Set it.
11068         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
11069         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
11070         of recog_data.enabled_alternatives.
11071         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
11072         to preferred_alternatives.
11073         * lra-constraints.c (process_alt_operands): Update accordingly.
11074         * lra.c (lra_set_insn_recog_data): Likewise.
11075         (lra_update_insn_recog_data): Assert check_bool_attrs.
11076
11077 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
11078
11079         * recog.h (extract_constrain_insn): Declare.
11080         * recog.c (extract_constrain_insn): New function.
11081         * lra.c (check_rtl): Use it.
11082         * postreload.c (reload_cse_simplify_operands): Likewise.
11083         * reg-stack.c (check_asm_stack_operands): Likewise.
11084         (subst_asm_stack_regs): Likewise.
11085         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
11086         * regrename.c (build_def_use): Likewise.
11087         * sel-sched.c (get_reg_class): Likewise.
11088         * config/arm/arm.c (note_invalid_constants): Likewise.
11089         * config/s390/predicates.md (execute_operation): Likewise.
11090
11091 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
11092             Yury Gribov  <y.gribov@samsung.com>
11093
11094         * common.opt (flag_sanitize_recover): New variable.
11095         (fsanitize-recover): Remove Var/Init, deprecate.
11096         (fsanitize-recover=): New option.
11097         * doc/invoke.texi (fsanitize-recover): Update docs.
11098         * opts.c (finish_options): Use opts->x_flag_sanitize
11099         instead of flag_sanitize.  Prohibit -fsanitize-recover
11100         for anything besides UBSan.  Formatting.
11101         (common_handle_option): Handle OPT_fsanitize_recover_
11102         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
11103         instead of flag_sanitize.
11104         * asan.c (pass_sanopt::execute): Fix up formatting.
11105         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
11106         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
11107         instrument_bool_enum_load, ubsan_instrument_float_cast,
11108         instrument_nonnull_arg, instrument_nonnull_return): Check
11109         bits in flag_sanitize_recover bitmask instead of
11110         flag_sanitize_recover as bool flag.
11111
11112 2014-10-22  Jiong Wang <jiong.wang@arm.com>
11113
11114         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
11115
11116 2014-10-22  Renlin Li <renlin.li@arm.com>
11117
11118         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
11119         __ARM_FEATURE_IDIV__.
11120
11121 2014-10-22  Richard Biener  <rguenther@suse.de>
11122
11123         * Makefile.in (s-match): Adjust dependencies to only catch
11124         match.pd.
11125
11126 2014-10-22  Richard Biener  <rguenther@suse.de>
11127         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
11128
11129         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
11130         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
11131         (gimple-match.c): Generate by triggering s-match.
11132         (generic-match.c): Likewise.
11133         (s-match): Rule to build gimple-match.c and generic-match.c
11134         by running the genmatch generator program.
11135         (build/hash-table.o): Dependencies to build hash-table.c for the host.
11136         (build/genmatch.o): Dependencies to build genmatch.
11137         (genprog): Add match.
11138         (build/genmatch): Likewise.
11139         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
11140         * generic-match-head.c: New file.
11141         * gimple-match-head.c: Likewise.
11142         * gimple-match.h: Likewise.
11143         * genmatch.c: Likewise.
11144         * match.pd: Likewise.
11145         * builtins.h (fold_builtin_n): Export.
11146         * builtins.c (fold_builtin_n): Likewise.
11147         * gimple-fold.h (gimple_build): Declare various overloads.
11148         (gimple_simplify): Likewise.
11149         (gimple_convert): Re-implement in terms of gimple_build.
11150         * gimple-fold.c (gimple_convert): Remove.
11151         (gimple_build): New functions.
11152         * doc/match-and-simplify.texi: New file.
11153         * doc/gccint.texi: Add menu item Match and Simplify and include
11154         match-and-simplify.texi.
11155
11156 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
11157
11158         PR target/63594
11159         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
11160         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
11161         even for just TARGET_AVX2, not only for
11162         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
11163         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
11164         otherwise build it using concatenation of 256-bit
11165         broadcast.
11166         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
11167         avx512 broadcast patterns.
11168         (vec_dup<mode>): Likewise.  For avx2 use
11169         v<sseintprefix>broadcast<bcstscalarsuff> instead of
11170         vbroadcast<ssescalarmodesuffix>.
11171         (AVX2_VEC_DUP_MODE): New mode iterator.
11172         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
11173         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
11174
11175         PR target/63542
11176         * config/i386/i386.c (ix86_pic_register_p): Also return
11177         true if x is a hard register with ORIGINAL_REGNO equal to
11178         pic_offset_table_rtx pseudo REGNO.
11179         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
11180         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
11181
11182 2014-10-22  Alan Modra  <amodra@gmail.com>
11183
11184         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
11185         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
11186         (gcc_obstack_init): Use obstack_specify_allocation in place of
11187         _obstack_begin.
11188         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
11189         (regexp_representation): Likewise.
11190         * godump.c (go_output_type): Likewise.
11191
11192 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
11193
11194         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
11195         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
11196         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
11197
11198 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
11199
11200         * doc/invoke.texi (pedantic-errors): Explain better.
11201
11202 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
11203             Vidya Praveen <vidya.praveen@atmel.com>
11204             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
11205             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
11206             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
11207
11208         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
11209         __MEMX for avrtiny.
11210         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
11211         (avr_nonconst_pointer_addrspace): Likewise.
11212         * config/avr/avr.h (AVR_HAVE_LPM): Define.
11213
11214         Added AVRTINY architecture to avr target.
11215         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
11216         (base_arch_s): member added for AVRTINY architecture.
11217         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
11218         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
11219         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
11220         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
11221         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
11222         in callee saved register list.
11223         (avr_option_override): CCP address updated for AVRTINY.
11224         (avr_init_expanders): tmp and zero rtx initialized as per arch.
11225         Reset avr_have_dimode if AVRTINY.
11226         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
11227         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
11228         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
11229         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
11230         (expand_epilogue): Likewise.
11231         (avr_print_operand): Print CCP address in case of AVRTINY also.
11232         <TBD>bad address
11233         (function_arg_regno_p): Check different register list for arguments
11234         if AVRTINY.
11235         (init_cumulative_args): Check for AVRTINY to update number of argument
11236         registers.
11237         (tiny_valid_direct_memory_access_range): New function. Return false if
11238         direct memory access range is not in accepted range for AVRTINY.
11239         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
11240         indirect load (with displacement) for AVRTINY.
11241         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
11242         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
11243         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
11244         indirect load (no displacement) for AVRTINY.
11245         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
11246         indirect load (with displacement) for AVRTINY.
11247         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
11248         indirect load for pre-decrement address.
11249         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
11250         functions. Update instruction length for AVRTINY.
11251         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
11252         SImode.
11253         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
11254         (out_movsi_r_mr): Likewise, for SImode.
11255         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
11256         indirect store (no displacement) for AVRTINY.
11257         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
11258         indirect store (with displacement) for AVRTINY.
11259         (out_movsi_mr_r): Emit out insn for IO address store. Update store
11260         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
11261         store functions.
11262         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
11263         indirect load (no displacement) for PSImode in AVRTINY.
11264         (avr_out_load_psi_reg_disp_tiny): New function to handle register
11265         indirect load (with displacement) for PSImode in AVRTINY.
11266         (avr_out_load_psi): Call PSImode register indirect load functions for
11267         AVRTINY. Update instruction length for AVRTINY.
11268         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
11269         indirect store (no displacement) for PSImode in AVRTINY.
11270         (avr_out_store_psi_reg_disp_tiny): New function to handle register
11271         indirect store (with displacement) for PSImode in AVRTINY.
11272         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
11273         register indirect store functions for AVRTINY.
11274         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
11275         register indirect store (with displacement) for AVRTINY.
11276         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
11277         register indirect store function for QImode in AVRTINY.
11278         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
11279         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
11280         indirect store (no displacement) for HImode in AVRTINY.
11281         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
11282         indirect store (with displacement) for HImode in AVRTINY.
11283         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
11284         indirect store for post-increment address in HImode.
11285         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
11286         register indirect store function for HImode in AVRTINY.
11287         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
11288         in case of AVRTINY.
11289         (order_regs_for_local_alloc): Updated register allocation order for
11290         AVRTINY.
11291         (avr_conditional_register_usage): New function. It is a target hook
11292         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
11293         used registers list and register allocation order for AVRTINY.
11294         (avr_return_in_memory): Update return value size for AVRTINY.
11295         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
11296         for AVRTINY arch and tiny program memory base address.
11297         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
11298         (avr_texinfo): Added description for AVRTINY arch.
11299         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
11300         STATIC_CHAIN_REGNUM for AVRTINY.
11301         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
11302         * config/avr/avr.md: Added constants for tmp/ zero registers in
11303         AVRTINY. Attributes for AVRTINY added.
11304         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
11305         memory access range.
11306         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
11307         in AVRTINY memory access range.
11308         (*mov<mode>): Likewise for HImode and SImode.
11309         (*movsf): Likewise for SFmode.
11310         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
11311         not have sbiw.
11312         * config/avr/avr-protos.h: Added function prototype for
11313         tiny_valid_direct_memory_access_range.
11314         * config/avr/avr-tables.opt: Regenerate.
11315         * gcc/config/avr/t-multilib: Regenerate.
11316         * doc/avr-mmcu.texi: Regenerate.
11317
11318 2014-10-21  Andrew Pinski  <apinski@cavium.com>
11319
11320         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
11321         available option also.
11322         * config/aarch64/aarch64-cost-tables.h: New file.
11323         * config/aarch64/aarch64-cores.def (thunderx): New core.
11324         * config/aarch64/aarch64-tune.md: Regenerate.
11325         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
11326         of config/arm/aarch-cost-tables.h.
11327         (thunderx_regmove_cost): New variable.
11328         (thunderx_tunings): New variable.
11329
11330 2014-10-21  Dehao Chen  <dehao@google.com>
11331
11332         * auto-profile.c: New file.
11333         * auto-profile.h: New file.
11334         * basic-block.h (maybe_hot_count_p): New export func.
11335         (add_working_set): New export func.
11336         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
11337         (GCOV_TAG_AFDO_FUNCTION): Likewise.
11338         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
11339         * opts.c (enable_fdo_optimizations): New func.
11340         (common_handle_option): Handle -fauto-profile flag.
11341         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
11342         (class pass_early_inline): Export early_inliner.
11343         (early_inliner): Likewise.
11344         (pass_early_inline::execute): Likewise.
11345         * ipa-inline.h (early_inliner): Likewise.
11346         * predict.c (maybe_hot_count_p): New export func.
11347         (counts_to_freqs): AutoFDO logic.
11348         (rebuild_frequencies): Likewise.
11349         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
11350         * profile.c (add_working_set): New func.
11351         * Makefile.in (auto-profile.o): New object file.
11352         * passes.def (pass_ipa_auto_profile): New pass.
11353         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
11354         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
11355         * toplev.c (compile_file): AutoFDO logic.
11356         * doc/invoke.texi (-fauto-profile): New doc.
11357         * coverage.c (coverage_init): AutoFDO logic.
11358         * common.opt (-fauto-profile): New flag.
11359         * timevar.def (TV_IPA_AUTOFDO): New tag.
11360         * value-prof.c (gimple_alloc_histogram_value): New export func.
11361         (check_ic_target): Likewise.
11362         * value-prof.h (gimple_alloc_histogram_value): Likewise.
11363         (check_ic_target): Likewise.
11364
11365 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
11366
11367         * cgraph.c (cgraph_c_finalize): New function.
11368         * cgraph.h (cgraph_c_finalize): New prototype.
11369         (cgraphunit_c_finalize): New prototype.
11370         * cgraphunit.c (first_analyzed): Move from analyze_functions
11371         to file-scope.
11372         (first_analyzed_var): Likewise.
11373         (analyze_functions): Move static variables into file-scope.
11374         (cgraphunit_c_finalize): New function.
11375         * diagnostic.c (diagnostic_finish): Free the memory for
11376         context->classify_diagnostic and context->printer, running the
11377         destructor for the latter.
11378         (bt_stop): Use toplev::main.
11379         * dwarf2out.c (dwarf2out_finalize): New function.
11380         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
11381         * gcse.c (gcse_c_finalize): New function.
11382         * gcse.h (gcse_c_finalize): New prototype.
11383         * ggc-page.c (init_ggc): Make idempotent.
11384         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
11385         * ipa-cp.c (ipa_cp_c_finalize): New function.
11386         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
11387         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
11388         a field of class pass_ipa_pure_const.
11389         (node_duplication_hook_holder): Likewise.
11390         (node_removal_hook_holder): Likewise.
11391         (register_hooks): Convert to method...
11392         (pass_ipa_pure_const::register_hooks): ...here, converting
11393         static variable init_p into...
11394         (pass_ipa_pure_const::init_p): ...new field.
11395         (pure_const_generate_summary): Update invocation of
11396         register_hooks to invoke as a method of current_pass.
11397         (pure_const_read_summary): Likewise.
11398         (propagate): Convert to...
11399         (pass_ipa_pure_const::execute): ...method.
11400         * ipa-reference.c (ipa_init): Move static bool init_p from here
11401         to...
11402         (ipa_init_p): New file-scope variable, so that it can be reset
11403         when repeatedly invoking the compiler within one process by...
11404         (ipa_reference_c_finalize): New function.
11405         * ipa-reference.h (ipa_reference_c_finalize): New.
11406         * main.c (main): Replace invocation of toplev_main with
11407         construction of a toplev instance, and call its "main" method.
11408         * params.c (global_init_params): Add an assert that
11409         params_finished is false.
11410         (params_c_finalize): New.
11411         * params.h (params_c_finalize): New.
11412         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
11413         invoking generate_summary, for the benefit of pass_ipa_pure_const.
11414         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
11415         before calling write_summary hook.
11416         (ipa_write_optimization_summaries_1): Likewise when calling
11417         write_optimization_summary hook.
11418         (ipa_read_summaries_1): Likewise for read_summary hook.
11419         (ipa_read_optimization_summaries_1): Likewise for
11420         read_optimization_summary hook.
11421         (execute_ipa_stmt_fixups): Likewise.
11422         * stringpool.c (init_stringpool): Clean up if we're called more
11423         than once.
11424         * timevar.c (timevar_init): Ignore repeated calls.
11425         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
11426         "ipa-prop.h".
11427         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
11428         (initialize_rtl): Move static local "initialized_once"
11429         into file scope, and rename to...
11430         (rtl_initialized): New variable.
11431         (do_compile): Move timevar initialization from here to
11432         toplev::start_timevars.
11433         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
11434         toplev::finalize): New functions.
11435         (toplev_main): Rename to...
11436         (toplev::main): ...this.
11437         * toplev.h (class toplev): New class.
11438
11439 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
11440
11441         * loop-doloop.c: Include loop-unroll.h.
11442
11443 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
11444
11445         * cfg.h: New.  Header file for cfg.c.
11446         * cfganal.h: New.  Header file for cfganal.c.
11447         * lcm.h: New.  Header file for lcm.c.
11448         * loop-unroll.h: New.  Header file for loop-unroll.h.
11449         * cfgloop.h: (unroll_loops): Remove prototype.
11450         * basic-block.h: Move prototypes and structs to new header files.
11451         Include cfg.h, cfganal.h, and lcm.h.
11452         * loop-init.c: Include loop-unroll.h.
11453         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
11454         * modulo-sched.c: Include loop-unroll.h.
11455
11456 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11457
11458         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
11459         MARKER_BYTE_UNKNOWN markers when handling casts.
11460
11461 2014-10-21  Richard Biener  <rguenther@suse.de>
11462
11463         * tree-ssa-phiopt.c (value_replacement): Properly verify we
11464         are the non-singleton PHI.
11465
11466 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
11467
11468         PR tree-optimization/63563
11469         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
11470         if either dra or drb stmts are not normal loads/stores.
11471
11472 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
11473
11474         * config/i386/i386.c (expand_vec_perm_1): Fix
11475         expand_vec_perm_palignr case.
11476         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
11477         VI1_AVX512.
11478
11479 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11480
11481         * cfgloopanal.c (seq_cost): Delete.
11482         * rtl.h (seq_cost): New prototype.
11483         * rtlanal.c (seq_cost): New function.
11484         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
11485
11486 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
11487
11488         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
11489         * basic-block.h: Remove prototypes for cfgrtl.c.
11490         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
11491         prototypes to cfgrtl.h.
11492         * profile.h (profile_info): Add extern export declaration.
11493         * rtl.h: Remove prototypes for cfgrtl.h.
11494         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
11495         * ipa-inline.c: Include profile.h.
11496         * loop-unroll.c: Ditto.
11497         * modulo-sched.c: Ditto.
11498         * postreload-gcse.c: Ditto.
11499         * predict.c: Ditto.
11500         * sched-ebb.c: Ditto.
11501         * sched-rgn.c: Ditto.
11502         * tracer.c: Ditto.
11503         * tree-ssa-loop-ivcanon.c: Ditto.
11504
11505 2014-10-20  Richard Biener  <rguenther@suse.de>
11506
11507         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
11508         operands to get a def operand kind match.  Signal mismatches
11509         to the parent so we can try swapping its operands.
11510         (vect_build_slp_tree): Try swapping operands if they have
11511         a mismatched operand kind.
11512
11513 2014-10-20  Alan Modra  <amodra@gmail.com>
11514
11515         PR debug/60655
11516         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
11517         Increase "ops" array size.  Correct array size tests.  Init
11518         n_constants in loop.  Break out of innermost loop when finding
11519         a trivial CONST expression.
11520
11521 2014-10-20  Martin Liska  <mliska@suse.cz>
11522
11523         PR ipa/63583
11524         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
11525         Gimple tempate string is compared.
11526
11527 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
11528
11529         * varasm.c (const_alias_set): Remove.
11530         (init_varasm_once): Remove initialization of const_alias_set.
11531         (build_constant_desc): Do not set alias set to const_alias_set.
11532
11533 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
11534
11535         * configure: Regenerate.
11536         * configure.ac: Move the test for section attribute specifier "e" in GAS
11537         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
11538         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
11539         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
11540         ifdef HAVE_GAS_SECTION_EXCLUDE.
11541
11542 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
11543
11544         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
11545         match_operand expression.
11546
11547 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
11548             David Edelsohn  <dje.gcc@gmail.com>
11549
11550         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
11551         function.
11552         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
11553
11554 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11555
11556         * doc/invoke.texi (Options to Request or Suppress Warnings):
11557         Explain options precedence.
11558         (Wtrampolines): Do not indent paragraph.
11559
11560 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
11561
11562         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
11563         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
11564         (pa_jump_in_call_delay): Likewise.
11565         * config/pa/pa.c (pa_option_override): Remove jump in call delay
11566         override.
11567         (pa_output_millicode_call): Remove support for jump in call delay.
11568         (pa_output_call): Likewise.
11569         (pa_jump_in_call_delay): Delete.
11570         (pa_following_call): Likewise.
11571         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
11572         (uncond_branch): Remove following call check from attribute length.
11573
11574 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
11575
11576         PR target/53513
11577         * config/sh/sh-modes.def (PSI): Remove.
11578         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
11579         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
11580         (sh_reorg): Remove commented out FPSCR code.
11581         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
11582         insn instead of move insn.
11583         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
11584         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
11585         handling.
11586         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
11587         (sh1_builtin_p): Uncomment.
11588         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
11589         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
11590         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
11591         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
11592         (general_movsrc_operand, general_movdst_operand): Disallow
11593         fpscr_operand.
11594         * config/sh/sh.md (FPSCR_FR): New constant.
11595         (push_fpscr): Emit sts_fpscr insn.
11596         (pop_fpscr): Emit lds_fpscr_insn.
11597         (movsi_ie): Disallow FPSCR operands.
11598         (fpu_switch, unnamed related split, extend_psi_si,
11599         truncate_si_psi): Remove insns.
11600         (lds_fpscr, sts_fpscr): New insns.
11601         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
11602
11603 >>>>>>> .r217525
11604 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11605
11606         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
11607         (clone_inlined_nodes): Do not overwrite the clone if above predicate
11608         returns true.
11609
11610 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
11611
11612         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
11613         (expand_vec_perm_d): Ditto.
11614         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
11615         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
11616         V4DFmode.
11617         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
11618         (ix86_expand_sse_unpack): Handle V64QImode.
11619         (expand_vec_perm_blend): Update conditions for TARGET, handle
11620         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
11621         (expand_vec_perm_pshufb): Handle V64QImode.
11622         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
11623         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
11624         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
11625         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
11626         (ix86_expand_vecop_qihi): Handle V64QImode.
11627         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
11628         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
11629         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
11630         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
11631         (mul<mode>3): Use VI1_AVX512.
11632         (<sse2_avx2>_packsswb): Ditto.
11633         (<sse2_avx2>_packuswb): Ditto.
11634         (<ssse3_avx2>_pshufb<mode>3): Ditto.
11635         (<shift_insn><mode>3): Ditto.
11636
11637 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
11638
11639         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
11640         conditions to fix bootstrap.
11641
11642 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
11643
11644         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
11645
11646 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11647             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11648             Anna Tikhonova  <anna.tikhonova@intel.com>
11649             Ilya Tocar  <ilya.tocar@intel.com>
11650             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11651             Ilya Verbin  <ilya.verbin@intel.com>
11652             Kirill Yukhin  <kirill.yukhin@intel.com>
11653             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11654
11655         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
11656         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
11657         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
11658         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
11659         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
11660         (define_expand "vec_init<mode>"): Use VF48_I1248.
11661
11662 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11663             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11664             Anna Tikhonova  <anna.tikhonova@intel.com>
11665             Ilya Tocar  <ilya.tocar@intel.com>
11666             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11667             Ilya Verbin  <ilya.verbin@intel.com>
11668             Kirill Yukhin  <kirill.yukhin@intel.com>
11669             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11670
11671         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
11672         expand_sse2_mulvxdi3.
11673
11674 2014-10-17  Richard Biener  <rguenther@suse.de>
11675
11676         * fold-const.c (fold_comparison): Remove redundant constant
11677         folding and operand swapping.
11678         (fold_binary_loc): Do comparison operand swapping here.
11679         (fold_ternary_loc): Canonicalize operand order for
11680         commutative ternary operations.
11681         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
11682         and FMA_EXPR.
11683
11684 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
11685
11686         PR tree-optimization/63464
11687         * gimple.h (gimple_seq_discard): New prototype.
11688         * gimple.c: Include stringpool.h and tree-ssanames.h.
11689         (gimple_seq_discard): New function.
11690         * optabs.h (lshift_cheap_p): New prototype.
11691         * optabs.c (lshift_cheap_p): New function, moved from...
11692         * tree-switch-conversion.c (lshift_cheap_p): ... here.
11693         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
11694         (reassoc_branch_fixups): New variable.
11695         (update_range_test): Add otherrangep and seq arguments.
11696         Unshare exp.  If otherrange is NULL, use for other ranges
11697         array of pointers pointed by otherrangep instead.
11698         Emit seq before gimplified statements for tem.
11699         (optimize_range_tests_diff): Adjust update_range_test
11700         caller.
11701         (optimize_range_tests_xor): Likewise.  Fix up comment.
11702         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
11703         functions.
11704         (optimize_range_tests): Adjust update_range_test caller.
11705         Call optimize_range_tests_to_bit_test.
11706         (branch_fixup): New function.
11707         (execute_reassoc): Call branch_fixup.
11708
11709         PR tree-optimization/63302
11710         * tree-ssa-reassoc.c (optimize_range_tests_xor,
11711         optimize_range_tests_diff): Use !integer_pow2p () instead of
11712         tree_log2 () < 0.
11713
11714 2014-10-17  Martin Liska  <mliska@suse.cz>
11715
11716         * ipa-icf.c (sem_function::merge): Local flags are set to false
11717         to enforce equal calling convention to be used.
11718         * opts.c (common_handle_option): Indentation fix.
11719
11720 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
11721
11722         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
11723
11724 2014-10-17  Tom de Vries  <tom@codesourcery.com>
11725
11726         PR rtl-optimization/61605
11727         * regcprop.c (copyprop_hardreg_forward_1): Use
11728         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
11729
11730 2014-10-17  Tom de Vries  <tom@codesourcery.com>
11731
11732         PR rtl-optimization/61605
11733         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
11734         notice stores for noops.  Don't regard noops as copies.
11735
11736 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
11737
11738         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
11739         register in a special way.
11740         (__cpuid_count): Ditto.
11741         * config/i386/driver-i386.h: Protect with
11742         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
11743         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
11744         is required to compile the function.
11745
11746 2014-10-16  DJ Delorie  <dj@redhat.com>
11747
11748         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
11749         integers.
11750
11751         * config/rs6000/rs6000-c.c (rid_int128): New.
11752         (rs6000_macro_to_expand): Use instead of RID_INT128.
11753
11754 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
11755
11756         * function.h: Flatten file.  Remove includes, adjust prototypes to
11757         reflect only what is in function.h.
11758         (enum direction, struct args_size, struct locate_and_pad_arg_data,
11759         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
11760         from expr.h.
11761         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
11762         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
11763         prototypes to predict.h.
11764         (init_varasm_status): Move prototype to varasm.h.
11765         * expr.h: Adjust include files.
11766         (enum direction, struct args_size, struct locate_and_pad_arg_data,
11767         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
11768         to function.h.
11769         (locate_and_pad_parm): Move prototype to function.h.
11770         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
11771         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
11772         assign_temp, reposition_prologue_and_epilogue_notes,
11773         prologue_epilogue_contains, sibcall_epilogue_contains,
11774         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
11775         set_return_jump_label): Move prototypes to function.h.
11776         * predict.h (optimize_function_for_size_p,
11777         optimize_function_for_speed_p): Relocate prototypes from function.h.
11778         * shrink-wrap.h (emit_return_into_block, active_insn_between,
11779         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
11780         function.h.
11781         * varasm.h (init_varasm_status): Relocate prototype from function.h.
11782         * genattrtab.c (write_header): Add predict.h to include list.
11783         * genconditions.c (write_header): Add predict.h to include list.
11784         * genemit.c (main): Adjust header file includes.
11785         * gengtype.c (ifiles): Add flattened function.h header files.
11786         * genoutput.c (output_prologue): Add predict.h to include list.
11787         * genpreds.c (write_insn_preds_c): Adjust header file includes.
11788         * genrecog.c (write_header): Add flattened function.h header files.
11789         * alias.c: Adjust include files.
11790         * auto-inc-dec.c: Likewise.
11791         * basic-block.h: Likewise.
11792         * bb-reorder.c: Likewise.
11793         * bt-load.c: Likewise.
11794         * builtins.c: Likewise.
11795         * caller-save.c: Likewise.
11796         * calls.c: Likewise.
11797         * cfgbuild.c: Likewise.
11798         * cfgcleanup.c: Likewise.
11799         * cfgexpand.c: Likewise.
11800         * cfgloop.c: Likewise.
11801         * cfgloop.h: Likewise.
11802         * cfgrtl.c: Likewise.
11803         * cgraph.h: Likewise.
11804         * cgraphclones.c: Likewise.
11805         * cgraphunit.c: Likewise.
11806         * combine-stack-adj.c: Likewise.
11807         * combine.c: Likewise.
11808         * coverage.c: Likewise.
11809         * cprop.c: Likewise.
11810         * cse.c: Likewise.
11811         * cselib.c: Likewise.
11812         * dbxout.c: Likewise.
11813         * ddg.c: Likewise.
11814         * df-core.c: Likewise.
11815         * df-problems.c: Likewise.
11816         * df-scan.c: Likewise.
11817         * dojump.c: Likewise.
11818         * dwarf2cfi.c: Likewise.
11819         * dwarf2out.c: Likewise.
11820         * emit-rtl.c: Likewise.
11821         * except.c: Likewise.
11822         * explow.c: Likewise.
11823         * expr.c: Likewise.
11824         * final.c: Likewise.
11825         * function.c: Likewise.
11826         * gcse.c: Likewise.
11827         * gimple-fold.c: Likewise.
11828         * gimple-low.c: Likewise.
11829         * gimple-streamer.h: Likewise.
11830         * haifa-sched.c: Likewise.
11831         * ifcvt.c: Likewise.
11832         * ira.c: Likewise.
11833         * jump.c: Likewise.
11834         * lcm.c: Likewise.
11835         * loop-invariant.c: Likewise.
11836         * lra-assigns.c: Likewise.
11837         * lra-coalesce.c: Likewise.
11838         * lra-constraints.c: Likewise.
11839         * lra-eliminations.c: Likewise.
11840         * lra-lives.c: Likewise.
11841         * lra-spills.c: Likewise.
11842         * lra.c: Likewise.
11843         * lto-cgraph.c: Likewise.
11844         * lto-section-in.c: Likewise.
11845         * lto-section-out.c: Likewise.
11846         * lto-streamer-in.c: Likewise.
11847         * lto-streamer-out.c: Likewise.
11848         * mode-switching.c: Likewise.
11849         * modulo-sched.c: Likewise.
11850         * omp-low.c: Likewise.
11851         * optabs.c: Likewise.
11852         * passes.c: Likewise.
11853         * postreload-gcse.c: Likewise.
11854         * postreload.c: Likewise.
11855         * predict.c: Likewise.
11856         * profile.c: Likewise.
11857         * recog.c: Likewise.
11858         * ree.c: Likewise.
11859         * reg-stack.c: Likewise.
11860         * regcprop.c: Likewise.
11861         * reginfo.c: Likewise.
11862         * regrename.c: Likewise.
11863         * reload.c: Likewise.
11864         * reload1.c: Likewise.
11865         * reorg.c: Likewise.
11866         * resource.c: Likewise.
11867         * rtlanal.c: Likewise.
11868         * sched-deps.c: Likewise.
11869         * sched-ebb.c: Likewise.
11870         * sched-rgn.c: Likewise.
11871         * sel-sched-dump.c: Likewise.
11872         * sel-sched-ir.c: Likewise.
11873         * sel-sched.c: Likewise.
11874         * shrink-wrap.c: Likewise.
11875         * simplify-rtx.c: Likewise.
11876         * statistics.c: Likewise.
11877         * stmt.c: Likewise.
11878         * stor-layout.c: Likewise.
11879         * store-motion.c: Likewise.
11880         * symtab.c: Likewise.
11881         * targhooks.c: Likewise.
11882         * toplev.c: Likewise.
11883         * trans-mem.c: Likewise.
11884         * tree-cfg.c: Likewise.
11885         * tree-cfgcleanup.c: Likewise.
11886         * tree-dfa.c: Likewise.
11887         * tree-eh.c: Likewise.
11888         * tree-inline.c: Likewise.
11889         * tree-into-ssa.c: Likewise.
11890         * tree-nested.c: Likewise.
11891         * tree-nrv.c: Likewise.
11892         * tree-profile.c: Likewise.
11893         * tree-ssa-alias.c: Likewise.
11894         * tree-ssa-ccp.c: Likewise.
11895         * tree-ssa-copy.c: Likewise.
11896         * tree-ssa-copyrename.c: Likewise.
11897         * tree-ssa-dom.c: Likewise.
11898         * tree-ssa-operands.c: Likewise.
11899         * tree-ssa-propagate.c: Likewise.
11900         * tree-ssa-structalias.c: Likewise.
11901         * tree-ssa-tail-merge.c: Likewise.
11902         * tree-ssa-threadedge.c: Likewise.
11903         * tree-ssa-threadupdate.c: Likewise.
11904         * tree-ssa-uncprop.c: Likewise.
11905         * tree-ssa-uninit.c: Likewise.
11906         * tree-ssa.c: Likewise.
11907         * tree-stdarg.c: Likewise.
11908         * tree-tailcall.c: Likewise.
11909         * tree.c: Likewise.
11910         * tsan.c: Likewise.
11911         * valtrack.c: Likewise.
11912         * varasm.c: Likewise.
11913         * vmsdbgout.c: Likewise.
11914         * web.c: Likewise.
11915         * config/aarch64/aarch64.c: Add flattened includes from function.h.
11916         * config/alpha/alpha.c: Likewise.
11917         * config/arc/arc.c: Likewise.
11918         * config/arm/arm.c: Likewise.
11919         * config/avr/avr-log.c: Likewise.
11920         * config/avr/avr.c: Likewise.
11921         * config/bfin/bfin.c: Likewise.
11922         * config/c6x/c6x.c: Likewise.
11923         * config/cr16/cr16.c: Likewise.
11924         * config/cris/cris.c: Likewise.
11925         * config/darwin.c: Likewise.
11926         * config/epiphany/epiphany.c: Likewise.
11927         * config/epiphany/mode-switch-use.c: Likewise.
11928         * config/epiphany/resolve-sw-modes.c: Likewise.
11929         * config/fr30/fr30.c: Likewise.
11930         * config/frv/frv.c: Likewise.
11931         * config/h8300/h8300.c: Likewise.
11932         * config/i386/i386.c: Likewise.
11933         * config/ia64/ia64.c: Likewise.
11934         * config/iq2000/iq2000.c: Likewise.
11935         * config/lm32/lm32.c: Likewise.
11936         * config/m32c/m32c.c: Likewise.
11937         * config/m32r/m32r.c: Likewise.
11938         * config/m68k/m68k.c: Likewise.
11939         * config/mcore/mcore.c: Likewise.
11940         * config/mep/mep-pragma.c: Likewise.
11941         * config/mep/mep.c: Likewise.
11942         * config/microblaze/microblaze.c: Likewise.
11943         * config/mips/mips.c: Likewise.
11944         * config/mmix/mmix.c: Likewise.
11945         * config/mn10300/mn10300.c: Likewise.
11946         * config/moxie/moxie.c: Likewise.
11947         * config/msp430/msp430.c: Likewise.
11948         * config/nds32/nds32-cost.c: Likewise.
11949         * config/nds32/nds32-fp-as-gp.c: Likewise.
11950         * config/nds32/nds32-intrinsic.c: Likewise.
11951         * config/nds32/nds32-isr.c: Likewise.
11952         * config/nds32/nds32-md-auxiliary.c: Likewise.
11953         * config/nds32/nds32-memory-manipulation.c: Likewise.
11954         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
11955         * config/nds32/nds32-predicates.c: Likewise.
11956         * config/nds32/nds32.c: Likewise.
11957         * config/nios2/nios2.c: Likewise.
11958         * config/pa/pa.c: Likewise.
11959         * config/pdp11/pdp11.c: Likewise.
11960         * config/rl78/rl78.c: Likewise.
11961         * config/rs6000/rs6000.c: Likewise.
11962         * config/rx/rx.c: Likewise.
11963         * config/s390/s390.c: Likewise.
11964         * config/score/score.c: Likewise.
11965         * config/sh/sh.c: Likewise.
11966         * config/sparc/sparc.c: Likewise.
11967         * config/spu/spu.c: Likewise.
11968         * config/stormy16/stormy16.c: Likewise.
11969         * config/tilegx/tilegx.c: Likewise.
11970         * config/tilepro/tilepro.c: Likewise.
11971         * config/v850/v850.c: Likewise.
11972         * config/vax/vax.c: Likewise.
11973         * config/xtensa/xtensa.c: Likewise.
11974
11975 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
11976
11977         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
11978         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
11979
11980 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
11981
11982         * config/sh/sh-protos.h (fldi_ok): Remove.
11983         * config/sh/sh.c (fldi_ok): Likewise.
11984         (sh_secondary_reload): Don't use fldi_ok.
11985         * config/sh/constraints.md (G constraint, H constraint): Don't use
11986         fldi_ok.
11987
11988 2014-10-16  Martin Liska  <mliska@suse.cz>
11989
11990         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
11991         Cast to unsigned long.
11992         (sem_item_optimizer::dump_cong_classes): Likewise.
11993
11994 2014-10-16  Tom de Vries  <tom@codesourcery.com>
11995
11996         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
11997         with SSA_NAME_IN_FREELIST.
11998
11999 2014-10-16  Richard Biener  <rguenther@suse.de>
12000
12001         PR middle-end/63554
12002         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
12003         (fold_builtin_strncat_chk): Move ...
12004         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
12005         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
12006
12007 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
12008
12009         PR target/59401
12010         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
12011         GBR to 0.
12012
12013 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12014             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12015             Anna Tikhonova  <anna.tikhonova@intel.com>
12016             Ilya Tocar  <ilya.tocar@intel.com>
12017             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12018             Ilya Verbin  <ilya.verbin@intel.com>
12019             Kirill Yukhin  <kirill.yukhin@intel.com>
12020             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12021
12022         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
12023         V64QI modes.
12024
12025 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12026             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12027             Anna Tikhonova  <anna.tikhonova@intel.com>
12028             Ilya Tocar  <ilya.tocar@intel.com>
12029             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12030             Ilya Verbin  <ilya.verbin@intel.com>
12031             Kirill Yukhin  <kirill.yukhin@intel.com>
12032             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12033
12034         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
12035         V16SI, V32HI, V64QI modes.
12036
12037 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
12038
12039         PR target/53513
12040         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
12041         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
12042
12043         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
12044         to match fp insn patterns.
12045         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
12046         list.
12047         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
12048         expand_df_unop, expand_df_binop): Remove.
12049         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
12050         FPSCR_STAT_REG as not call clobbered.
12051         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
12052         invoking fpscr_set_from_mem.
12053
12054         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
12055         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
12056         FPSCR_STAT_REG.
12057         (REGISTER_NAMES): Adjust.
12058         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
12059         (FIRST_PSEUDO_REGISTER): Increase to 156.
12060         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
12061         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
12062         FPSCR_STAT_REG.
12063         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
12064         FPSCR_MODES_REG and FPSCR_STAT_REG.
12065         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
12066
12067         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
12068         FPSCR_SZ): Add new constants.
12069         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
12070
12071         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
12072         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
12073         Use TARGET_FPU_ANY condition.
12074         (fpu_switch peephole2): Remove.
12075         (fpu_switch split): Use simple_mem_operand to capture the mem and
12076         adjust split implementation.
12077         (extend_psi_si, truncate_si_psi): New insns.
12078         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
12079         set of FPSCR_MODES_REG.
12080
12081         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
12082         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
12083         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
12084         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
12085         call_value_compact, call_value_compact_rettramp, call,
12086         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
12087         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
12088         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
12089         sibcall_value_compact, sibcall_value, call_value_pop_compact,
12090         call_value_pop_compact_rettramp, various unnamed splits):
12091         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
12092         function uses.
12093
12094         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
12095         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
12096         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
12097         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
12098         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
12099
12100         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
12101         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
12102         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
12103         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
12104         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
12105         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
12106         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
12107
12108 2014-10-16  Martin Liska  <mliska@suse.cz>
12109             Jan Hubicka  <hubicka@ucw.cz>
12110
12111         * Makefile.in: New object files included.
12112         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
12113         is printed.
12114         (verify_edge_corresponds_to_fndecl): More sensitive verification
12115         of nodes that are merged by IPA ICF.
12116         * cgraph.h (cgraph_node::num_references): New function.
12117         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
12118         * common.opt: New options ipa-icf, ipa-icf-functions and
12119         ipa-icf-variables introduced.
12120         * doc/invoke.texi: Documentation of new options introduced.
12121         * ipa-icf-gimple.c: New file.
12122         * ipa-icf-gimple.h: New file.
12123         * ipa-icf.c: New file.
12124         * ipa-icf.h: New file.
12125         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
12126         (input_overwrite_node): Likewise.
12127         * lto-section-in.c: New icf section added.
12128         * lto-streamer.h (enum lto_section_type): Likewise.
12129         * opts.c (common_handle_option): New option added.
12130         * passes.def: New pass included.
12131         * timevar.def: Time variable for IPA ICF added.
12132         * tree-pass.h: New IPA ICF pass entry point added.
12133
12134 2014-10-16  Richard Biener  <rguenther@suse.de>
12135
12136         PR tree-optimization/63168
12137         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
12138         latches if after merging they are no longer simple.
12139         * cfghooks.c (merge_blocks): Handle merging a latch block
12140         into another block.
12141
12142 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12143             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12144             Anna Tikhonova  <anna.tikhonova@intel.com>
12145             Ilya Tocar  <ilya.tocar@intel.com>
12146             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12147             Ilya Verbin  <ilya.verbin@intel.com>
12148             Kirill Yukhin  <kirill.yukhin@intel.com>
12149             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12150
12151         * config/i386/sse.md
12152         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
12153         support AVX-512VL instructions.
12154
12155 2014-10-16  DJ Delorie  <dj@redhat.com>
12156
12157         * tree-core.h: Fix comment to not assume pointers are multiples of
12158         bytes.
12159
12160 2014-10-15  Tom Tromey  <tromey@redhat.com>
12161
12162         * timevar.h (class auto_timevar): New class.
12163
12164 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
12165
12166         PR go/59432
12167         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
12168         Remove the second alternative.
12169         (regprefix): Remove mode attribute.
12170         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
12171         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
12172
12173         Revert:
12174         2013-11-05  Ian Lance Taylor  <iant@google.com>
12175
12176         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
12177         If possible, add .cfi directives to record change to bx.
12178         * config/i386/i386.c (ix86_emit_cfi): New function.
12179         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
12180
12181 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
12182
12183         PR lto/62026
12184         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
12185         to duplicate.
12186         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
12187         at WPA time.
12188
12189 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
12190
12191         PR rtl-optimization/63448
12192         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
12193         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
12194         (LRA_MAX_INHERITANCE_PASSES): Use it.
12195         (lra_constraint_iter_after_spill): Remove.
12196         (lra_assignment_iter): New.
12197         (lra_assignment_iter_after_spill): New.
12198         * lra-assigns.c (lra_assignment_iter): New.
12199         (lra_assignment_iter_after_spill): New.
12200         (former_reload_pseudo_spill_p): New.
12201         (spill_for): Set up former_reload_pseudo_spill_p.
12202         (setup_live_pseudos_and_spill_after_risky): Ditto.
12203         (assign_by_spills): Ditto.
12204         (lra_assign): Increment lra_assignment_iter.  Print the iteration
12205         number.  Reset former_reload_pseudo_spill_p.  Check
12206         lra_assignment_iter_after_spill.
12207         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
12208         lra_assignment_iter and lra_assignment_iter_after_spill.
12209         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
12210         (lra_constraints): Remove code with
12211         lra_assignment_iter_after_spill.
12212
12213 2014-10-15  Teresa Johnson  <tejohnson@google.com>
12214
12215         PR bootstrap/63432
12216         * tree-ssa-threadupdate.c (recompute_probabilities): Better
12217         overflow checking.
12218
12219 2014-10-15  Renlin Li <renlin.li@arm.com>
12220
12221         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
12222         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
12223         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
12224         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
12225
12226 2014-10-15  Richard Biener  <rguenther@suse.de>
12227
12228         * gimple-fold.c (gimple_fold_call): Properly keep virtual
12229         SSA form up-to-date when devirtualizing a call to
12230         __builtin_unreachable and avoid fixing up EH info here.
12231
12232 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12233             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12234             Anna Tikhonova  <anna.tikhonova@intel.com>
12235             Ilya Tocar  <ilya.tocar@intel.com>
12236             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12237             Ilya Verbin  <ilya.verbin@intel.com>
12238             Kirill Yukhin  <kirill.yukhin@intel.com>
12239             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12240
12241         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
12242         to support AVX-512BW.
12243         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
12244         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
12245         (define_insn "*<plusminus_insn><mode>3"): Ditto.
12246         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
12247         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
12248         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
12249         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
12250         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
12251         (define_insn "*andnot<mode>3"): Ditto.
12252         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
12253         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
12254         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
12255         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
12256         (define_insn "*abs<mode>2"): Remove masking support.
12257         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
12258         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
12259         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
12260
12261 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12262             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12263             Anna Tikhonova  <anna.tikhonova@intel.com>
12264             Ilya Tocar  <ilya.tocar@intel.com>
12265             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12266             Ilya Verbin  <ilya.verbin@intel.com>
12267             Kirill Yukhin  <kirill.yukhin@intel.com>
12268             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12269
12270         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
12271         * config/i386/sse.md
12272         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
12273         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
12274         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
12275         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
12276         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
12277         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
12278         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
12279
12280 2014-10-15  Renlin Li <renlin.li@arm.com>
12281
12282         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
12283
12284 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
12285
12286         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
12287         MINUS_EXPR in unsigned type to avoid undefined behavior.
12288
12289 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
12290
12291         * stor-layout.c (self_referential_size): Do not promote arguments.
12292
12293 2014-10-15  Marek Polacek  <polacek@redhat.com>
12294
12295         * doc/invoke.texi: Update to reflect that GNU11 is the default
12296         mode for C.
12297         * c-common.h (c_language_kind): Update comment.
12298
12299 2014-10-15  Richard Biener  <rguenther@suse.de>
12300
12301         * hash-table.c: Include bconfig.h if building for the host.
12302         * hash-table.h: Do not include ggc.h on the host but just declare
12303         a few ggc allocation templates.
12304
12305 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
12306             Jeff Law  <law@redhat.com>
12307
12308         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
12309         multiple hard registers, use smaller mode derived from MODE.
12310
12311 2014-10-15  Andreas Schwab  <schwab@suse.de>
12312
12313         * explow.c (convert_memory_address_addr_space_1): Mark in_const
12314         as ATTRIBUTE_UNUSED.
12315
12316 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
12317
12318         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
12319         (decide_unrolling): ... this one.
12320         (peel_loops_completely): Remove.
12321         (decide_peel_simple): Remove.
12322         (decide_peel_once_rolling): Remove.
12323         (decide_peel_completely): Remove.
12324         (peel_loop_simple): Remove.
12325         (peel_loop_completely): Remove.
12326         (unroll_and_peel_loops): Rename to ...
12327         (unroll_loops): ... this one; handle only unrolling.
12328         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
12329         LPT_PEEL_SIMPLE.
12330         (UAP_PEEL): Remove.
12331         (unroll_and_peel_loops): Remove.
12332         (unroll_loops): New.
12333         * passes.def: Replace
12334         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
12335         * loop-init.c (gate_rtl_unroll_and_peel_loops,
12336         rtl_unroll_and_peel_loops): Rename to ...
12337         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
12338         (pass_rtl_unroll_and_peel_loops): Rename to ...
12339         (pass_rtl_unroll_loops): ... this one.
12340         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
12341         (make_pass_rtl_unroll_loops): New.
12342         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
12343         (canonicalize_loop_induction_variables): Update.
12344
12345 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
12346
12347         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
12348         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
12349         !TARGET_HARD_FLOAT_POSTINC.
12350         (*lsip, *ssip): new instructions.
12351
12352 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
12353
12354         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
12355         remove.
12356
12357 2014-10-14  Andrew Pinski  <apinski@cavium.com>
12358
12359         * explow.c (convert_memory_address_addr_space): Rename to ...
12360         (convert_memory_address_addr_space_1): This.  Add in_const argument.
12361         Inside a CONST RTL, permute the conversion and addition of constant
12362         for zero and sign extended pointers.
12363         (convert_memory_address_addr_space): New function.
12364
12365 2014-10-14  Andrew Pinski  <apinski@cavium.com>
12366
12367         Revert:
12368         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
12369
12370         PR middle-end/49721
12371         * explow.c (convert_memory_address_addr_space): Also permute the
12372         conversion and addition of constant for zero-extend.
12373
12374 2014-10-14  DJ Delorie  <dj@redhat.com>
12375
12376         * config/msp430/msp430-modes.def (PSI): Add.
12377
12378         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
12379         (msp430_hard_regno_nregs_with_padding): New.
12380         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
12381         (msp430_hard_regno_nregs_has_padding): New.
12382         (msp430_hard_regno_nregs_with_padding): New.
12383         (msp430_unwind_word_mode): Use PSImode instead of SImode.
12384         (msp430_addr_space_legitimate_address_p): New.
12385         (msp430_asm_integer): New.
12386         (msp430_init_dwarf_reg_sizes_extra): New.
12387         (msp430_print_operand): Use X suffix for PSImode even in small model.
12388         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
12389         (PTR_SIZE): ...but 4 bytes for EH.
12390         (SIZE_TYPE): Use __int20.
12391         (PTRDIFF_TYPE): Likewise.
12392         (INCOMING_FRAME_SP_OFFSET): Adjust.
12393         * config/msp430/msp430.md (movqi_topbyte): New.
12394         (movpsi): Use fixed suffixes.
12395         (movsipsi2): Enable for 430X, not large model.
12396         (extendhipsi2): Likewise.
12397         (zero_extendhisi2): Likewise.
12398         (zero_extendhisipsi2): Likewise.
12399         (extend_and_shift1_hipsi2): Likewise.
12400         (extendpsisi2): Likewise.
12401         (*bitbranch<mode>4_z): Fix suffix logic.
12402
12403 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
12404
12405         PR ada/62019
12406         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
12407         do not choke on null node.
12408         <VAR_DECL>: Likewise.
12409
12410 2014-10-14  DJ Delorie  <dj@redhat.com>
12411
12412         * machmode.h (int_n_data_t): New.
12413         (int_n_enabled_p): New.
12414         (int_n_data): New.
12415         * tree.c (int_n_enabled_p): New.
12416         (int_n_trees): New.
12417         (make_or_reuse_type): Check for all __intN types, not just
12418         __int128.
12419         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
12420         entries.
12421         * tree.h (int128_integer_type_node): Remove.
12422         (int128_unsigned_type_node): Remove.
12423         (int_n_trees_t): New.
12424         (int_n_enabled_p): New.
12425         (int_n_trees): New.
12426         * toplev.c (standard_type_bitsize): New.
12427         (do_compile): Check which __intN types are enabled for the current
12428         run.
12429         * builtin-types.def (BT_INT128): Remove.
12430         (BT_UINT128): Remove.
12431         * machmode.def: Add macro to create __int128 for all targets.
12432         * stor-layout.c (mode_for_size): Support __intN types.
12433         (smallest_mode_for_size): Likewise.
12434         (initialize_sizetypes): Support __intN types.
12435         * genmodes.c (struct mode_data): Add int_n field.
12436         (blank_mode): Likewise.
12437         (INT_N): New.
12438         (make_int_n): New.
12439         (emit_insn_modes_h): Count __intN entries and define
12440         NUM_INT_N_ENTS.
12441         (emit_mode_int_n): New.
12442         (emit_insn_modes_c): Call it.
12443         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
12444         types, not just __int128.
12445         * tree-core.h (integer_type_kind): Remove __int128-specific
12446         entries, reserve spots for __intN entries.
12447
12448         * config/msp430/msp430-modes.def (PSI): Add.
12449
12450 2014-10-14  Kito Cheng  <kito@0xlab.org>
12451
12452         * ira.c: Fix typo in comment.
12453         * ira.h: Ditto.
12454         * ira-build.c: Ditto.
12455         * ira-color.c: Ditto.
12456         * ira-emit.c: Ditto.
12457         * ira-int.h: Ditto.
12458         * ira-lives.c: Ditto.
12459
12460 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
12461
12462         PR rtl-optimization/63475
12463         * alias.c (true_dependence_1): Always use get_addr to extract
12464         true address operands from x_addr and mem_addr.  Use extracted
12465         address operands to check for references with alignment ANDs.
12466         Use extracted address operands with find_base_term and
12467         base_alias_check. For noncanonicalized operands call canon_rtx with
12468         extracted address operand.
12469         (write_dependence_1): Ditto.
12470         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
12471
12472 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
12473
12474         PR target/63534
12475         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
12476         __morestack local.
12477
12478 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12479             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12480             Anna Tikhonova  <anna.tikhonova@intel.com>
12481             Ilya Tocar  <ilya.tocar@intel.com>
12482             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12483             Ilya Verbin  <ilya.verbin@intel.com>
12484             Kirill Yukhin  <kirill.yukhin@intel.com>
12485             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12486
12487         * config/i386/i386.c
12488         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
12489         (ix86_expand_int_vcond): Ditto.
12490
12491 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12492             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12493             Anna Tikhonova  <anna.tikhonova@intel.com>
12494             Ilya Tocar  <ilya.tocar@intel.com>
12495             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12496             Ilya Verbin  <ilya.verbin@intel.com>
12497             Kirill Yukhin  <kirill.yukhin@intel.com>
12498             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12499
12500         * config/i386/i386.c
12501         (emit_reduc_half): Handle V64QI and V32HI mode.
12502         * config/i386/sse.md
12503         (define_mode_iterator VI_AVX512BW): New.
12504         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
12505
12506 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12507             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12508             Anna Tikhonova  <anna.tikhonova@intel.com>
12509             Ilya Tocar  <ilya.tocar@intel.com>
12510             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12511             Ilya Verbin  <ilya.verbin@intel.com>
12512             Kirill Yukhin  <kirill.yukhin@intel.com>
12513             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12514
12515         * config/i386/sse.md
12516         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
12517
12518 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12519             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12520             Anna Tikhonova  <anna.tikhonova@intel.com>
12521             Ilya Tocar  <ilya.tocar@intel.com>
12522             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12523             Ilya Verbin  <ilya.verbin@intel.com>
12524             Kirill Yukhin  <kirill.yukhin@intel.com>
12525             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12526
12527         * config/i386/i386.c
12528         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
12529         * config/i386/sse.md
12530         (define_mode_iterator VI): Add V64QI and V32HI modes.
12531
12532 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12533             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12534             Anna Tikhonova  <anna.tikhonova@intel.com>
12535             Ilya Tocar  <ilya.tocar@intel.com>
12536             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12537             Ilya Verbin  <ilya.verbin@intel.com>
12538             Kirill Yukhin  <kirill.yukhin@intel.com>
12539             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12540
12541         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
12542
12543 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12544             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12545             Anna Tikhonova  <anna.tikhonova@intel.com>
12546             Ilya Tocar  <ilya.tocar@intel.com>
12547             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12548             Ilya Verbin  <ilya.verbin@intel.com>
12549             Kirill Yukhin  <kirill.yukhin@intel.com>
12550             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12551
12552         * config/i386/sse.md
12553         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
12554         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
12555
12556 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12557             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12558             Anna Tikhonova  <anna.tikhonova@intel.com>
12559             Ilya Tocar  <ilya.tocar@intel.com>
12560             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12561             Ilya Verbin  <ilya.verbin@intel.com>
12562             Kirill Yukhin  <kirill.yukhin@intel.com>
12563             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12564
12565         * config/i386/sse.md
12566         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
12567         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
12568
12569 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12570             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12571             Anna Tikhonova  <anna.tikhonova@intel.com>
12572             Ilya Tocar  <ilya.tocar@intel.com>
12573             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12574             Ilya Verbin  <ilya.verbin@intel.com>
12575             Kirill Yukhin  <kirill.yukhin@intel.com>
12576             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12577
12578         * config/i386/sse.md
12579         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
12580         (define_mode_iterator VI2_AVX2): Add V32HI mode.
12581         (define_expand "mul<mode>3<mask_name>"): Add masking.
12582         (define_insn "*mul<mode>3<mask_name>"): Ditto.
12583         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
12584         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
12585         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
12586         (define_mode_attr SDOT_PMADD_SUF): Ditto.
12587         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
12588         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
12589         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
12590         (define_insn "avx2_packusdw"): Delete.
12591         (define_insn "sse4_1_packusdw"): Ditto.
12592         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
12593
12594 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12595             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12596             Anna Tikhonova  <anna.tikhonova@intel.com>
12597             Ilya Tocar  <ilya.tocar@intel.com>
12598             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12599             Ilya Verbin  <ilya.verbin@intel.com>
12600             Kirill Yukhin  <kirill.yukhin@intel.com>
12601             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12602
12603         * config/i386/sse.md
12604         (define_insn "vec_dup<mode>"): Update constraints.
12605
12606 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12607             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12608             Anna Tikhonova  <anna.tikhonova@intel.com>
12609             Ilya Tocar  <ilya.tocar@intel.com>
12610             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12611             Ilya Verbin  <ilya.verbin@intel.com>
12612             Kirill Yukhin  <kirill.yukhin@intel.com>
12613             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12614
12615         * config/i386/sse.md
12616         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
12617         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
12618         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
12619
12620 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12621             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12622             Anna Tikhonova  <anna.tikhonova@intel.com>
12623             Ilya Tocar  <ilya.tocar@intel.com>
12624             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12625             Ilya Verbin  <ilya.verbin@intel.com>
12626             Kirill Yukhin  <kirill.yukhin@intel.com>
12627             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12628
12629         * config/i386/sse.md
12630         (define_expand "mul<mode>3<mask_name>"): Add masking.
12631
12632 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12633             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12634             Anna Tikhonova  <anna.tikhonova@intel.com>
12635             Ilya Tocar  <ilya.tocar@intel.com>
12636             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12637             Ilya Verbin  <ilya.verbin@intel.com>
12638             Kirill Yukhin  <kirill.yukhin@intel.com>
12639             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12640
12641         * config/i386/sse.md
12642         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
12643         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
12644
12645 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12646             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12647             Anna Tikhonova  <anna.tikhonova@intel.com>
12648             Ilya Tocar  <ilya.tocar@intel.com>
12649             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12650             Ilya Verbin  <ilya.verbin@intel.com>
12651             Kirill Yukhin  <kirill.yukhin@intel.com>
12652             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12653
12654         * config/i386/sse.md
12655         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
12656         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
12657         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
12658         Ditto.
12659
12660 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12661             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12662             Anna Tikhonova  <anna.tikhonova@intel.com>
12663             Ilya Tocar  <ilya.tocar@intel.com>
12664             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12665             Ilya Verbin  <ilya.verbin@intel.com>
12666             Kirill Yukhin  <kirill.yukhin@intel.com>
12667             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12668
12669         * config/i386/sse.md
12670         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
12671         use VF_128_256 mode iterator and update assembler emit code.
12672         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
12673         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
12674         Add masking, use VF_128_256 mode iterator.
12675         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
12676         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
12677         Add masking, use VF_128_256 mode iterator and update assembler emit
12678         code.
12679         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
12680         (define_mode_attr avx512flogicsuff): Delete.
12681         (define_insn "avx512f_<logic><mode>"): Ditto.
12682         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
12683         MODE_TI.
12684         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
12685
12686 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12687             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12688             Anna Tikhonova  <anna.tikhonova@intel.com>
12689             Ilya Tocar  <ilya.tocar@intel.com>
12690             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12691             Ilya Verbin  <ilya.verbin@intel.com>
12692             Kirill Yukhin  <kirill.yukhin@intel.com>
12693             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12694
12695         * config/i386/sse.md
12696         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
12697         (define_expand "vashr<mode>3<mask_name>"): Add masking,
12698         use VI12_128 mode iterator.
12699         (define_expand "ashrv2di3<mask_name>"): New.
12700
12701 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12702             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12703             Anna Tikhonova  <anna.tikhonova@intel.com>
12704             Ilya Tocar  <ilya.tocar@intel.com>
12705             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12706             Ilya Verbin  <ilya.verbin@intel.com>
12707             Kirill Yukhin  <kirill.yukhin@intel.com>
12708             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12709
12710         * config/i386/i386.c
12711         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
12712         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
12713         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
12714         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
12715         CODE_FOR_avx512vl_ucmpv4si3_mask.
12716         * config/i386/sse.md
12717         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
12718         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
12719         (define_insn
12720         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
12721         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
12722         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
12723         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
12724         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
12725         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
12726
12727 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12728             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12729             Anna Tikhonova  <anna.tikhonova@intel.com>
12730             Ilya Tocar  <ilya.tocar@intel.com>
12731             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12732             Ilya Verbin  <ilya.verbin@intel.com>
12733             Kirill Yukhin  <kirill.yukhin@intel.com>
12734             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12735
12736         * config/i386/sse.md
12737         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
12738         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
12739         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
12740         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
12741         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
12742         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
12743         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
12744         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
12745         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
12746
12747 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12748             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12749             Anna Tikhonova  <anna.tikhonova@intel.com>
12750             Ilya Tocar  <ilya.tocar@intel.com>
12751             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12752             Ilya Verbin  <ilya.verbin@intel.com>
12753             Kirill Yukhin  <kirill.yukhin@intel.com>
12754             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12755
12756         * config/i386/sse.md
12757         (define_insn "avx512f_blendm<mode>"): Delete.
12758         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
12759         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
12760         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
12761         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
12762         (define_insn
12763         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
12764         Remove.
12765         (define_insn
12766         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
12767         New.
12768         (define_insn
12769         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
12770         Ditto.
12771         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
12772         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
12773         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
12774         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
12775         Delete.
12776         (define_insn
12777         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
12778         New.
12779         (define_insn
12780         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
12781         Ditto.
12782         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
12783         Delete.
12784         (define_insn
12785         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
12786         New.
12787         (define_insn
12788         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
12789         Ditto.
12790
12791 2014-10-14  Richard Biener  <rguenther@suse.de>
12792
12793         PR tree-optimization/63512
12794         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
12795         modified.
12796
12797 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
12798
12799         PR target/63260
12800         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
12801         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
12802         of FPSCR.
12803         (negsf2_i): Rename to *negsf2_i.
12804         (abssf2_i): Rename to *abssf2_i.
12805         (negdf2_i): Rename to *negdf2_i.
12806         (absdf2_i): Rename to *absdf2_i.
12807
12808 2014-10-14  Felix Yang  <felix.yang@huawei.com>
12809             Jeff Law  <law@redhat.com>
12810
12811         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
12812         "replace" into boolean bitfields; turn member "loop_depth" into a short
12813         integer; add new member "no_equiv" and "reserved".
12814         (no_equiv): Set no_equiv of struct equivalence if register is marked
12815         as having no known equivalence.
12816         (update_equiv_regs): Check all definitions for a multiple-set
12817         register to make sure that the RHS have the same value.
12818
12819 2014-10-13  Richard Henderson  <rth@redhat.com>
12820
12821         * combine-stack-adj.c (no_unhandled_cfa): New.
12822         (maybe_merge_cfa_adjust): New.
12823         (combine_stack_adjustments_for_block): Use them.
12824
12825 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
12826
12827         * Makefile.in (TAGS): Tag ../include files.
12828
12829 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12830
12831         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
12832         to rs6000_dbx_register_number.
12833         (DWARF_FRAME_REGNUM): Redefine as identity map.
12834         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
12835         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
12836         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
12837         argument to handle .debug_frame and .eh_frame directly.  Always
12838         translate SPE high register numbers.  Add special treatment for CR,
12839         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
12840
12841         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
12842         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
12843         (RS6000_USE_DWARF_NUMBERING): Define.
12844         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
12845         (RS6000_USE_DWARF_NUMBERING): Define.
12846         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
12847         (RS6000_USE_DWARF_NUMBERING): Define.
12848         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
12849         (RS6000_USE_DWARF_NUMBERING): Define.
12850         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
12851         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
12852
12853 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
12854
12855         * config/i386/i386.c (ix86_address_cost): Lower cost for
12856         when address contains GOT register.
12857
12858 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
12859             Vladimir Makarov  <vmakarov@redhat.com>
12860
12861         PR target/8340
12862         PR middle-end/47602
12863         PR rtl-optimization/55458
12864         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
12865         (ix86_init_pic_reg): New.
12866         (ix86_select_alt_pic_regnum): Add check on pseudo register.
12867         (ix86_save_reg): Likewise.
12868         (ix86_expand_prologue): Remove PIC register initialization
12869         now performed in ix86_init_pic_reg.
12870         (ix86_output_function_epilogue): Add check on pseudo register.
12871         (set_pic_reg_ever_alive): New.
12872         (legitimize_pic_address): Replace df_set_regs_ever_live with new
12873         set_pic_reg_ever_alive.
12874         (legitimize_tls_address): Likewise.
12875         (ix86_pic_register_p): New check.
12876         (ix86_delegitimize_address): Add check on pseudo register.
12877         (ix86_expand_call): Insert move from pseudo PIC register to ABI
12878         defined REAL_PIC_OFFSET_TABLE_REGNUM.
12879         (TARGET_INIT_PIC_REG): New.
12880         (TARGET_USE_PSEUDO_PIC_REG): New.
12881         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
12882         if pic_offset_table_rtx exists.
12883         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
12884         Document.
12885         * doc/tm.texi: Regenerate.
12886         * function.c (assign_parms): Generate pseudo register for PIC.
12887         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
12888         register.
12889         * ira-color.c (color_pass): Add check on pseudo register.
12890         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
12891         register.
12892         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
12893         register.
12894         (ira): Add target specific PIC register initialization.
12895         (do_reload): Keep PIC pseudo register.
12896         * lra-assigns.c (spill_for): Add checks on pseudo register.
12897         * lra-constraints.c (contains_symbol_ref_p): New.
12898         (lra_constraints): Enable lra risky transformations when PIC is pseudo
12899         register.
12900         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
12901         * target.def (use_pseudo_pic_reg): New.
12902         (init_pic_reg): New.
12903
12904 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
12905
12906         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
12907         Remove m_SILVERMONT and m_INTEL from the tune.
12908
12909 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12910
12911         PR libfortran/63471
12912         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
12913         when _HPUX_SOURCE is defined.
12914
12915 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
12916
12917         PR tree-optimization/62127
12918         * tree.c (remap_type_1): When remapping array, remap
12919         also its type.
12920
12921 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
12922
12923         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
12924         longer impact parallelization.
12925
12926 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
12927
12928         PR bootstrap/63496
12929         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
12930
12931 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
12932
12933         * asan.c (instrument_derefs): BIT_FIELD_REF added.
12934
12935 2014-10-13  Richard Biener  <rguenther@suse.de>
12936
12937         PR tree-optimization/63419
12938         * gimple-fold.h (gimple_convert): New function.
12939         * gimple-fold.c (gimple_convert): Likewise.
12940         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
12941         to split out required conversions early.
12942
12943 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
12944
12945         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
12946         Add the parts of an insn in reverse order, with the pattern at
12947         the top of the queue.  Detect when we're iterating over a SEQUENCE
12948         pattern and in that case just consider patterns of subinstructions.
12949
12950 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
12951
12952         PR target/59401
12953         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
12954         of rtx.
12955         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
12956         insn walking.
12957         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
12958         address.  Use def chains to handle GBR clobbering call insns.
12959
12960 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
12961
12962         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
12963         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
12964         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
12965         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
12966         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
12967         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
12968         * doc/gty.texi (for_user): Document new option.
12969         * gengtype.c (create_user_defined_type): Don't try to get a struct for
12970         char.
12971         (walk_type): Don't error out on for_user option.
12972         (write_func_for_structure): Emit user marking routines if requested by
12973         for_user option.
12974         (write_local_func_for_structure): Likewise.
12975         (main): Mark types with for_user option as used.
12976         * ggc.h (gt_pch_nx): Add overload for unsigned int.
12977         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
12978         * hash-table.h (ggc_hasher): New struct.
12979         (hash_table::create_ggc): New function.
12980         (gt_pch_nx): New overload for hash_table.
12981
12982 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
12983
12984         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
12985         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
12986         * config/sh/sh.c: Likewise.
12987         * config/sh/sh-mem.cc: Likewise.
12988         * config/sh/sh.md: Likewise.
12989         * config/sh/predicates.md: Likewise.
12990         * config/sh/sync.md: Likewise.
12991
12992 2014-10-11  Martin Liska  <mliska@suse.cz>
12993
12994         PR middle-end/63376
12995         * cgraphunit.c (symbol_table::process_new_functions): Missing call
12996         for call_cgraph_insertion_hooks added.
12997
12998 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
12999
13000         PR c/63495
13001         * stor-layout.c (min_align_of_type): Don't decrease alignment
13002         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
13003         TYPE_USER_ALIGN is set.
13004
13005 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
13006
13007         PR rtl-optimization/63483
13008         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
13009         references when alignment ANDs are involved.
13010         (write_dependence_p): Ditto.
13011         (may_alias_p): Ditto.
13012
13013 2014-10-10  Marek Polacek  <polacek@redhat.com>
13014
13015         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
13016         * doc/invoke.texi: Document -fsanitize=object-size.
13017         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
13018         or it into SANITIZE_UNDEFINED.
13019         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
13020         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
13021         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
13022         * opts.c (common_handle_option): Handle -fsanitize=object-size.
13023         * ubsan.c: Include tree-object-size.h.
13024         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
13025         (ubsan_expand_bounds_ifn): Use false instead of 0.
13026         (ubsan_expand_objsize_ifn): New function.
13027         (instrument_object_size): New function.
13028         (pass_ubsan::execute): Add object size instrumentation.
13029         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
13030
13031 2014-10-10  Richard Henderson  <rth@redhat.com>
13032
13033         PR target/63404
13034         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
13035         Restrict the set of expressions we're willing to move.
13036
13037 2014-10-10  Jeff Law  <law@redhat.com>
13038
13039         * ira.c (struct equivalence): Promote INIT_INSNs field to
13040         an rtx_insn_list.  Add comments.
13041         (no_equiv): Promote LIST to an rtx_insn_list.  Update
13042         testing for and creating the special marker.  Use methods
13043         to extract the insn and next pointers.  Promote INSN to an
13044         rtx_insn.
13045         (update_equiv_regs): Update test for special marker in the
13046         INIT_INSNs list.
13047
13048 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13049
13050         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
13051         * configure: Regenerate.
13052         * config/aarch64/aarch64.c (aarch64_override_options): Handle
13053         TARGET_FIX_ERR_A53_835769_DEFAULT.
13054         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
13055         value to 2.
13056         * doc/install.texi (aarch64*-*-*): Document
13057         new --enable-fix-cortex-a53-835769 option.
13058
13059 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13060             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13061
13062         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
13063         (ADJUST_INSN_LENGTH): Define.
13064         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
13065         * config/aarch64/aarch64.c (is_mem_p): New function.
13066         (is_memory_op): Likewise.
13067         (aarch64_prev_real_insn): Likewise.
13068         (is_madd_op): Likewise.
13069         (dep_between_memop_and_curr): Likewise.
13070         (aarch64_madd_needs_nop): Likewise.
13071         (aarch64_final_prescan_insn): Likewise.
13072         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
13073         and -mno-fix-cortex-a53-835769 options.
13074
13075 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
13076
13077         PR tree-optimization/63464
13078         * tree-switch-conversion.c (struct case_bit_test): Remove
13079         hi and lo fields, add wide_int mask field.
13080         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
13081         hi/lo fields into wide_int mask operations, optimize by pretending
13082         minval to be 0 if maxval is small enough.
13083         (process_switch): Adjust caller.
13084
13085 2014-10-10  Richard Biener  <rguenther@suse.de>
13086
13087         PR tree-optimization/63379
13088         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
13089         a neutral operand for min/max when it is not a reduction chain.
13090
13091 2014-10-10  Richard Biener  <rguenther@suse.de>
13092
13093         PR tree-optimization/63476
13094         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
13095         (BB_LIVE_VOP_ON_EXIT): New define.
13096         (create_expression_by_pieces): Assign VUSEs to stmts.
13097         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
13098         (pass_pre::execute): Assert virtual SSA form is up-to-date
13099         after insertion.
13100
13101 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
13102
13103         * lra-assigns.c (assign_by_spills): Error out on spill failure.
13104
13105 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
13106
13107         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
13108         assertion.
13109
13110 2014-10-09  Richard Biener  <rguenther@suse.de>
13111
13112         PR tree-optimization/63380
13113         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
13114         may trap.
13115
13116 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13117
13118         * config/avr/avr.opt (mmcu=): Change to have a string value.
13119         (mn-flash=, mskip-bug, march=, mrmw): New options.
13120         (HeaderInclude): New.
13121         (mmcu=): Remove Var / Init clauses.
13122         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
13123         -specs option.
13124         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
13125         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
13126         (SYMBOL_FLAG_IO_LOW): Define.
13127         (avr_device_to_as, avr_device_to_ld): Don't declare.
13128         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
13129         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
13130         (EXTRA_SPEC_FUNCTIONS): Don't define.
13131         (ASM_SPEC): Translate -arch= option to -mmcu= option.
13132         (LINK_SPEC): Translate -arch= option to -m= option.
13133         Don't use device_to_ld / device_to_data_start.
13134         (STARTFILE_SPEC): Now empty.
13135         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
13136         * config/avr/gen-avr-mmcu-specs.c: New file.
13137         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
13138         (s-device-specs): Likewise.
13139         (GCC_PASSES): Add s-device-specs.
13140         (install-driver): Depend on install-device-specs.
13141         (install-device-specs): New rule.
13142         * config/avr/avr.c (avr_option_override): Look up mcu arch by
13143         avr_arch_index and provide fallback initialization for avr_n_flash.
13144         (varasm.h): #include.
13145         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
13146         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
13147         (avr_attribute_table): Add "io", "address" and "io_low".
13148         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
13149         Add special handling for symbols with "io" and/or "address" attributes.
13150         (avr_asm_asm_output_aligned_bss): New function.
13151         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
13152         as appropriate.  Handle io_low attribute.
13153         (avr_out_sbxx_branch): Handle symbolic io addresses.
13154         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
13155         avr_n_flash instead of avr_current_device->n_flash.
13156         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
13157         (avr_emit_movmemhi): Likewise.
13158         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
13159         Use TARGET_RMW instead of avr_current_device->dev_attributes.
13160         Don't define avr_current_device->macro (that's the specfile's job).
13161         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
13162         * config/avr/avr.c (avr_2word_insn_p): Likewise.
13163         * config/avr/avr.md (*cpse.ne): Likewise.
13164         (mov<mode>): Use avr_eval_addr_attrib.
13165         (cbi): Change constraint for low_io_address_operand operand to "i".
13166         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
13167         * config/avr/predicates.md (io_address_operand):
13168         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
13169         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
13170         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
13171         Update prototype.
13172         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
13173         * config/avr/genmultilib.awk: Use -march=.
13174         Remove Multilib matches processing.
13175         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
13176         * config/avr/avr-arch.h: Add double include guard.
13177         (avr_mcu_t) <library_name>: Update comment.
13178         * config/avr/driver-avr.c (avr_device_to_as): Delete.
13179         (avr_device_to_ld, avr_device_to_data_start): Likewise.
13180         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
13181         (avr_device_to_sp8): Likewise.
13182         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
13183
13184         * doc/extend.texi (io, address): Document new AVR variable attributes.
13185         (io_low): Likewise.
13186
13187 2014-10-09  Marek Polacek  <polacek@redhat.com>
13188
13189         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
13190
13191 2014-10-08  Richard Biener  <rguenther@suse.de>
13192
13193         PR tree-optimization/61969
13194         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
13195         variables.
13196
13197 2014-10-09  Richard Biener  <rguenther@suse.de>
13198
13199         PR tree-optimization/63445
13200         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
13201         overflow for non-equality compares.
13202
13203 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
13204
13205         PR rtl-optimization/57003
13206         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
13207         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
13208         killing regs_invalidated_by_call.
13209
13210 2014-10-08  Teresa Johnson  <tejohnson@google.com>
13211
13212         PR bootstrap/63432.
13213         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
13214         (ssa_fix_duplicate_block_edges): Invoke it.
13215         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
13216
13217 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
13218
13219         PR target/52941
13220         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
13221         atomic_fetch_<fetchop_name>si_hard,
13222         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
13223         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
13224         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
13225         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
13226
13227 2014-10-08  Rong Xu  <xur@google.com>
13228
13229         * gcov-tool.c (profile_overlap): New driver function
13230         to compute profile overlap.
13231         (print_overlap_usage_message): New.
13232         (overlap_usage): New.
13233         (do_overlap): New.
13234         (print_usage): Add calls to overlap function.
13235         (main): Ditto.
13236         * doc/gcov-tool.texi: Add documentation.
13237
13238 2014-10-08  Steve Ellcey  <sellcey@mips.com>
13239
13240         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
13241         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
13242
13243 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
13244
13245         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
13246         pattern matching of MEM_REF.
13247         (check_stmt_for_type_change): Update.
13248
13249 2014-10-08  Steve Ellcey  <sellcey@mips.com>
13250
13251         * config/mips/linux64.h: Remove.
13252         * config/mips/gnu-user64.h: Remove.
13253         * gcc.config (mips*-*-*): Remove references to linux64.h and
13254         gnu-user64.h
13255         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
13256         with modified version from gnu-user64.h.
13257         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
13258         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
13259         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
13260         linux64.h.
13261         (GNU_USER_LINK_EMULATION64): Ditto.
13262         (GNU_USER_LINK_EMULATIONN32): Ditto.
13263         (GLIBC_DYNAMIC_LINKER32): Ditto.
13264         (GLIBC_DYNAMIC_LINKER64): Ditto.
13265         (GLIBC_DYNAMIC_LINKERN32): Ditto.
13266         (UCLIBC_DYNAMIC_LINKER32): Ditto.
13267         (UCLIBC_DYNAMIC_LINKER64): Ditto.
13268         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
13269         (BIONIC_DYNAMIC_LINKERN32): Ditto.
13270         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
13271         (GLIBC_DYNAMIC_LINKER): Delete.
13272         (UCLIBC_DYNAMIC_LINKER): Delete.
13273
13274 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
13275             Richard Biener  <rguenther@suse.de>
13276
13277         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
13278         Get address space from operand 0 (BASE).
13279
13280 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
13281
13282         PR target/61387
13283         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
13284
13285 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
13286
13287         * dwarf2out.c: Remove current_function_has_inlines.
13288         (gen_subprogram_die): Same.
13289         (gen_inlined_subroutine_die): Same.
13290
13291 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
13292
13293         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
13294         type.
13295         (_addcarry_u64): Ditto.
13296         (_addcarryx_u64): Ditto.
13297
13298 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
13299
13300         * cgraph.h (cgraph_node::get_fun): Declare.
13301         * cgraph.c (cgraph_node::get_fun): New method.
13302         * ipa-inline.c (can_inline_edge_p): Use it.
13303
13304 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
13305
13306         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
13307         and -ftrapping-math.
13308         * lto-wrapper.c (merge_and_complain): Likewise.
13309         (run_gcc): Likewise.
13310
13311 2014-10-06  Rong Xu  <xur@google.com>
13312
13313         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
13314         * tree-profile.c: (params.h): New include.
13315         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
13316         and __gcov_indirect_call_topn_counters for
13317         indirect_call_topn_profile.
13318         (gimple_init_edge_profiler): New decls for
13319         __gcov_indirect_call_topn_profiler.
13320         (gimple_gen_ic_profiler): Generate the correct profiler call.
13321         (gimple_gen_ic_func_profiler): Fix format.
13322         * value-prof.c (params.h): New include.
13323         (dump_histogram_value): Hanlde indirect_call_topn counters.
13324         (stream_in_histogram_value): Ditto.
13325         (gimple_indirect_call_to_profile): Use indirect_call_topn
13326         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
13327         (gimple_find_values_to_profile): Hanlde indirect_call_topn
13328         counters.
13329         * value-prof.h (enum hist_type): Histrogram type for
13330         indirect_call_topn counters.
13331         * profile.c (instrument_values): Instrument
13332         indirect_call_topn counters.
13333
13334 2014-10-06  Rong Xu  <xur@google.com>
13335
13336         * Makefile.in: Fix dependence.
13337         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
13338         indirect call topn profiler.
13339         * gcov-io.h: Ditto.
13340
13341 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
13342
13343         * calls.c (expand_call): Do not use the target as the return slot if
13344         it is not sufficiently aligned.
13345
13346 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13347
13348         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
13349         discussion of permutes and why we don't handle them.
13350
13351 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
13352
13353         * config/sparc/predicates.md (int_register_operand): Delete.
13354
13355 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
13356
13357         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
13358
13359 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
13360
13361         * ubsan.h (ubsan_get_source_location): New prototype.
13362         * ubsan.c (ubsan_source_location_type): New variable.
13363         Function renamed to ...
13364         (ubsan_get_source_location_type): ... this.  Cache
13365         return value in ubsan_source_location_type variable.
13366         (ubsan_source_location, ubsan_create_data): Use
13367         ubsan_get_source_location_type instead of
13368         ubsan_source_location_type.
13369         * asan.c (asan_protect_global): Don't protect globals
13370         with ubsan_get_source_location_type () type.
13371         (asan_add_global): Provide global decl location info
13372         if possible.
13373
13374 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
13375
13376         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
13377         sanity check.
13378
13379 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
13380
13381         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
13382         on size.
13383         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
13384         into vptr pointer.
13385         (ipa_polymorphic_call_context::dump): Fix formating.
13386         (walk_ssa_copies): Add logic avoiding loops; update uses.
13387         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
13388
13389 2014-10-02  Mark Wielaard  <mjw@redhat.com>
13390
13391         PR debug/63239
13392         * dwarf2out.c (gen_subprogram_die): When a member function is
13393         explicitly deleted then add a DW_AT_GNU_deleted attribute.
13394         * langhooks.h (struct lang_hooks_for_decls): Add
13395         function_decl_deleted_p langhook.
13396         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
13397         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
13398
13399 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
13400
13401         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
13402         NULL pointer checks.
13403         (ipa_polymorphic_call_context::get_dynamic_type): Return true
13404         if type doesn't change.
13405         * cgraph.h (cgraph_indirect_call_info): New flag.
13406         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
13407         (cgraph_node::dump): Dump it.
13408         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
13409         of context.get_dynamic_type.
13410         (ipa_make_edge_direct_to_target): Do not speculate
13411         edge that is already speuclative.
13412         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
13413         speculate to __builtin_unreachable
13414         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
13415         vptr_changed.
13416         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
13417
13418 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
13419
13420         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
13421         get_dynamic_type; drop TODO.
13422         * ipa-polymorphic-call.c
13423         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
13424         for otr_type to be unknown.
13425
13426 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
13427
13428         * common/config/score/score-common.c: Remove.
13429         * config.gcc: Remove support for score-*.
13430         * config/score/constraints.md: Remove.
13431         * config/score/elf.h: Remove.
13432         * config/score/predicates.md: Remove.
13433         * config/score/score-conv.h: Remove.
13434         * config/score/score-generic.md: Remove.
13435         * config/score/score-modes.def: Remove.
13436         * config/score/score-protos.h: Remove.
13437         * config/score/score.c: Remove.
13438         * config/score/score.h: Remove.
13439         * config/score/score.md: Remove.
13440         * config/score/score.opt: Remove.
13441         * doc/md.texi: Don't document score-*.
13442
13443 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
13444
13445         PR pch/63429
13446         * genconditions.c: Directly include ggc.h before rtl.h.
13447
13448 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
13449
13450         * ipa-polymorphic-call.c
13451         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
13452         code determining speculative type.
13453         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
13454
13455 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13456
13457         * altivec.md (altivec_lvsl): New define_expand.
13458         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
13459         (altivec_lvsr): New define_expand.
13460         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
13461         * rs6000.c (rs6000_expand_builtin): Change to use
13462         altivec_lvs[lr]_direct; remove commented-out code.
13463
13464 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13465
13466         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13467         Issue a warning message when vec_lvsl or vec_lvsr is used with a
13468         little endian target.
13469
13470 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13471
13472         * tree-pretty-print.c (dump_location): Make it extern. Dump also
13473         the column.
13474         * tree-pretty-print.h (dump_location): Declare.
13475         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
13476         (pp_gimple_stmt_1): Likewise.
13477         (dump_implicit_edges): Likewise.
13478         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
13479         LOCATION_LINE.
13480
13481
13482 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
13483
13484         * gcc.c (driver::global_initializations): Remove "const" so
13485         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
13486         and decoded_options_count.
13487
13488 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
13489
13490         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
13491         macro.
13492         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
13493         TARGET_E500_DOUBLE case here.
13494
13495 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
13496
13497         PR c++/54427
13498         PR c++/57198
13499         PR c++/58845
13500         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
13501
13502 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
13503
13504         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
13505         * lto-cgraph.c (lto_output_edge, input_edge): Stream
13506         in_polymorphic_cdtor
13507         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
13508         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
13509         * cgraphclones.c (cgraph_edge::clone): Likewise.
13510         * ipa-prop.c (update_jump_functions_after_inlining,
13511         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
13512         to possible_dynamic_type_change.
13513         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
13514         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
13515         IN_POLY_CDOTR argument.
13516
13517         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
13518         for BASE and OUTER_TYPE being NULL.
13519         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
13520         in_poly_cdtor parameter.
13521
13522 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
13523
13524         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
13525         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
13526         TARGET_AVX512F.
13527         (expand_vec_perm_1): Likewise.
13528
13529 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
13530             Uros Bizjak  <ubizjak@gmail.com>
13531
13532         PR tree-optimization/61403
13533         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
13534         error in comment.  Also optimize 256-bit vectors for AVX2
13535         or AVX (floating vectors only), provided the first permutation
13536         can be performed in one insn.
13537
13538 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
13539
13540         * gcc.c (class driver): New class.
13541         (main): Reimplement in terms of driver::main, moving most of the
13542         locals to be locals within individual methods of class driver.
13543         The remaining locals "explicit_link_files", "decoded_options" and
13544         "decoded_options_count" are used by multiple driver:: methods, and
13545         so become member data.  Doing so isolates the argc/argv reads and
13546         writes.  Replace "goto out" with a special exit code from
13547         new method driver::prepare_infiles.  Split out the old
13548         implementation of main into the following...
13549         (driver::main): New function, corresponding to the old "main"
13550         implementation.
13551         (driver::set_progname): New function, taken from the old
13552         "main" implementation.
13553         (driver::expand_at_files): Likewise.
13554         (driver::decode_argv): Likewise.
13555         (driver::global_initializations): Likewise.
13556         (driver::build_multilib_strings): Likewise.
13557         (driver::set_up_specs): Likewise.
13558         (driver::putenv_COLLECT_GCC): Likewise.
13559         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
13560         (driver::handle_unrecognized_options): Likewise.
13561         (driver::maybe_print_and_exit): Likewise.
13562         (driver::prepare_infiles): Likewise.
13563         (driver::do_spec_on_infiles): Likewise.
13564         (driver::maybe_run_linker): Likewise.
13565         (driver::final_actions): Likewise.
13566         (driver::get_exit_code): Likewise.
13567
13568 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
13569
13570         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
13571         don't emit empty ctors.
13572
13573 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
13574
13575         * convert.c (convert_to_integer): Do not introduce useless conversions
13576         between integral types.
13577
13578 2014-10-03  David Sherwood  <david.sherwood@arm.com>
13579
13580         * ira-int.h (ira_allocno): Mark hard_regno as signed.
13581
13582 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
13583
13584         * lra-constraints.c (inherit_in_ebb): Handle calls with
13585         multiple return values.
13586         * caller-save.c (save_call_clobbered_regs): Likewise.
13587
13588 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
13589
13590         * tree-vect-data-refs.c (vect_permute_load_chain,
13591         vect_shift_permute_load_chain): Fix a typo in temporary var names,
13592         suffle3 to shuffle3.
13593
13594         PR libgomp/61200
13595         * omp-low.c (taskreg_contexts): New variable.
13596         (scan_omp_parallel): Push newly created context into taskreg_contexts
13597         vector and move record layout code to finish_taskreg_scan.
13598         (scan_omp_task): Likewise.
13599         (finish_taskreg_scan): New function.
13600         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
13601         vector elements and release it.
13602
13603         PR target/62128
13604         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
13605         of palignr arguments can't be used due to min 0 or max - min
13606         too high, try also op0, op1 order of palignr arguments.
13607
13608 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
13609
13610         * cgraph.h (ipa_polymorphic_call_context):
13611         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
13612         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
13613         * ipa-polymorphic-call.c
13614         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
13615         past end of dynamic types.
13616         (ipa_polymorphic_call_context::stream_out,
13617         speculative_outer_type): Stream dynamic flag.
13618         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
13619         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
13620         Clear DYNAMIC.
13621         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
13622         set it.
13623         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
13624         * ipa-prop.c (update_jump_functions_after_inlining,
13625         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
13626
13627 2014-10-02  Teresa Johnson  <tejohnson@google.com>
13628
13629         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
13630         up when synthesizing counts to avoid rounding errors.
13631
13632 2014-10-02  Teresa Johnson  <tejohnson@google.com>
13633
13634         PR middle-end/63422
13635         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
13636         asserts to handle incoming insanities.
13637
13638 2014-10-02  Martin Jambor  <mjambor@suse.cz>
13639
13640         PR tree-optimization/63375
13641         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
13642         references.
13643
13644 2014-10-02  Olivier Hainque  <hainque@adacore.com>
13645
13646         * Makefile.in (CROSS): Define, to @CROSS.
13647
13648 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
13649
13650         PR target/62128
13651         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
13652         if it expands to a single insn only.
13653         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
13654         fail unless in_order is true.  Add forward declaration.
13655         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
13656         is useful for one_operand_p.
13657         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
13658
13659 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
13660
13661         * cgraphclones.c (build_function_type_skip_args): Do not make new
13662         type variant of old.
13663
13664 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
13665
13666         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
13667         when speculation is added.
13668         (ipa_edge_args): Add polymorphic_call_contexts.
13669         (ipa_get_ith_polymorhic_call_context): New accesor.
13670         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
13671         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
13672         (ipa_compute_jump_functions_for_edge): Compute contexts.
13673         (update_jump_functions_after_inlining): Update contexts.
13674         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
13675         update dumping; add speculative edge creation.
13676         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
13677         context updating.
13678         (update_indirect_edges_after_inlining): Pass down context.
13679         (ipa_edge_duplication_hook): Duplicate contexts.
13680         (ipa_write_node_info): Stream out contexts.
13681         (ipa_read_node_info): Stream in contexts.
13682         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
13683         types.
13684         (try_speculative_devirtualization): New function.
13685         * ipa-utils.h (try_speculative_devirtualization): Declare.
13686
13687 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
13688
13689         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
13690         dumping during WPA.
13691
13692 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
13693
13694         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
13695         type variants.
13696
13697 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
13698
13699         * ipa-polymorphic-call.c
13700         (ipa_polymorphic_call_context::restrict_to_inner_class):
13701         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
13702         use speculation_consistent_p to do so; Add CONSDER_BASES
13703         and CONSIDER_PLACEMENT_NEW parameters.
13704         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
13705         short circuit obvious cases.
13706         (ipa_polymorphic_call_context::dump): Improve formatting.
13707         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
13708         combine_speculation_with to record speculations; Do not ICE when
13709         object is located in pointer type decl; do not ICE for methods
13710         of UNION_TYPE; do not record nonpolymorphic types.
13711         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
13712         (ipa_polymorphic_call_context::combine_speculation_with): New method.
13713         (ipa_polymorphic_call_context::combine_with): New method.
13714         (ipa_polymorphic_call_context::make_speculative): Move here; use
13715         combine speculation.
13716         * cgraph.h (ipa_polymorphic_call_context): Update
13717         restrict_to_inner_class prototype; add offset_by, make_speculative,
13718         combine_with, useless_p, combine_speculation_with and
13719         speculation_consistent_p methods.
13720         (ipa_polymorphic_call_context::offset_by): New method.
13721         (ipa_polymorphic_call_context::useless_p): New method.
13722
13723 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
13724
13725         PR rtl-optimization/62151
13726         * combine.c (can_combine_p): Allow the destination register of INSN
13727         to be clobbered in I3.
13728         (subst): Do not substitute into clobbers of registers.
13729
13730 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
13731
13732         PR debug/63342
13733         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
13734         offset, TARGET_MEM_REF and SSA_NAME.
13735
13736         * config/i386/i386.c (expand_vec_perm_palignr): Handle
13737         256-bit vectors for TARGET_AVX2.
13738
13739         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
13740         dfirst permutation.
13741
13742         PR target/63428
13743         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
13744         argument to avx2_permv2ti.
13745
13746 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13747
13748         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
13749
13750 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
13751
13752         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
13753         (fmod<mode>3): Ditto.
13754         (fpremxf4_i387): Ditto.
13755         (reminderxf3): Ditto.
13756         (reminder<mode>3): Ditto.
13757         (fprem1xf4_i387): Ditto.
13758
13759 2014-09-30  Teresa Johnson  <tejohnson@google.com>
13760
13761         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
13762         duplicate_blocks bitmap.
13763         (remove_ctrl_stmt_and_useless_edges): Ditto.
13764         (create_block_for_threading): Ditto.
13765         (compute_path_counts): New function.
13766         (update_profile): Ditto.
13767         (recompute_probabilities): Ditto.
13768         (update_joiner_offpath_counts): Ditto.
13769         (freqs_to_counts_path): Ditto.
13770         (clear_counts_path): Ditto.
13771         (ssa_fix_duplicate_block_edges): Update profile info.
13772         (ssa_create_duplicates): Pass new parameter.
13773         (ssa_redirect_edges): Remove old profile update.
13774         (thread_block_1): New duplicate_blocks bitmap,
13775         remove old profile update.
13776         (thread_single_edge): Pass new parameter.
13777
13778 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
13779
13780         PR middle-end/62120
13781         * varasm.c (decode_reg_name_and_count): Check availability for
13782         registers from ADDITIONAL_REGISTER_NAMES.
13783
13784 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
13785
13786         PR plugins/63410
13787         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
13788         (PLUGIN_HEADERS): Add pass-instances.def.
13789
13790 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
13791
13792         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
13793         iterator.
13794         * config/aarch64/aarch64-simd.md
13795         (aarch64_sqdmull_laneq<mode>): Expand iterator.
13796         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
13797         (vqdmulls_lane_s32): Fix return type.
13798         (vqdmulls_laneq_s32): New.
13799
13800 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
13801
13802         PR inline-asm/63282
13803         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
13804         or invert_jump_1 if jump isn't any_condjump_p.
13805
13806 2014-09-30  Terry Guo  <terry.guo@arm.com>
13807
13808         * config/arm/arm-cores.def (cortex-m7): New core name.
13809         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
13810         (fpv5-d16): Ditto.
13811         * config/arm/arm-tables.opt: Regenerated.
13812         * config/arm/arm-tune.md: Regenerated.
13813         * config/arm/arm.h (TARGET_VFP5): New macro.
13814         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
13815         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
13816         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
13817         * doc/invoke.texi: Document new cpu and fpu names.
13818
13819 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
13820
13821         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
13822         before sinking insn.
13823
13824 2014-09-30  David Sherwood  <david.sherwood@arm.com>
13825
13826         * ira-int.h (ira_allocno): Add "wmode" field.
13827         * ira-build.c (create_insn_allocnos): Add new "parent" function
13828         parameter.
13829         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
13830         that cannot be accessed in wmode.
13831
13832 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
13833
13834         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
13835         integer overflow.
13836
13837 2014-09-29  Andi Kleen  <ak@linux.intel.com>
13838
13839         * opts.c (print_filtered_help): Print --param min/max/default
13840         with -Q.
13841
13842 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13843
13844         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
13845
13846 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
13847
13848         * tree-vrp.c (get_single_symbol): New function.
13849         (build_symbolic_expr): Likewise.
13850         (symbolic_range_based_on_p): New predicate.
13851         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
13852         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
13853         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
13854         operand is symbolic and based on the other operand.
13855
13856 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
13857
13858         * config/microblaze/microblaze.md (call_internal1): Use VOID
13859         instead of SI to fix "((void (*)(void)) 0)()" issue
13860
13861 2014-09-29  Nick Clifton  <nickc@redhat.com>
13862
13863         * config/msp430/msp430.c (msp430_expand_prologue): Return a
13864         CLOBBER rtx for naked functions.
13865         (msp430_expand_epilogue): Likewise.
13866         (msp430_use_f5_series_hwmult): Cache result.
13867         (use_32bit_hwmult): Cache result.
13868         (msp430_no_hwmult): New function.
13869         (msp430_output_labelref): Use it.
13870
13871 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
13872
13873         PR middle-end/63247
13874         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
13875         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
13876         use the alignment of avar rather than ovar.
13877
13878 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
13879
13880         * config/pa/pa.c (pa_output_function_epilogue): Only update
13881         last_address when a nonnote insn is found.
13882
13883 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
13884
13885         PR ipa/60665
13886         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
13887
13888 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
13889
13890         PR ipa/62121
13891         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
13892         fix pasto in checking array size.
13893
13894 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
13895
13896         PR middle-end/35545
13897         * passes.def (pass_tracer): Move before last dominator pass.
13898
13899 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
13900
13901         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
13902         users.
13903         (run_attempt): Handle errors of "pex_run" invocation.
13904
13905 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
13906
13907         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
13908         (CC1_SPEC): Define.
13909         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
13910         (TARGET_ASAN_SHADOW_OFFSET): Define.
13911
13912 2014-09-26  Martin Liska  <mliska@suse.cz>
13913
13914         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
13915         introduced.
13916         * cgraph.h: Likewise.
13917         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
13918         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
13919         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
13920         * tree-ssa-alias.h: Likewise.
13921
13922 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
13923             Max Ostapenko  <m.ostapenko@partner.samsung.com>
13924
13925         * common.opt: New option.
13926         * doc/invoke.texi: Describe new option.
13927         * gcc.c (execute): Don't free first string early, but at the end
13928         of the function.  Call retry_ice if compiler exited with
13929         ICE_EXIT_CODE.
13930         (main): Factor out common code.
13931         (print_configuration): New function.
13932         (files_equal_p): Likewise.
13933         (check_repro): Likewise.
13934         (run_attempt): Likewise.
13935         (do_report_bug): Likewise.
13936         (append_text): Likewise.
13937         (try_generate_repro): Likewise
13938
13939 2014-09-25  Andi Kleen  <ak@linux.intel.com>
13940
13941         * config/i386/i386.c (x86_print_call_or_nop): New function.
13942         (x86_function_profiler): Support -mnop-mcount and
13943         -mrecord-mcount.
13944         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
13945         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
13946
13947 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
13948
13949         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
13950         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
13951         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
13952         Remove.
13953
13954 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
13955
13956         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
13957         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
13958         types_odr_comparable): Declare.
13959         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
13960         * ipa-polymorphic-call.c: New file.
13961         (contains_polymorphic_type_p, possible_placement_new,
13962         ipa_polymorphic_call_context::restrict_to_inner_class,
13963         contains_type_p, decl_maybe_in_construction_p,
13964         ipa_polymorphic_call_context::stream_out,
13965         ipa_polymorphic_call_context::debug,
13966         ipa_polymorphic_call_context::stream_in,
13967         ipa_polymorphic_call_context::set_by_decl,
13968         ipa_polymorphic_call_context::set_by_invariant,
13969         walk_ssa_copies,
13970         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
13971         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
13972         extr_type_from_vtbl_ptr_store, record_known_type
13973         check_stmt_for_type_change,
13974         ipa_polymorphic_call_context::get_dynamic_type): Move here from
13975         ipa-devirt.c
13976         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
13977         and streamer-hooks.h
13978         (contains_polymorphic_type_p, possible_placement_new,
13979         ipa_polymorphic_call_context::restrict_to_inner_class,
13980         contains_type_p, decl_maybe_in_construction_p,
13981         ipa_polymorphic_call_context::stream_out,
13982         ipa_polymorphic_call_context::debug,
13983         ipa_polymorphic_call_context::stream_in,
13984         ipa_polymorphic_call_context::set_by_decl,
13985         ipa_polymorphic_call_context::set_by_invariant,
13986         walk_ssa_copies,
13987         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
13988         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
13989         extr_type_from_vtbl_ptr_store, record_known_type
13990         check_stmt_for_type_change,
13991         ipa_polymorphic_call_context::get_dynamic_type): Move to
13992         ipa-polymorphic-call.c
13993         (type_all_derivations_known_p, types_odr_comparable,
13994         types_must_be_same_for_odr): Export.
13995         (type_known_to_have_no_deriavations_p): New function.
13996         * Makefile.in: Add ipa-polymorphic-call.c
13997
13998 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
13999
14000         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
14001         for better storage.
14002         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
14003         (possible_polymorphic_call_targets): Instead of computing both
14004         speculative and non-speculative answers, do just one at a time.
14005         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
14006         (dump_targets): Break out from ...
14007         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
14008         and non-speculative lists.
14009         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
14010         * ipa-utils.h (possible_polymorphic_call_targets): Update.
14011
14012 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
14013
14014         PR rtl-optimization/63348
14015         * emit-rtl.c (try_split): Do not emit extra barrier.
14016
14017 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
14018
14019         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
14020         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
14021         new predicates.
14022         (aarch64_<sur>shll2_n<mode>): Likewise.
14023         (aarch64_<sur>shr_n<mode>): Likewise.
14024         (aarch64_<sur>sra_n<mode>: Likewise.
14025         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
14026         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
14027         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
14028         * config/aarch64/iterators.md (ve_mode): New.
14029         (offsetlr): Remap to infix text for use in new predicates.
14030         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
14031         (aarch64_simd_shift_imm_hi): Likewise.
14032         (aarch64_simd_shift_imm_si): Likewise.
14033         (aarch64_simd_shift_imm_di): Likewise.
14034         (aarch64_simd_shift_imm_offset_qi): Likewise.
14035         (aarch64_simd_shift_imm_offset_hi): Likewise.
14036         (aarch64_simd_shift_imm_offset_si): Likewise.
14037         (aarch64_simd_shift_imm_offset_di): Likewise.
14038         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
14039         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
14040         (aarch64_simd_shift_imm_bitsize_si): Likewise.
14041         (aarch64_simd_shift_imm_bitsize_di): Likewise.
14042
14043 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
14044
14045         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
14046         new created BB as the intersection of live-in from "old_dest" and
14047         live-out from "bb".
14048
14049 2014-09-25  Felix Yang  <felix.yang@huawei.com>
14050
14051         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
14052         * genautomata.c (merge_states): Ditto.
14053
14054 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
14055
14056         PR target/62218
14057         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
14058         in instruction sequence.
14059
14060 2014-09-25  Nick Clifton  <nickc@redhat.com>
14061
14062         PR target/62218
14063         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
14064         in instruction sequence.
14065
14066 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14067
14068         PR target/63335
14069         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
14070         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
14071
14072 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14073             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14074             Anna Tikhonova  <anna.tikhonova@intel.com>
14075             Ilya Tocar  <ilya.tocar@intel.com>
14076             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14077             Ilya Verbin  <ilya.verbin@intel.com>
14078             Kirill Yukhin  <kirill.yukhin@intel.com>
14079             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14080
14081         * config/i386/sse.md
14082         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
14083         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
14084         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
14085         (define_expand "<avx512>_perm<mode>_mask"): ... this.
14086         Use VI8F_256_512 mode iterator.
14087         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
14088         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
14089
14090 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14091             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14092             Anna Tikhonova  <anna.tikhonova@intel.com>
14093             Ilya Tocar  <ilya.tocar@intel.com>
14094             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14095             Ilya Verbin  <ilya.verbin@intel.com>
14096             Kirill Yukhin  <kirill.yukhin@intel.com>
14097             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14098
14099         * config/i386/sse.md
14100         (define_insn "avx_movshdup256<mask_name>"): Add masking.
14101         (define_insn "sse3_movshdup<mask_name>"): Ditto.
14102         (define_insn "avx_movsldup256<mask_name>"): Ditto.
14103         (define_insn "sse3_movsldup<mask_name>"): Ditto.
14104         (define_insn "vec_dupv2df<mask_name>"): Ditto.
14105         (define_insn "*vec_concatv2df"): Add EVEX version.
14106
14107 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14108             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14109             Anna Tikhonova  <anna.tikhonova@intel.com>
14110             Ilya Tocar  <ilya.tocar@intel.com>
14111             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14112             Ilya Verbin  <ilya.verbin@intel.com>
14113             Kirill Yukhin  <kirill.yukhin@intel.com>
14114             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14115
14116         * config/i386/sse.md
14117         (define_insn "vec_set<mode>_0"): Add EVEX version.
14118
14119 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14120             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14121             Anna Tikhonova  <anna.tikhonova@intel.com>
14122             Ilya Tocar  <ilya.tocar@intel.com>
14123             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14124             Ilya Verbin  <ilya.verbin@intel.com>
14125             Kirill Yukhin  <kirill.yukhin@intel.com>
14126             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14127
14128         * config/i386/sse.md
14129         (define_insn
14130         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
14131         New.
14132         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
14133         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
14134         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
14135         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
14136         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
14137         (define_expand "sse2_cvtpd2ps_mask): New.
14138         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
14139         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
14140
14141 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14142             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14143             Anna Tikhonova  <anna.tikhonova@intel.com>
14144             Ilya Tocar  <ilya.tocar@intel.com>
14145             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14146             Ilya Verbin  <ilya.verbin@intel.com>
14147             Kirill Yukhin  <kirill.yukhin@intel.com>
14148             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14149
14150         * config/i386/i386.c
14151         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
14152         (ufix_notruncv8dfv8si2_mask_round): ... this.
14153         * config/i386/sse.md
14154         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
14155         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
14156         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
14157         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
14158         (define_expand "sse2_cvtpd2dq"): Delete.
14159         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
14160         make 2nd operand const0 vector.
14161         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
14162         Delete.
14163         (define_mode_attr pd2udqsuff): New.
14164         (define_insn
14165         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
14166         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
14167         (define_insn "*avx_cvttpd2dq256_2"): Delete.
14168         (define_expand "sse2_cvttpd2dq"): Ditto.
14169         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
14170         make 2nd operand const0 vector.
14171
14172 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
14173
14174         PR tree-optimization/63341
14175         * tree-vectorizer.h (vect_create_data_ref_ptr,
14176         vect_create_addr_base_for_vector_ref): Add another tree argument
14177         defaulting to NULL_TREE.
14178         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
14179         argument, pass it down to vect_create_addr_base_for_vector_ref.
14180         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
14181         add that to base_offset too if non-NULL.
14182         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
14183         for dr_explicit_realign_optimized set it to vector byte size
14184         - 1 instead of setting offset, pass byte_offset down to
14185         vect_create_data_ref_ptr.
14186
14187 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
14188
14189         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
14190         forgotten debug output; canonicalize querries more wtih LTO.
14191
14192 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
14193
14194         * cgraph.h (class ipa_polymorphic_call_context): Move here from
14195         ipa-utils.h; add stream_int and stream_out methods.
14196         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
14197         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
14198         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
14199         add CONTEXT.
14200         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
14201         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
14202         ipa_polymorphic_call_context::clear_speculation,
14203         ipa_polymorphic_call_context::clear_outer_type): Move here from
14204         ipa-utils.h
14205         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
14206         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
14207         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
14208         ipa_polymorphic_call_context::clear_speculation,
14209         ipa_polymorphic_call_context::clear_outer_type): Likewise.
14210         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
14211         streamer-hooks.h
14212         (ipa_polymorphic_call_context::stream_out): New method.
14213         (ipa_polymorphic_call_context::stream_in): New method.
14214         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
14215         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
14216         OUTER_TYPE.
14217         (ipa_analyze_call_uses): Simplify.
14218         (update_indirect_edges_after_inlining): Do not care about outer_type.
14219         (ipa_write_indirect_edge_info): Update.
14220         (ipa_write_indirect_edge_info): Likewise.
14221         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
14222         (dump_edge_flags): Break out from ...
14223         (cgraph_node::dump): ... here; dump indirect edges.
14224
14225 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
14226
14227         * ipa-utils.h (polymorphic_call_context): Add
14228         metdhos dump, debug and clear_outer_type.
14229         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
14230         (ipa_polymorphic_call_context::clear_outer_type): New method.
14231         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
14232         * ipa-devirt.c (types_odr_comparable): New function.
14233         (types_must_be_same_for_odr): New function.
14234         (odr_subtypes_equivalent_p): Simplify.
14235         (possible_placement_new): Break out from ...
14236         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
14237         be more cuatious about returning false in cases the context may be
14238         valid in derived type or via placement new.
14239         (contains_type_p): Clear maybe_derived_type
14240         (ipa_polymorphic_call_context::dump): New method.
14241         (ipa_polymorphic_call_context::debug): New method.
14242         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
14243         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
14244         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
14245         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
14246         to suceed on all valid cases; remove confused sanity check.
14247         (dump_possible_polymorphic_call_targets): Simplify.
14248
14249 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
14250
14251         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
14252         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
14253         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
14254         varpool.c: Rename all instances of DECL_ABSTRACT to
14255         DECL_ABSTRACT_P.
14256
14257 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14258
14259         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
14260         special handling for stores whose SET_SRC is an UNSPEC (such as
14261         UNSPEC_STVE).
14262
14263 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
14264
14265         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
14266         !REG_P (src) to release more instruction sink opportunities.
14267
14268 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
14269
14270         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
14271         move costs for 128-bit types.
14272
14273 2014-09-24  Martin Jambor  <mjambor@suse.cz>
14274
14275         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
14276         when duplicating a PASS_THROUGH jump function when creating a
14277         speculative edge.
14278
14279 2014-09-24  Marek Polacek  <polacek@redhat.com>
14280
14281         PR c/61405
14282         PR c/53874
14283         * asan.c (maybe_instrument_call): Add default case.
14284         * ipa-pure-const.c (special_builtin_state): Likewise.
14285         * predict.c (expr_expected_value_1): Likewise.
14286         * lto-streamer-out.c (write_symbol): Initialize variable.
14287
14288 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14289
14290         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
14291         the lane.
14292         (vmuld_laneq_f64): Likewise.
14293         (vmuls_lane_f32): Likewise.
14294         (vmuls_laneq_f32): Likewise.
14295
14296 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
14297
14298         PR bootstrap/63235
14299         * varpool.c (varpool_node::add): Pass decl attributes
14300         to lookup_attribute.
14301
14302 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
14303
14304         PR sanitizer/63316
14305         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
14306
14307 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14308
14309         PR tree-optimization/63266
14310         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
14311         marker for unknown byte value.
14312         (MARKER_MASK): New macro.
14313         (MARKER_BYTE_UNKNOWN): New macro.
14314         (HEAD_MARKER): New macro.
14315         (do_shift_rotate): Mark bytes with unknown values due to sign
14316         extension when doing an arithmetic right shift. Replace hardcoded
14317         mask for marker by new MARKER_MASK macro.
14318         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
14319         numbers accordingly.
14320
14321 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14322             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14323             Anna Tikhonova  <anna.tikhonova@intel.com>
14324             Ilya Tocar  <ilya.tocar@intel.com>
14325             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14326             Ilya Verbin  <ilya.verbin@intel.com>
14327             Kirill Yukhin  <kirill.yukhin@intel.com>
14328             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14329
14330         * config/i386/sse.md
14331         (define_insn
14332         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
14333         Add masking.
14334         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
14335         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
14336
14337 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14338             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14339             Anna Tikhonova  <anna.tikhonova@intel.com>
14340             Ilya Tocar  <ilya.tocar@intel.com>
14341             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14342             Ilya Verbin  <ilya.verbin@intel.com>
14343             Kirill Yukhin  <kirill.yukhin@intel.com>
14344             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14345
14346         * config/i386/sse.md
14347         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
14348         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
14349         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
14350         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
14351         (define_expand "avx512vl_pshuflw_mask"): New.
14352         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
14353         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
14354         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
14355         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
14356         (define_expand "avx512vl_pshufhw_mask"): New.
14357         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
14358
14359 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14360             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14361             Anna Tikhonova  <anna.tikhonova@intel.com>
14362             Ilya Tocar  <ilya.tocar@intel.com>
14363             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14364             Ilya Verbin  <ilya.verbin@intel.com>
14365             Kirill Yukhin  <kirill.yukhin@intel.com>
14366             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14367
14368         * config/i386/i386.c
14369         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
14370         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
14371         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
14372         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
14373         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
14374         * config/i386/sse.md
14375         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
14376         (define_insn
14377         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
14378         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
14379         (define_insn
14380         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
14381         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
14382         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
14383         (define_expand "avx512vl_pshufd_mask"): New.
14384         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
14385
14386 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14387             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14388             Anna Tikhonova  <anna.tikhonova@intel.com>
14389             Ilya Tocar  <ilya.tocar@intel.com>
14390             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14391             Ilya Verbin  <ilya.verbin@intel.com>
14392             Kirill Yukhin  <kirill.yukhin@intel.com>
14393             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14394
14395         * config/i386/i386.c
14396         (CODE_FOR_avx2_extracti128): Rename to ...
14397         (CODE_FOR_avx_vextractf128v4di): this.
14398         (CODE_FOR_avx2_inserti128): Rename to ...
14399         (CODE_FOR_avx_vinsertf128v4di): this.
14400         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
14401         CODE_FOR_avx_vextractf128v4di.
14402         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
14403         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
14404         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
14405         CODE_FOR_avx512vl_vinsertv8si.
14406         * config/i386/sse.md
14407         (define_expand
14408         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
14409         AVX512_VEC mode iterator.
14410         (define_insn
14411         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
14412         Ditto.
14413         (define_expand
14414         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
14415         AVX512_VEC_2 mode iterator.
14416         (define_insn "vec_set_lo_<mode><mask_name>"): New.
14417         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
14418         (define_expand "avx512vl_vinsert<mode>"): Ditto.
14419         (define_insn "avx2_vec_set_lo_v4di"): Delete.
14420         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
14421         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
14422         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
14423         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
14424         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
14425         (define_expand "avx2_extracti128"): Delete.
14426         (define_expand "avx2_inserti128"): Ditto.
14427
14428 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14429             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14430             Anna Tikhonova  <anna.tikhonova@intel.com>
14431             Ilya Tocar  <ilya.tocar@intel.com>
14432             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14433             Ilya Verbin  <ilya.verbin@intel.com>
14434             Kirill Yukhin  <kirill.yukhin@intel.com>
14435             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14436
14437         * config/i386/sse.md
14438         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
14439         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
14440         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
14441         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
14442         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
14443         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
14444         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
14445         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
14446         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
14447         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
14448         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
14449         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
14450         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
14451
14452 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
14453
14454         PR rtl-optimization/63210
14455         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
14456         HARD_REGNO is not available for CONFLICT_A.
14457
14458 2014-09-23  Andi Kleen  <ak@linux.intel.com>
14459
14460         * cgraph.h (symtab_node): Add no_reorder attribute.
14461         (symbol_table::output_asm_statements): Remove.
14462         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
14463         (cgraph_node::create_version_clone): Dito.
14464         (symbol_table::output_asm_statements): Remove.
14465         * trans-mem.c (ipa_tm_create_version_alias): Dito.
14466         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
14467         (output_in_order): Add no_reorder flag. Only handle no_reorder
14468         nodes when set.
14469         (symbol_table::compile): Add separate pass for no_reorder nodes.
14470         (process_common_attributes): Set no_reorder flag in symtab node.
14471         Add node argument.
14472         (process_function_and_variable_attributes): Pass symtab nodes to
14473         process_common_attributes.
14474         * doc/extend.texi (no_reorder): Document no_reorder attribute.
14475         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
14476         (lto_output_varpool_node): Dito.
14477         (input_overwrite_node): Dito.
14478         (input_varpool_node): Dito.
14479         * varpool.c (varpool_node::add): Set no_reorder attribute.
14480         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
14481         (symbol_table::output_variables): Dito.
14482         * symtab.c (symtab_node::dump_base): Print no_reorder.
14483
14484 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
14485
14486         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
14487         be INVALID_REGNUM.
14488
14489 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
14490
14491         * configure: Regenerate.
14492
14493 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
14494
14495         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
14496         when result_mode == shift_mode.
14497
14498 2014-09-23  Kostya Serebryany  <kcc@google.com>
14499
14500         Update to match the changed asan API.
14501         * asan.c (asan_global_struct): Update the __asan_global definition
14502         to match the new API.
14503         (asan_add_global): Ditto.
14504         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
14505         to __asan_init_v4.
14506
14507 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14508
14509         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
14510         refine the constraints used on 32/64-bit floating point moves.
14511         (f32_av): Likewise.
14512         (f64_vsx): Likewise.
14513         (f64_dm): Likewise.
14514         (f64_av): Likewise.
14515         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
14516         (BOOL_REGS_OP1): Likewise.
14517         (BOOL_REGS_OP2): Likewise.
14518         (BOOL_REGS_UNARY): Likewise.
14519         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
14520         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
14521         for moves involving VSX registers.  Do not use constraints that
14522         target VSX registers for decimal types.
14523         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
14524         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
14525
14526 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
14527
14528         * tree.h (int_bit_position): Turn into inline function;
14529         implement using wide int.
14530         * tree.c (int_bit_position): Remove.
14531
14532 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
14533
14534         PR bootstrap/63280
14535         * target-globals.c (target_globals::~target_globals): Fix location
14536         of ira_int destruction.
14537
14538 2014-09-23  Renlin Li  <renlin.li@arm.com>
14539
14540         * config/aarch64/aarch64.md (return): New.
14541         (simple_return): Likewise.
14542         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
14543         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
14544
14545 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
14546
14547         * common/config/aarch64/aarch64-common.c:
14548         (default_options aarch_option_optimization_table):
14549         Default to -fsched-pressure.
14550
14551 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
14552
14553         * cfgcleanup.c (try_optimize_cfg): Do not remove label
14554         with LABEL_PRESERVE_P flag set.
14555
14556 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14557             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14558             Anna Tikhonova  <anna.tikhonova@intel.com>
14559             Ilya Tocar  <ilya.tocar@intel.com>
14560             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14561             Ilya Verbin  <ilya.verbin@intel.com>
14562             Kirill Yukhin  <kirill.yukhin@intel.com>
14563             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14564
14565         * config/i386/sse.md
14566         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
14567         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
14568         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
14569         (define_insn "sse2_shufpd_v2df_mask"): New.
14570
14571 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14572             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14573             Anna Tikhonova  <anna.tikhonova@intel.com>
14574             Ilya Tocar  <ilya.tocar@intel.com>
14575             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14576             Ilya Verbin  <ilya.verbin@intel.com>
14577             Kirill Yukhin  <kirill.yukhin@intel.com>
14578             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14579
14580         * config/i386/sse.md
14581         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
14582         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
14583         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
14584         (define_insn "sse_shufps_v4sf_mask"): New.
14585
14586 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14587             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14588             Anna Tikhonova  <anna.tikhonova@intel.com>
14589             Ilya Tocar  <ilya.tocar@intel.com>
14590             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14591             Ilya Verbin  <ilya.verbin@intel.com>
14592             Kirill Yukhin  <kirill.yukhin@intel.com>
14593             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14594
14595         * config/i386/sse.md
14596         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
14597         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
14598         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
14599         (define_insn "unpcklps128_mask"): New.
14600
14601 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14602             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14603             Anna Tikhonova  <anna.tikhonova@intel.com>
14604             Ilya Tocar  <ilya.tocar@intel.com>
14605             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14606             Ilya Verbin  <ilya.verbin@intel.com>
14607             Kirill Yukhin  <kirill.yukhin@intel.com>
14608             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14609
14610         * config/i386/sse.md
14611         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
14612         (define_insn "avx512vl_unpckhpd128_mask"): New.
14613         (define_expand "avx_movddup256<mask_name>"): Add masking.
14614         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
14615         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
14616         (define_insn "avx512vl_unpcklpd128_mask"): New.
14617
14618 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
14619
14620         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14621         * doc/tm.texi: Regenerate.
14622         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
14623         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14624         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
14625         Remove.
14626         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14627         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14628         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14629         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14630         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
14631         Remove.
14632         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14633         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14634         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14635         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14636         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14637         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14638         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14639         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14640         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14641         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
14642         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
14643         Remove.
14644
14645 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
14646
14647         * tree-ssa-ccp.c (prop_value_d): Rename to ...
14648         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
14649         * ipa-prop.c (struct type_change_info): Rename to ...
14650         (prop_type_change_info): ... this; update uses.
14651         * ggc-page.c (globals): Rename to ...
14652         (static struct ggc_globals): ... this; update uses.
14653         * tree-ssa-loop-im.c (mem_ref): Rename to ...
14654         (im_mem_ref): ... this; update uses.
14655         * ggc-common.c (loc_descriptor): Rename to ...
14656         (ggc_loc_descriptor): ... this; update uses.
14657         * lra-eliminations.c (elim_table): Rename to ...
14658         (lra_elim_table): ... this; update uses.
14659         * bitmap.c (output_info): Rename to ...
14660         (bitmap_output_info): ... this; update uses.
14661         * gcse.c (expr): Rename to ...
14662         (gcse_expr) ... this; update uses.
14663         (occr): Rename to ...
14664         (gcse_occr): .. this; update uses.
14665         * tree-ssa-copy.c (prop_value_d): Rename to ...
14666         (prop_value_t): ... this.
14667         * predict.c (block_info_def): Rename to ...
14668         (block_info): ... this; update uses.
14669         (edge_info_def): Rename to ...
14670         (edge_info): ... this; update uses.
14671         * profile.c (bb_info): Rename to ...
14672         (bb_profile_info): ... this; update uses.
14673         * alloc-pool.c (output_info): Rename to ...
14674         (pool_output_info): ... this; update uses.
14675         * ipa-cp.c (topo_info): Rename to ..
14676         (ipa_topo_info): ... this; update uses.
14677         * tree-nrv.c (nrv_data): Rename to ...
14678         (nrv_data_t): ... this; update uses.
14679         * ipa-split.c (bb_info): Rename to ...
14680         (split_bb_info): ... this one.
14681         * profile.h (edge_info): Rename to ...
14682         (edge_profile_info): ... this one; update uses.
14683         * dse.c (bb_info): Rename to ...
14684         (dse_bb_info): ... this one; update uses.
14685         * cprop.c (occr): Rename to ...
14686         (cprop_occr): ... this one; update uses.
14687         (expr): Rename to ...
14688         (cprop_expr): ... this one; update uses.
14689
14690 2014-09-22  Jason Merrill  <jason@redhat.com>
14691
14692         * Makefile.in (check-parallel-%): Add @.
14693
14694 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
14695
14696         * config/aarch64/geniterators.sh: New.
14697         * config/aarch64/iterators.md (VDQF_DF): New.
14698         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
14699         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
14700
14701 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
14702
14703         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
14704         -lnosys when -msim absent.
14705
14706 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
14707
14708         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
14709
14710 2014-09-22  Richard Biener  <rguenther@suse.de>
14711
14712         * gimplify.c (gimplify_init_constructor): Do not leave
14713         non-GIMPLE vector constructors around.
14714         * tree-cfg.c (verify_gimple_assign_single): Verify that
14715         CONSTRUCTORs have gimple elements.
14716
14717 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
14718
14719         PR debug/63328
14720         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
14721         insert a debug source bind stmt setting DEBUG_EXPR_DECL
14722         instead of a normal gimple assignment stmt.
14723
14724 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
14725
14726         * config/bfin/bfin.md: Fix use of constraints in define_split.
14727
14728 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
14729
14730         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
14731         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
14732
14733 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
14734
14735         * hard-reg-set.h: Include hash-table.h.
14736         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
14737         field.
14738         * target-globals.c (target_globals::~target_globals): Call
14739         hard_regs->finalize.
14740         * rtl.h (subreg_shape): New structure.
14741         (shape_of_subreg): New function.
14742         (simplifiable_subregs): Declare.
14743         * reginfo.c (simplifiable_subreg): New structure.
14744         (simplifiable_subregs_hasher): Likewise.
14745         (simplifiable_subregs): New function.
14746         (invalid_mode_changes): Delete.
14747         (alid_mode_changes, valid_mode_changes_obstack): New variables.
14748         (record_subregs_of_mode): Remove subregs_of_mode parameter.
14749         Record valid mode changes in valid_mode_changes.
14750         (find_subregs_of_mode): Remove subregs_of_mode parameter.
14751         Update calls to record_subregs_of_mode.
14752         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
14753         handling.  Initialize new variables.  Update call to
14754         find_subregs_of_mode.
14755         (invalid_mode_change_p): Check new variables instead of
14756         invalid_mode_changes.
14757         (finish_subregs_of_mode): Finalize new variables instead of
14758         invalid_mode_changes.
14759         (target_hard_regs::finalize): New function.
14760         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
14761         even when CLASS_CANNOT_CHANGE_MODE is undefined.
14762
14763 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
14764
14765         * combine.c (subst): Use simplify_subreg_regno rather than
14766         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
14767
14768 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
14769
14770         * rtl.h (subreg_info): Expand commentary
14771         * rtlanal.c (subreg_get_info): Likewise.
14772
14773 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
14774
14775         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
14776         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
14777         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
14778
14779 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
14780
14781         * config/arm/arm.c: #include "tm-constrs.h"
14782         (thumb1_size_rtx_costs): Adjust rtx costs.
14783
14784 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
14785
14786         * configure.ac (target_header_dir): Move block defining
14787         this to before the block setting inhibit_libc.
14788         (inhibit_libc): When considering $with_headers, just
14789         check it it's explicitly "no".  If not, also check if
14790         $target_header_dir/stdio.h is present.  If not, set
14791         inhibit_libc=true.
14792         * configure: Regenerate.
14793
14794 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
14795
14796         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
14797
14798 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14799
14800         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
14801         insn for divides by integer powers of two.
14802         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
14803         (mod<mode>3): Fix formatting.
14804         (three anonymous define_insn and two define_split): Delete.
14805
14806 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14807
14808         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
14809         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
14810         (floatdisf2_internal2): Ditto.
14811         (ashrdi3_no_power): Ditto.  Fix formatting.
14812
14813 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14814
14815         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
14816         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
14817         Tidy.
14818
14819 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14820
14821         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
14822         constant, use addsi3 directly.
14823         (three anonymous define_insn, two define_split): Delete.
14824         (sub<mode>3): Move.  Do not allow constant second operand.
14825         Generate different insn for constant first operand.
14826         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
14827         (subf<mode>3_imm): New.
14828         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
14829         (*plus_ltu<mode>): Only handle registers.
14830         (*plus_ltu<mode>_1): New.  Handle integer third operand.
14831         (*plus_gtu<mode>): Only handle registers.
14832         (*plus_gtu<mode>_1): New.  Handle integer third operand.
14833
14834 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14835
14836         * config/rs6000/rs6000.md (iorxor): New code_iterator.
14837         (iorxor): New code_attr.
14838         (IORXOR): New code_attr.
14839         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
14840         (ior<mode>3, xor<mode>3): Delete.
14841         (<iorxor><mode>3): New.
14842         (splitter for "big" integer ior, xor): New.
14843         (*bool<mode>3): Move.  Also handle AND.
14844         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
14845         (splitter for "big" integer ior, xor): Delete.
14846
14847 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14848
14849         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
14850         (two anonymous define_insn and two define_split): Delete.
14851         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
14852
14853 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14854
14855         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
14856         (two anonymous define_insn and two define_split): Delete.
14857         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
14858
14859 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14860
14861         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
14862
14863 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14864
14865         * config/rs6000/predicates.md (ca_operand): Allow subregs.
14866         (input_operand): Do not allow ca_operand.
14867         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
14868         carry bit, allow SImode and Pmode.
14869         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
14870
14871 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
14872
14873         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
14874         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
14875         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
14876         (*call_rex64_ms_sysv): Remove.
14877         (*call_value_rex64_ms_sysv): Ditto.
14878         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
14879
14880 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
14881
14882         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
14883         operand 3 to "CnL".
14884
14885 2014-09-20  Andreas Schwab  <schwab@suse.de>
14886
14887         * config/ia64/ia64.md: Remove constraints from define_split
14888         patterns.
14889
14890 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
14891
14892         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
14893         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
14894         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
14895         (get_dynamic_type): Remove.
14896         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
14897         (clear_speculation): Bring to ipa-deivrt.h
14898         (get_class_context): Rename to ...
14899         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
14900         (contains_type_p): Update.
14901         (get_dynamic_type): Rename to ...
14902         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
14903         (possible_polymorphic_call_targets): UPdate.
14904         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
14905         * ipa-prop.c (ipa_analyze_call_uses): Update.
14906
14907 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
14908
14909         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
14910         privatize dynamic TLS variables.
14911
14912 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
14913
14914         * diagnostic.c (warning_n): New function.
14915         * diagnostic-core.h (warning_n): Declare.
14916         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
14917         output dynamic counts when available.
14918
14919 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
14920
14921         PR tree-optimization/63255
14922         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
14923         issue in setting body_removed flag.
14924
14925 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
14926
14927         PR c++/61825
14928         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
14929         that visibility change is possible
14930         (handle_weakref_attribute): Likewise.
14931         * cgraph.h (symtab_node): Add method get_create and
14932         field refuse_visibility_changes.
14933         (symtab_node::get_create): New method.
14934         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
14935         * varasm.c (mark_weak): Verify that visibility change is
14936         possible.
14937
14938 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
14939
14940         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
14941         for base_reg_operand to be common between LO_SUM and PLUS.
14942         (fusion_gpr_mem_combo): New predicate to match a fused address
14943         that combines the addis and memory offset address.
14944
14945         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
14946         calling signature.
14947         (emit_fusion_gpr_load): Likewise.
14948
14949         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
14950         signature to pass each argument separately, rather than
14951         using an operands array.  Rewrite the insns found by peephole2 to
14952         be a single insn, rather than hoping the insns will still be
14953         together when the peephole pass is done.  Drop being called via a
14954         normal peephole.
14955         (emit_fusion_gpr_load): Change calling signature to be called from
14956         the fusion_gpr_load_<mode> insns with a combined memory address
14957         instead of the peephole pass passing the addis and offset
14958         separately.
14959
14960         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
14961         fusion.
14962         (power8 fusion peephole): Drop support for doing power8 via a
14963         normal peephole that was created by the peephole2 pass.
14964         (power8 fusion peephole2): Create a new insn with the fused
14965         address, so that the fused operation is kept together after
14966         register allocation is done.
14967         (fusion_gpr_load_<mode>): Likewise.
14968
14969 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
14970
14971         PR lto/63286
14972         * tree.c (need_assembler_name_p): Do not mangle variadic types.
14973
14974 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
14975
14976         * recog.c (scratch_operand): Do not simply allow all hard registers:
14977         only allow those that are allocatable.
14978
14979 2014-09-19  Felix Yang  <felix.yang@huawei.com>
14980
14981         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
14982         comments and fix spacing to conform to coding style.
14983
14984 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
14985
14986         * genrecog.c (validate_pattern): Allow empty constraints in
14987         a match_scratch.
14988
14989 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
14990
14991         * dwarf2out.c (decl_ultimate_origin): Update comment.
14992         * tree.c (block_ultimate_origin): Same.
14993
14994 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14995
14996         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
14997         Update GCC version name to GCC 5.
14998         (rs6000_function_arg_boundary): Likewise.
14999         (rs6000_function_arg): Likewise.
15000
15001 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15002
15003         * config/sh/sh.md: Fix use of constraints in define_split.
15004
15005 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
15006
15007         PR ipa/61998
15008         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
15009
15010 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15011
15012         * doc/md.texi (Modifiers): Consistently use "read/write"
15013         nomenclature rather than "input/output".
15014         * genrecog.c (constraints_supported_in_insn_p): New.
15015         (validate_pattern): If needed, also check constraints on
15016         MATCH_SCRATCH operands.
15017         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
15018         operands with no '=' or '+' modifier.
15019
15020 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
15021
15022         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
15023         scratch register as written.
15024
15025 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15026
15027         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
15028         assignment.
15029
15030 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15031
15032         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
15033         expanders.
15034
15035 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15036
15037         PR target/62662
15038         * config/s390/s390.c (s390_emit_epilogue): When doing the return
15039         address load optimization force s390_optimize_prologue to leave it
15040         that way.  Only do the optimization if we already decided to push
15041         r14 into a stack slot.
15042
15043 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
15044
15045         * asan.c (build_check_stmt): Alignment arg was added.
15046         (asan_expand_check_ifn): Optimization for alignment >= 8.
15047
15048 2014-09-19  Olivier Hainque  <hainque@adacore.com>
15049
15050         * config/i386/vxworksae.h: Remove obsolete definitions.
15051         (STACK_CHECK_PROTECT): Define.
15052         * config/i386/vx-common.h: Remove.  Merge contents within
15053         config/i386/vxworks.h.
15054         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
15055         i386/vx-common.h.
15056
15057 2014-09-19  Olivier Hainque  <hainque@adacore.com>
15058
15059         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
15060         * config/rs6000/t-vxworksmils: New file.
15061         * config/rs6000/vxworksmils.h: New file.
15062
15063 2014-09-19  Olivier Hainque  <hainque@adacore.com>
15064
15065         * varasm.c (default_section_type_flags): Flag .persistent.bss
15066         sections as SECTION_BSS.
15067
15068 2014-09-19  Nick Clifton  <nickc@redhat.com>
15069
15070         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
15071         pop'ed registers so that DCE does not eliminate them.
15072
15073 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
15074
15075         PR lto/63298
15076         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
15077
15078 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
15079
15080         * system.h (LIBGCC2_TF_CEXT): Poison.
15081         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
15082         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
15083         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
15084         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
15085         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
15086         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
15087         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
15088         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
15089         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
15090
15091 2014-09-19  Kito Cheng  <kito@0xlab.org>
15092
15093         * except.h: Fix header guard.
15094         * addresses.h: Add missing header guard.
15095         * cfghooks.h: Likewise.
15096         * collect-utils.h: Likewise.
15097         * collect2-aix.h: Likewise.
15098         * conditions.h: Likewise.
15099         * cselib.h: Likewise.
15100         * dwarf2asm.h: Likewise.
15101         * graphds.h: Likewise.
15102         * graphite-scop-detection.h: Likewise.
15103         * gsyms.h: Likewise.
15104         * hw-doloop.h: Likewise.
15105         * incpath.h: Likewise.
15106         * ipa-inline.h: Likewise.
15107         * ipa-ref.h: Likewise.
15108         * ira-int.h: Likewise.
15109         * ira.h: Likewise.
15110         * lra-int.h: Likewise.
15111         * lra.h: Likewise.
15112         * lto-section-names.h: Likewise.
15113         * read-md.h: Likewise.
15114         * reload.h: Likewise.
15115         * rtl-error.h: Likewise.
15116         * sdbout.h: Likewise.
15117         * targhooks.h: Likewise.
15118         * tree-affine.h: Likewise.
15119         * xcoff.h: Likewise.
15120         * xcoffout.h: Likewise.
15121
15122 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
15123
15124         PR debug/63285
15125         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
15126         if advance != 0.
15127
15128 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
15129
15130         PR target/61360
15131         * lra.c (lra): Call recog_init.
15132
15133 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
15134
15135         PR c++/62017
15136         * asan.c (transform_statements): Don't instrument clobber statements.
15137
15138 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15139
15140         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
15141         to neon_load1_1reg<q>.
15142
15143 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
15144
15145         PR debug/63284
15146         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
15147         if there are only debug stmts after the noreturn call, instead
15148         remove the debug stmts.
15149
15150 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
15151
15152         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
15153         (odr_types_equivalent_p): Use pair hash.
15154         (odr_subtypes_equivalent_p): Likewise, do structural compare
15155         on ODR types that may be mismatched.
15156         (warn_odr): Support warning when only one field is given.
15157         (odr_types_equivalent_p): Strenghten comparsions made;
15158         support VOIDtype.
15159         (add_type_duplicate): Update VISITED hash set.
15160
15161 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15162
15163         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
15164         Enable selection of 'posix' or no thread model.
15165
15166 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
15167
15168         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
15169         when architecture is older than ARMv7.
15170
15171 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
15172
15173         PR target/61853
15174         * config/pa/pa.c (pa_function_value): Directly handle aggregates
15175         that fit exactly in a word or double word.
15176
15177 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
15178
15179         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
15180         zmm/k regs support.
15181
15182 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15183             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15184             Anna Tikhonova  <anna.tikhonova@intel.com>
15185             Ilya Tocar  <ilya.tocar@intel.com>
15186             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15187             Ilya Verbin  <ilya.verbin@intel.com>
15188             Kirill Yukhin  <kirill.yukhin@intel.com>
15189             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15190
15191         * config/i386/i386.c
15192         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
15193         * config/i386/sse.md
15194         (define_mode_iterator VI48F_256): New.
15195         (define_mode_attr extract_type): Ditto.
15196         (define_mode_attr extract_suf): Ditto.
15197         (define_mode_iterator AVX512_VEC): Ditto.
15198         (define_expand
15199         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
15200         AVX512_VEC.
15201         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
15202         (define_insn
15203         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
15204         Ditto.
15205         (define_mode_attr extract_type_2): Ditto.
15206         (define_mode_attr extract_suf_2): Ditto.
15207         (define_mode_iterator AVX512_VEC_2): Ditto.
15208         (define_expand
15209         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
15210         AVX512_VEC_2 mode iterator.
15211         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
15212         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
15213         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
15214         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
15215         (define_split for V16FI mode): Ditto.
15216         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
15217         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
15218         (define_split for VI8F_256 mode): Ditto.
15219         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
15220         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
15221         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
15222         (define_split for VI4F_256 mode): Ditto.
15223         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
15224         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
15225         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
15226         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
15227         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
15228         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
15229         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
15230         Update `type' attribute, remove explicit `memory' attribute calculation.
15231
15232 2014-09-16  Kito Cheng  <kito@0xlab.org>
15233
15234         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
15235         ira_spilled_reg_stack_slots_num if using lra.
15236         (do_reload): Remove release ira_spilled_reg_stack_slots part.
15237         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
15238         make sure not using lra.
15239         (ira_reuse_stack_slot): Likewise.
15240         (ira_mark_new_stack_slot): Likewise.
15241
15242 2014-09-15  Andi Kleen  <ak@linux.intel.com>
15243
15244         * function.c (allocate_struct_function): Force
15245         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
15246         profiling is disabled.
15247
15248 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
15249
15250         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
15251         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
15252         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
15253         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
15254         macro with statically checked member functions.
15255         * rtl.h (rtx_insn::deleted): New method.
15256         (rtx_insn::set_deleted): Likewise.
15257         (rtx_insn::set_undeleted): Likewise.
15258         (INSN_DELETED_P): Remove.
15259
15260 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
15261
15262         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
15263         result of emit_jump_insn_before to a new variable.
15264         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
15265         (mark_jump_label_1): Likewise.
15266         (mark_jump_label_asm): Likewise.
15267         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
15268         * rtl.h (mark_jump_label): Adjust.
15269
15270 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
15271
15272         * Makefile.in (dg_target_exps): Remove.
15273         (check_gcc_parallelize): Change to just an upper bound number.
15274         (check-%-subtargets): Always print the non-parallelized goals.
15275         (check_p_vars, check_p_comma, check_p_subwork): Remove.
15276         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
15277         check_p_numbers3, check_p_numbers4, check_p_numbers5,
15278         check_p_numbers6): New variables.
15279         (check_p_numbers): Set to sequence from 1 to 9999.
15280         (check_p_subdirs): Set to sequence from 1 to minimum of
15281         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
15282         or 128.
15283         (check-%, check-parallel-%): Rewritten so that for parallelized
15284         testing each job runs all the *.exp files, with
15285         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
15286
15287 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
15288
15289         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
15290         rtx to rtx_insn *.
15291         (arc_sets_cc_p): Likewise.
15292         * config/arc/arc.c (arc_print_operand): Use methods of
15293         "final_sequence" for clarity, and to enable strengthening of
15294         locals "jump" and "delay" from rtx to rtx_insn *.
15295         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
15296         rtx_insn *; use method of rtx_sequence for typesafety.
15297         (arc_get_insn_variants): Use insn method of rtx_sequence for
15298         typesafety.
15299         (arc_pad_return): Likewise.
15300         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
15301         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
15302         dyn_cast to rtx_sequence *, using insn method for typesafety.
15303         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
15304         rtx_sequence * and use insn method when invoking get_attr_length.
15305         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
15306         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
15307         rtx_sequence *, introducing a local "seq", using its insn method
15308         from typesafety and clarity.
15309         (add_sched_insns_for_speculation): Strengthen local "next" from
15310         rtx to rtx_insn *.
15311         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
15312         (predicate_insn): Likewise.
15313         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
15314         second param.
15315         * config/cris/cris.c (cris_notice_update_cc): Likewise.
15316         * config/epiphany/epiphany-protos.h
15317         (extern void epiphany_insert_mode_switch_use): Likewise for param
15318         "insn".
15319         (get_attr_sched_use_fpu): Likewise for param.
15320         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
15321         Likewise for param "insn".
15322         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
15323         param "insn" of "target_insert_mode_switch_use" callback.
15324         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
15325         (frv_issues_to_branch_unit_p): Likewise.
15326         (frv_pack_insn_p): Likewise.
15327         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
15328         const rtx * (i.e. mutable rtx_def * const *) to
15329         rtx_insn * const *.
15330         * config/i386/i386-protos.h (standard_sse_constant_opcode):
15331         Strengthen first param from rtx to rtx_insn *.
15332         (output_fix_trunc): Likewise.
15333         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
15334         (output_fix_trunc): Likewise.
15335         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
15336         local "insn".
15337         (min_insn_size): Likewise for param "insn".
15338         (get_mem_group): Likewise.
15339         (is_cmp): Likewise.
15340         (get_insn_path): Likewise.
15341         (get_insn_group): Likewise.
15342         (count_num_restricted): Likewise.
15343         (fits_dispatch_window): Likewise.
15344         (add_insn_window): Likewise.
15345         (add_to_dispatch_window): Likewise.
15346         (debug_insn_dispatch_info_file): Likewise.
15347         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
15348         first param.
15349         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
15350         "cmp" and local "prev".
15351         (m32c_output_compare): Likewise for param "insn".
15352         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
15353         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
15354         (define_predicate "large_insn_p"): Likewise.
15355         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
15356         param from rtx to rtx_insn *.
15357         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
15358         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
15359         (m68k_sched_attr_size): Likewise.
15360         (sched_get_opxy_mem_type): Likewise for param "insn".
15361         (m68k_sched_attr_op_mem): Likewise.
15362         (sched_mem_operand_p): Likewise.
15363         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
15364         * config/mep/mep.c (mep_multi_slot): Likewise.
15365         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
15366         first param.
15367         (mips_sync_loop_insns): Likewise.
15368         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
15369         method of "final_sequence" for typesafety.
15370         (mips_process_sync_loop): Strengthen param "insn" from rtx to
15371         rtx_insn *.
15372         (mips_output_sync_loop): Likewise.
15373         (mips_sync_loop_insns): Likewise.
15374         (mips_74k_agen_init): Likewise.
15375         (mips_sched_init): Use NULL rather than NULL_RTX when working with
15376         insns.
15377         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
15378         Strengthen param "insn" from rtx to rtx_insn *.
15379         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
15380         local "insn".
15381         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
15382         param.
15383         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
15384         "insn".  Use method of rtx_sequence for typesafety.
15385         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
15386         rtx_insn *.
15387         (branch_needs_nop_p): Likewise.
15388         (use_skip_p): Likewise.
15389         (pa_insn_refs_are_delayed): Likewise.
15390         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
15391         for locals "insn", "ninsn".
15392         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
15393         "insn".
15394         (is_cracked_insn): Likewise.
15395         (is_branch_slot_insn): Likewise.
15396         (is_nonpipeline_insn): Likewise.
15397         (insn_terminates_group_p): Likewise.
15398         (insn_must_be_first_in_group): Likewise.
15399         (insn_must_be_last_in_group): Likewise.
15400         (force_new_group): Likewise for param "next_insn".
15401         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
15402         "insn".
15403         (s390_sched_score): Likewise.
15404         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
15405         (rtx sfunc_uses_reg): Likewise for sole param.
15406         * config/sh/sh.c (sh_print_operand): Use insn method of
15407         final_sequence for typesafety.
15408         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
15409         Use insn method of final_sequence for typesafety.
15410         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
15411         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
15412         for param.
15413         (eligible_for_return_delay): Likewise.
15414         (eligible_for_sibcall_delay): Likewise.
15415         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
15416         (eligible_for_return_delay): Likewise.
15417         (eligible_for_sibcall_delay): Likewise.
15418         * config/stormy16/stormy16-protos.h
15419         (xstormy16_output_cbranch_hi): Likewise for final param.
15420         (xstormy16_output_cbranch_si): Likewise.
15421         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
15422         (xstormy16_output_cbranch_si): Likewise.
15423         * config/v850/v850-protos.h (notice_update_cc): Likewise.
15424         * config/v850/v850.c (notice_update_cc): Likewise.
15425
15426         * final.c (get_attr_length_1): Strengthen param "insn" and param
15427         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
15428         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
15429         (get_attr_min_length): Likewise.
15430         (shorten_branches): Likewise for signature of locals "length_fun"
15431         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
15432         from a checked cast and use its methods for clarity and to enable
15433         strengthening local "inner_insn" from rtx to rtx_insn *.
15434         * genattr.c (gen_attr): When writing out the prototypes of the
15435         various generated "get_attr_" functions, strengthen the params of
15436         the non-const functions from rtx to rtx_insn *.
15437         Similarly, strengthen the params of insn_default_length,
15438         insn_min_length, insn_variable_length_p, insn_current_length.
15439         (main): Similarly, strengthen the param of num_delay_slots,
15440         internal_dfa_insn_code, insn_default_latency, bypass_p,
15441         insn_latency, min_issue_delay, print_reservation,
15442         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
15443         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
15444         to hook_int_rtx_insn_unreachable.
15445         * genattrtab.c (write_attr_get): When writing out the generated
15446         "get_attr_" functions, strengthen the param "insn" from rtx to
15447         rtx_insn *, eliminating a checked cast.
15448         (make_automaton_attrs): When writing out prototypes of
15449         "internal_dfa_insn_code_", "insn_default_latency_" functions
15450         and the "internal_dfa_insn_code" and "insn_default_latency"
15451         callbacks, strengthen their params from rtx to rtx_insn *
15452         * genautomata.c (output_internal_insn_code_evaluation): When
15453         writing out code, add a checked cast from rtx to rtx_insn * when
15454         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
15455         (output_dfa_insn_code_func): Strengthen param of generated
15456         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
15457         (output_trans_func): Likewise for generated function
15458         "state_transition".
15459         (output_internal_insn_latency_func): When writing out generated
15460         function "internal_insn_latency", rename params from "insn" and
15461         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
15462         locals "insn" and "insn2" as rtx_insn * with checked casts once
15463         we've proven that we're not dealing with const0_rtx.
15464         (output_insn_latency_func):  Strengthen param of generated
15465         function "insn_latency" from rtx to rtx_insn *.
15466         (output_print_reservation_func): Likewise for generated function
15467         "print_reservation".
15468         (output_insn_has_dfa_reservation_p): Likewise for generated
15469         function "insn_has_dfa_reservation_p".
15470         * hooks.c (hook_int_rtx_unreachable): Rename to...
15471         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
15472         from rtx to rtx_insn *.
15473         * hooks.h (hook_int_rtx_unreachable): Likewise.
15474         (extern int hook_int_rtx_insn_unreachable): Likewise.
15475         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
15476         (get_attr_min_length): Likewise.
15477         * recog.c (get_enabled_alternatives): Likewise.
15478         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
15479         * reorg.c (find_end_label): Introduce local rtx "pat" and
15480         strengthen local "insn" from rtx to rtx_insn *.
15481         (redundant_insn): Use insn method of "seq" rather than element for
15482         typesafety; strengthen local "control" from rtx to rtx_insn *.
15483         * resource.c (mark_referenced_resources): Add checked cast to
15484         rtx_insn * within INSN/JUMP_INSN case.
15485         (mark_set_resources): Likewise.
15486         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
15487         rtx to rtx_insn *.
15488
15489 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
15490
15491         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
15492         param "label" from rtx to rtx_insn *.
15493         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
15494         and local "op".
15495         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
15496         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
15497         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
15498         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
15499         * final.c (default_label_align_after_barrier_max_skip): Strengthen
15500         param from rtx to rtx_insn *.
15501         (default_loop_align_max_skip): Likewise.
15502         (default_label_align_max_skip): Likewise.
15503         (default_jump_align_max_skip): Likewise.
15504         * target.def (label_align_after_barrier_max_skip): Likewise.
15505         (loop_align_max_skip): Likewise.
15506         (label_align_max_skip): Likewise.
15507         (jump_align_max_skip): Likewise.
15508         * targhooks.h (default_label_align_after_barrier_max_skip):
15509         Likewise.
15510         (default_loop_align_max_skip): Likewise.
15511         (default_label_align_max_skip): Likewise.
15512         (default_jump_align_max_skip): Likewise.
15513
15514 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
15515
15516         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
15517         from const_rtx to const rtx_insn *.  Update union members from rtx
15518         to rtx_insn *.
15519         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
15520         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
15521         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
15522         strengthen both params from const_rtx to const rtx_insn *.
15523         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
15524         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
15525         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
15526         rtx_insn *.
15527         * target.def (can_follow_jump): Strengthen both params from
15528         const_rtx to const rtx_insn *, and update default implementation
15529         from hook_bool_const_rtx_const_rtx_true to
15530         hook_bool_const_rtx_insn_const_rtx_insn_true.
15531
15532 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
15533
15534         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
15535         "insn" from rtx to rtx_insn *.
15536         * sched-int.h (deps_start_bb): Likewise for 2nd param.
15537
15538 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15539             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15540             Anna Tikhonova  <anna.tikhonova@intel.com>
15541             Ilya Tocar  <ilya.tocar@intel.com>
15542             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15543             Ilya Verbin  <ilya.verbin@intel.com>
15544             Kirill Yukhin  <kirill.yukhin@intel.com>
15545             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15546
15547         * config/i386/sse.md
15548         (define_insn "vcvtph2ps<mask_name>"): Add masking.
15549         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
15550         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
15551         (define_expand "vcvtps2ph_mask"): New.
15552         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
15553         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
15554         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
15555
15556 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15557             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15558             Anna Tikhonova  <anna.tikhonova@intel.com>
15559             Ilya Tocar  <ilya.tocar@intel.com>
15560             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15561             Ilya Verbin  <ilya.verbin@intel.com>
15562             Kirill Yukhin  <kirill.yukhin@intel.com>
15563             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15564
15565         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
15566         New.
15567         (define_mode_iterator VI24_AVX512BW_1): Ditto.
15568         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
15569         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
15570         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
15571         also for TARGET_AVX512VL.
15572         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
15573
15574 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
15575
15576         * doc/install.texi (Options specification): add
15577         --disable-libsanitizer item.
15578
15579 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
15580             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15581
15582         PR target/61407
15583         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
15584         and above.
15585         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
15586         kernel version check to avoid incrementing it after every major OS X
15587         release.
15588         (darwin_default_min_version): Avoid static memory buffer.
15589
15590 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
15591
15592         * tree.c (need_assembler_name_p): Store C++ type mangling only
15593         for aggregates.
15594
15595 2014-09-13  Marek Polacek  <polacek@redhat.com>
15596
15597         * tree.c (protected_set_expr_location): Don't check whether T is
15598         non-null here.
15599
15600 2014-09-12  DJ Delorie  <dj@redhat.com>
15601
15602         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
15603         (extend_and_shift1_hipsi2): Likewise.
15604         (extend_and_shift2_hipsi2): Likewise.
15605
15606 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
15607
15608         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
15609         with NULL when dealing with an insn.
15610         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
15611         from rtx to rtx_insn *.
15612         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
15613         const_rtx to const rtx_insn *.
15614         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
15615
15616 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
15617
15618         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
15619         assert.
15620
15621 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
15622
15623         * target.def (libgcc_floating_mode_supported_p): New hook.
15624         * targhooks.c (default_libgcc_floating_mode_supported_p): New
15625         function.
15626         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
15627         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
15628         (LIBGCC2_HAS_TF_MODE): Remove.
15629         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
15630         * doc/tm.texi: Regenerate.
15631         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
15632         machine mode.
15633         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
15634         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
15635         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
15636         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
15637         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15638         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
15639         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
15640         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
15641         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
15642         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
15643         function.
15644         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
15645         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15646         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15647         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15648         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15649         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15650         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15651         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
15652         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
15653         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
15654         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
15655         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
15656         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
15657         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
15658         Remove.
15659         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
15660         New macro.
15661         (ia64_libgcc_floating_mode_supported_p): New function.
15662         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
15663         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
15664         (IA64_NO_LIBGCC_TFMODE): Define.
15665         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
15666         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
15667         macro.
15668         (pdp11_scalar_mode_supported_p): New function.
15669         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
15670         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
15671
15672 2014-09-12  Richard Biener  <rguenther@suse.de>
15673
15674         PR middle-end/63237
15675         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
15676
15677 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
15678
15679         * tree.c (integer_each_onep): New function.
15680         * tree.h (integer_each_onep): Declare it.
15681         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
15682         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
15683         (X & 1) == 0 for vector and complex.
15684
15685 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
15686
15687         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
15688         for A57.
15689         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
15690         cost to spilling from integer to FP registers.
15691
15692 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
15693
15694         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
15695         move handling.
15696         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
15697         are now handled correctly.
15698
15699 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
15700
15701         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
15702         handling of CALLER_SAVE_REGS and POINTER_REGS.
15703
15704 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
15705
15706         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
15707         the number of hard registers.
15708
15709 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15710             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15711             Anna Tikhonova  <anna.tikhonova@intel.com>
15712             Ilya Tocar  <ilya.tocar@intel.com>
15713             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15714             Ilya Verbin  <ilya.verbin@intel.com>
15715             Kirill Yukhin  <kirill.yukhin@intel.com>
15716             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15717
15718         * config/i386/sse.md
15719         (define_mode_iterator VI48_AVX512VL): New.
15720         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
15721         "avx512f_vternlog<mode>_maskz" and update mode iterator.
15722         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
15723         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
15724         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
15725         "avx512f_vternlog<mode>_mask" and update mode iterator.
15726         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
15727         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
15728         iterator.
15729         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
15730         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
15731         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
15732         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
15733         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
15734         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
15735
15736 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15737             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15738             Anna Tikhonova  <anna.tikhonova@intel.com>
15739             Ilya Tocar  <ilya.tocar@intel.com>
15740             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15741             Ilya Verbin  <ilya.verbin@intel.com>
15742             Kirill Yukhin  <kirill.yukhin@intel.com>
15743             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15744
15745         * config/i386/sse.md (VI128_256): Delete.
15746         (define_mode_iterator VI124_256): New.
15747         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
15748         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
15749         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
15750         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
15751         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
15752         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
15753         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
15754         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
15755         iterator.
15756         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
15757         in presence of AVX-512.
15758
15759 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15760             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15761             Anna Tikhonova  <anna.tikhonova@intel.com>
15762             Ilya Tocar  <ilya.tocar@intel.com>
15763             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15764             Ilya Verbin  <ilya.verbin@intel.com>
15765             Kirill Yukhin  <kirill.yukhin@intel.com>
15766             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15767
15768         * config/i386/sse.md
15769         (define_expand "<avx512>_gathersi<mode>"): Rename from
15770         "avx512f_gathersi<mode>".
15771         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
15772         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
15773         (define_expand "<avx512>_gatherdi<mode>"): Rename from
15774         "avx512f_gatherdi<mode>".
15775         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
15776         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
15777         wide versions.
15778         (define_expand "<avx512>_scattersi<mode>"): Rename from
15779         "avx512f_scattersi<mode>".
15780         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
15781         (define_expand "<avx512>_scatterdi<mode>"): Rename from
15782         "avx512f_scatterdi<mode>".
15783         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
15784
15785 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
15786
15787         * ira.h (ira_finish_once): Delete.
15788         * ira-int.h (target_ira_int::~target_ira_int): Declare.
15789         (target_ira_int::free_ira_costs): Likewise.
15790         (target_ira_int::free_register_move_costs): Likewise.
15791         (ira_finish_costs_once): Delete.
15792         * ira.c (free_register_move_costs): Replace with...
15793         (target_ira_int::free_register_move_costs): ...this new function.
15794         (target_ira_int::~target_ira_int): Define.
15795         (ira_init): Call free_register_move_costs as a member function rather
15796         than a global function.
15797         (ira_finish_once): Delete.
15798         * ira-costs.c (free_ira_costs): Replace with...
15799         (target_ira_int::free_ira_costs): ...this new function.
15800         (ira_init_costs): Call free_ira_costs as a member function rather
15801         than a global function.
15802         (ira_finish_costs_once): Delete.
15803         * target-globals.c (target_globals::~target_globals): Call the
15804         target_ira_int destructor.
15805         * toplev.c: Include lra.h.
15806         (finalize): Call lra_finish_once rather than ira_finish_once.
15807
15808 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
15809
15810         * common.opt (flto-odr-type-merging): New flag.
15811         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
15812         (types_same_for_odr): Likewise.
15813         (odr_subtypes_equivalent_p): Likewise.
15814         (add_type_duplicate): Do not walk type variants.
15815         (register_odr_type): New function.
15816         * ipa-utils.h (register_odr_type): Declare.
15817         (odr_type_p): New function.
15818         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
15819         TYPE_DECLs
15820         * doc/invoke.texi (-flto-odr-type-merging): Document.
15821         * tree.c (need_assembler_name_p): Compute ODR names when asked
15822         for it.
15823         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
15824
15825 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
15826
15827         PR target/63228
15828         * config/i386/i386.c (ix86_option_override_internal): Also turn
15829         off OPTION_MASK_ABI_X32 for -m16.
15830
15831 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
15832
15833         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
15834         GPR instead of P.
15835
15836 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
15837
15838         PR target/58757
15839         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
15840         Directly forward to __*_DENORM_MIN__.
15841
15842 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
15843
15844         * rtl.h (LABEL_REF_LABEL): New macro.
15845
15846         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
15847         of XEXP (, 0), where we know that we have a LABEL_REF.
15848         * cfgbuild.c (make_edges): Likewise.
15849         (purge_dead_tablejump_edges): Likewise.
15850         * cfgexpand.c (convert_debug_memory_address): Likewise.
15851         * cfgrtl.c (patch_jump_insn): Likewise.
15852         * combine.c (distribute_notes): Likewise.
15853         * cse.c (hash_rtx_cb): Likewise.
15854         (exp_equiv_p): Likewise.
15855         (fold_rtx): Likewise.
15856         (check_for_label_ref): Likewise.
15857         * cselib.c (rtx_equal_for_cselib_1): Likewise.
15858         (cselib_hash_rtx): Likewise.
15859         * emit-rtl.c (mark_label_nuses): Likewise.
15860         * explow.c (convert_memory_address_addr_space): Likewise.
15861         * final.c (output_asm_label): Likewise.
15862         (output_addr_const): Likewise.
15863         * gcse.c (add_label_notes): Likewise.
15864         * genconfig.c (walk_insn_part): Likewise.
15865         * genrecog.c (validate_pattern): Likewise.
15866         * ifcvt.c (cond_exec_get_condition): Likewise.
15867         (noce_emit_store_flag): Likewise.
15868         (noce_get_alt_condition): Likewise.
15869         (noce_get_condition): Likewise.
15870         * jump.c (maybe_propagate_label_ref): Likewise.
15871         (mark_jump_label_1): Likewise.
15872         (redirect_exp_1): Likewise.
15873         (rtx_renumbered_equal_p): Likewise.
15874         * lra-constraints.c (operands_match_p): Likewise.
15875         * reload.c (operands_match_p): Likewise.
15876         (find_reloads): Likewise.
15877         * reload1.c (set_label_offsets): Likewise.
15878         * reorg.c (get_branch_condition): Likewise.
15879         * rtl.c (rtx_equal_p_cb): Likewise.
15880         (rtx_equal_p): Likewise.
15881         * rtlanal.c (reg_mentioned_p): Likewise.
15882         (rtx_referenced_p): Likewise.
15883         (get_condition): Likewise.
15884         * sched-vis.c (print_value): Likewise.
15885         * varasm.c (const_hash_1): Likewise.
15886         (compare_constant): Likewise.
15887         (const_rtx_hash_1): Likewise.
15888         (output_constant_pool_1): Likewise.
15889
15890 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
15891
15892         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
15893         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
15894         instead of minus.
15895         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
15896         cr6_test_for_lt_reverse): Ditto.
15897
15898 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
15899
15900         PR c++/61489
15901         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
15902
15903 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
15904
15905         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
15906         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
15907         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
15908         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
15909         Delete.
15910
15911         (aarch64_fold_builtin): Remove all reinterpret cases.
15912
15913         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
15914
15915         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
15916
15917         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
15918         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
15919         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
15920         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
15921         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
15922         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
15923         aarch64_reinterpretv2df<mode>): Delete.
15924
15925         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
15926
15927         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
15928         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
15929         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
15930         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
15931         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
15932         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
15933         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
15934         vreinterpret_u32_f64): Use cast.
15935
15936         * config/aarch64/iterators.md (VD_RE): Delete.
15937
15938 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
15939
15940         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
15941         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
15942         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
15943         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
15944         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
15945         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
15946         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
15947         Replace inline assembler with __aarch64_vset_lane_any.
15948
15949 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
15950
15951         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
15952         types.
15953         (vmull_high_lane_s32): Likewise.
15954         (vmull_high_lane_u16): Likewise.
15955         (vmull_high_lane_u32): Likewise.
15956
15957 2014-09-11  Jason Merrill  <jason@redhat.com>
15958
15959         PR c++/58678
15960         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
15961
15962 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
15963
15964         PR target/63223
15965         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
15966         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
15967         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
15968
15969 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15970             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15971             Anna Tikhonova  <anna.tikhonova@intel.com>
15972             Ilya Tocar  <ilya.tocar@intel.com>
15973             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15974             Ilya Verbin  <ilya.verbin@intel.com>
15975             Kirill Yukhin  <kirill.yukhin@intel.com>
15976             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15977
15978         * config/i386/sse.md
15979         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
15980         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
15981         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
15982         New.
15983         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
15984         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
15985         iterator.
15986         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
15987         New.
15988         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
15989         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
15990         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
15991         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
15992         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
15993         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
15994         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
15995         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
15996         iterator.
15997         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
15998         New.
15999         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
16000         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
16001         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
16002
16003 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
16004
16005         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
16006         to access removed nodes.
16007
16008 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
16009
16010         PR tree-optimization/63186
16011         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
16012         (mark_nonssa_use): Likewise.
16013         (verify_non_ssa_vars): Verify all header blocks for label
16014         definitions.
16015
16016 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16017             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16018             Anna Tikhonova  <anna.tikhonova@intel.com>
16019             Ilya Tocar  <ilya.tocar@intel.com>
16020             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16021             Ilya Verbin  <ilya.verbin@intel.com>
16022             Kirill Yukhin  <kirill.yukhin@intel.com>
16023             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16024
16025         * config/i386/sse.md
16026         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
16027         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
16028         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
16029         "<avx2_avx512f>_permvar<mode><mask_name>".
16030         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
16031         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
16032         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
16033         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
16034         Ditto.
16035         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
16036         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
16037         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
16038         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
16039
16040 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
16041
16042         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
16043         V2DF, V4SF, DF, and DI modes.
16044         (vsx_fmav2df2): Likewise.
16045         (vsx_float_fix_<mode>2): Likewise.
16046         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
16047
16048 2014-09-10  Xinliang David Li  <davidxl@google.com>
16049
16050         PR target/63209
16051         * config/arm/arm.md (movcond_addsi): Handle case where source
16052         and target operands are the same.
16053
16054 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
16055
16056         * final.c (this_is_asm_operands): Strengthen this variable from
16057         rtx to const rtx_insn *.
16058         * output.h (this_is_asm_operands): Likewise.
16059         * rtl-error.c (location_for_asm): Strengthen param "insn" from
16060         const_rtx to const rtx_insn *.
16061         (diagnostic_for_asm): Likewise.
16062         * rtl-error.h (error_for_asm): Likewise.
16063         (warning_for_asm): Likewise.
16064
16065 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
16066
16067         * genextract.c (print_header): When writing out insn_extract to
16068         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
16069         * recog.h (insn_extract): Strengthen the param from rtx to
16070         rtx_insn *.
16071
16072 2014-09-10  Mike Stump  <mikestump@comcast.net>
16073
16074         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
16075         8.6.1.
16076
16077 2014-09-10  Martin Jambor  <mjambor@suse.cz>
16078
16079         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
16080         (analyze): Do not set analyze flag if expand_thunk returns false;.
16081         (create_wrapper): Likewise.
16082         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
16083
16084 2014-09-10  Martin Jambor  <mjambor@suse.cz>
16085
16086         PR ipa/61654
16087         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
16088         new decl properly.  Analyze the new thunk if it is expanded.
16089
16090 2014-09-10  Andreas Schwab  <schwab@suse.de>
16091
16092         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
16093         [USED_FOR_TARGET]: Define.
16094
16095 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
16096
16097         * config/mips/mips.c (mips_secondary_reload_class): Handle
16098         regno < 0 case.
16099
16100 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
16101
16102         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
16103         assignment.
16104
16105 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
16106
16107         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
16108         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
16109         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
16110         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
16111         flag_delete_null_pointer_checks for them.
16112         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
16113         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
16114         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
16115         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
16116         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
16117         stmt's iterator.
16118         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
16119         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
16120         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
16121         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
16122         * doc/invoke.texi (-fsanitize=nonnull-attribute,
16123         -fsanitize=returns-nonnull-attribute): Document.
16124
16125         * ubsan.h (struct ubsan_mismatch_data): Removed.
16126         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
16127         * ubsan.c (ubsan_source_location): For unknown locations,
16128         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
16129         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
16130         Allow more than one location and arbitrary extra arguments passed
16131         in ... instead of through MISMATCH pointer.
16132         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
16133         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
16134         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
16135         callers.
16136
16137 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16138             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16139             Anna Tikhonova  <anna.tikhonova@intel.com>
16140             Ilya Tocar  <ilya.tocar@intel.com>
16141             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16142             Ilya Verbin  <ilya.verbin@intel.com>
16143             Kirill Yukhin  <kirill.yukhin@intel.com>
16144             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16145
16146         * config/i386/sse.md
16147         (define_mode_iterator VI48F): New.
16148         (define_insn "<avx512>_compress<mode>_mask"): Rename from
16149         "avx512f_compress<mode>_mask" and update mode iterator.
16150         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
16151         "avx512f_compressstore<mode>_mask" and update mode iterator.
16152         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
16153         "avx512f_expand<mode>_maskz" and update mode iterator.
16154         (define_insn "<avx512>_expand<mode>_mask"): Rename from
16155         "avx512f_expand<mode>_mask" and update mode iterator.
16156
16157 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16158             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16159             Anna Tikhonova  <anna.tikhonova@intel.com>
16160             Ilya Tocar  <ilya.tocar@intel.com>
16161             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16162             Ilya Verbin  <ilya.verbin@intel.com>
16163             Kirill Yukhin  <kirill.yukhin@intel.com>
16164             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16165
16166         * config/i386/i386.c
16167         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
16168         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
16169         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
16170         avx512dq_rangepv4sf_mask.
16171         * config/i386/sse.md
16172         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
16173         UNSPEC_RANGE.
16174         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
16175         (define_insn "reduces<mode>"): Ditto.
16176         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
16177         Ditto.
16178         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
16179         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
16180         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
16181
16182 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16183             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16184             Anna Tikhonova  <anna.tikhonova@intel.com>
16185             Ilya Tocar  <ilya.tocar@intel.com>
16186             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16187             Ilya Verbin  <ilya.verbin@intel.com>
16188             Kirill Yukhin  <kirill.yukhin@intel.com>
16189             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16190
16191         * config/i386/i386.c
16192         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
16193         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
16194         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
16195         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
16196         avx512vl_getmantv2df_mask.
16197         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
16198         avx512f_vgetmantv4sf_round.
16199         * config/i386/sse.md
16200         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
16201         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
16202         mode iterator.
16203         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
16204         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
16205         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
16206         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
16207         iterator..
16208         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
16209         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
16210         update mode iterator.
16211         (define_expand
16212         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
16213         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
16214         mode iterator.
16215         (define_insn
16216         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
16217         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
16218         update mode iterator.
16219         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
16220         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
16221         iterator..
16222         (define_insn
16223         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
16224         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
16225         mode iterator..
16226         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
16227         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
16228         update mode iterator.
16229         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
16230         "avx512f_getmant<mode><round_saeonly_name>".
16231
16232 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
16233
16234         PR ipa/63166
16235         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
16236
16237 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16238             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16239             Anna Tikhonova  <anna.tikhonova@intel.com>
16240             Ilya Tocar  <ilya.tocar@intel.com>
16241             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16242             Ilya Verbin  <ilya.verbin@intel.com>
16243             Kirill Yukhin  <kirill.yukhin@intel.com>
16244             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16245
16246         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
16247         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
16248         (define_mode_iterator FMAMODE_AVX512): New.
16249         (define_mode_iterator FMAMODE): Remove conditions.
16250         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
16251         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
16252         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
16253         mode iterator.
16254         (define_mode_iterator FMAMODE_NOVF512): Remove.
16255         (define_insn "*fma_fmadd_<mode>"): Rename from
16256         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
16257         FMAMODE mode iterator.
16258         (define_mode_iterator VF_SF_AVX512VL): New.
16259         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
16260         Use VF_SF_AVX512VL mode iterator.
16261         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
16262         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
16263         iterator.
16264         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
16265         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
16266         iterator.
16267         (define_insn "*fma_fmsub_<mode>"): Rename from
16268         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
16269         FMAMODE mode iterator.
16270         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
16271         Use VF_SF_AVX512VL mode iterator.
16272         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
16273         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
16274         iterator.
16275         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
16276         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
16277         iterator.
16278         (define_insn "*fma_fnmadd_<mode>"): Rename from
16279         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
16280         use FMAMODE mode iterator.
16281         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
16282         Use VF_SF_AVX512VL mode iterator.
16283         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
16284         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
16285         iterator.
16286         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
16287         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
16288         iterator.
16289         (define_insn "*fma_fnmsub_<mode>"): Rename from
16290         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
16291         FMAMODE mode iterator.
16292         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
16293         Use VF_SF_AVX512VL mode iterator.
16294         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
16295         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
16296         iterator.
16297         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
16298         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
16299         iterator.
16300         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
16301         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
16302         use VF_AVX512VL mode iterator.
16303         (define_insn "*fma_fmaddsub_<mode>"): Rename from
16304         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
16305         remove subst usage.
16306         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
16307         Use VF_SF_AVX512VL mode iterator.
16308         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
16309         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
16310         iterator.
16311         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
16312         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
16313         iterator.
16314         (define_insn "*fma_fmsubadd_<mode>"): Rename from
16315         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
16316         remove usage of subst.
16317         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
16318         Use VF_SF_AVX512VL mode iterator.
16319         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
16320         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
16321         iterator.
16322         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
16323         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
16324         iterator.
16325
16326 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
16327
16328         Revert r213751:
16329         * calls.c (precompute_arguments): Check
16330          promoted_for_signed_and_unsigned_p and set the promoted mode.
16331         (promoted_for_signed_and_unsigned_p): New function.
16332         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16333         and set the promoted mode.
16334         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16335         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16336         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16337
16338 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16339
16340         * opth-gen.awk: Generate mapping from cpp message reasons to the
16341         options that enable them.
16342         * doc/options.texi (CppReason): Document.
16343
16344 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16345
16346         * doc/invoke.texi (Wnormalized=): Update.
16347
16348 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
16349
16350         PR target/63195
16351         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
16352         operands.  Split off the constant operand alternative to ...
16353         (*bool<mode>3_imm): New.
16354
16355 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
16356
16357         * rtl.h (single_set_2): Strengthen first param from const_rtx to
16358         const rtx_insn *, and move prototype to above...
16359         (single_set): ...this.  Convert this from a macro to an inline
16360         function, enforcing the requirement that the param is a const
16361         rtx_insn *.
16362         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
16363
16364         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
16365         Strengthen both params from rtx to rtx_insn *.
16366         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
16367         Likewise; introduce locals "producer_set", "consumer_set", using
16368         them in place of "producer" and "consumer" when dealing with SET
16369         rather than insn.
16370         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
16371         when invoking single_set in region guarded by INSN_P.
16372         (avr_out_bitop): Likewise.
16373         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
16374         region guarded by GET_CODE check, using methods to strengthen
16375         local "this_insn" from rtx to rtx_insn *, and for clarity.
16376         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
16377         Strengthen local "insn" from rtx to rtx_insn *.
16378         (define_insn_and_split "xload<mode>_A"): Likewise.
16379         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
16380         "insn".
16381         (find_load): Likewise for return type.
16382         (workaround_speculation): Likewise for both locals named
16383         "load_insn".
16384         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
16385         local "cc0_user".
16386         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
16387         for local "prev".
16388         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
16389         param 2.
16390         * config/h8300/h8300.c (notice_update_cc): Likewise.
16391         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
16392         "insn" and "dep_insn".
16393         (exact_store_load_dependency): Likewise for both params.
16394         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
16395         since this now clashes with inline function.  Instead, delay
16396         calling single_set until the point where its needed, and then
16397         assign the result to "compare_set" and rework the conditional that
16398         follows.
16399         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
16400         local "last" from rtx to rtx_insn *.
16401         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
16402         second param.
16403         (mips_store_data_bypass_p): Likewise for both params.
16404         * config/mips/mips.c (mips_load_store_insns): Likewise for second
16405         param.
16406         (mips_store_data_bypass_p): Likewise for both params.
16407         (mips_orphaned_high_part_p): Likewise for param "insn".
16408         * config/mn10300/mn10300.c (extract_bundle): Likewise.
16409         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
16410         Introduce local rtx "insn2_pat".
16411         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
16412         "ninsn".
16413         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
16414         Introduce local rtx "set", using it in place of "insn" for the
16415         result of single_set.  This appears to fix a bug, since the call
16416         to find_regno_note on a SET does nothing.
16417         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
16418         params from rtx to rtx_insn *.
16419         (set_to_load_agen): Likewise.
16420         * config/s390/s390.c (s390_label_align): Likewise for local
16421         "prev_insn".  Introduce new rtx locals "set" and "src", using
16422         them in place of "prev_insn" for the results of single_set
16423         and SET_SRC respectively.
16424         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
16425         Introduce new rtx local "set" using in place of "jump" for the
16426         result of single_set.  Use SET_SRC (set) rather than plain
16427         XEXP (set, 1).
16428         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
16429         rtx to rtx_insn *.
16430         (noncall_uses_reg): Likewise.
16431         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
16432         guarded by GET_CODE check, using its methods for clarity, and to
16433         enable strengthening local "this_insn" from rtx to rtx_insn *.
16434         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
16435         "insn" from rtx to rtx_insn *.
16436         (define_expand "umulhisi3"): Likewise.
16437         (define_expand "smulsi3_highpart"): Likewise.
16438         (define_expand "umulsi3_highpart"): Likewise.
16439         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
16440         local "after".  Replace GET_CODE check with a dyn_cast,
16441         introducing new local rtx_sequence * "seq", using insn method for
16442         typesafety.
16443
16444         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
16445         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
16446         place of "insn" once we're dealing with patterns rather than the
16447         input insn.
16448         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
16449         (scan_trace): Likewise for local "elt", updating lookups within
16450         sequence to use insn method rather than element method.
16451         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
16452         to rtx_insn *.
16453         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
16454         * ifcvt.c (noce_try_abs): Likewise for local "insn".
16455         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
16456         invoking single_set.
16457         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
16458         "insn" from rtx to rtx_insn *.
16459         (skip_usage_debug_insns): Likewise for return type, adding a
16460         checked cast.
16461         (check_secondary_memory_needed_p): Likewise for local "insn".
16462         (inherit_reload_reg): Likewise.
16463         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
16464         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
16465         checked casts.
16466         (store_data_bypass_p): Likewise for both params.
16467         (if_test_bypass_p): Likewise.
16468         * recog.h (store_data_bypass_p): Likewise for both params.
16469         (if_test_bypass_p): Likewise.
16470         * reload.c (find_equiv_reg): Likewise for local "where".
16471         * reorg.c (delete_jump): Likewise for param "insn".
16472         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
16473         to const rtx_insn *.
16474         * store-motion.c (replace_store_insn): Likewise for param "del".
16475         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
16476         and use its methods for clarity, and to strengthen local "del"
16477         from rtx to rtx_insn *.
16478         (build_store_vectors): Use insn method of "st" when calling
16479         replace_store_insn for typesafety and clarity.
16480
16481 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16482
16483         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
16484         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
16485         on how to make it legal in future.
16486
16487 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
16488
16489         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
16490         to rtx_insn *.
16491         (restinsn): Likewise.
16492         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
16493         Likewise for param.
16494         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
16495         Likewise.
16496         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
16497         first param.
16498         (arc_hazard): Likewise for both params.
16499         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
16500         checked casts to rtx_sequence * and uses of the insn method for
16501         type-safety.
16502         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
16503         (arc_adjust_insn_length): Likewise for param "insn".
16504         (struct insn_length_parameters_s): Likewise for first param of
16505         "get_variants" callback field.
16506         (arc_get_insn_variants): Likewise for first param and local
16507         "inner".  Replace a check of GET_CODE with a dyn_cast to
16508         rtx_sequence *, using methods for type-safety and clarity.
16509         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
16510         rtx_sequence * and uses of the insn method for type-safety when
16511         invoking arc_adjust_insn_length.
16512         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
16513         for param.
16514         (arm_address_offset_is_imm): Likewise.
16515         (struct tune_params): Likewise for params 1 and 3 of the
16516         "sched_adjust_cost" callback field.
16517         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
16518         params 1 and 3 ("insn" and "dep").
16519         (xscale_sched_adjust_cost): Likewise.
16520         (fa726te_sched_adjust_cost): Likewise.
16521         (cortexa7_older_only): Likewise for param "insn".
16522         (cortexa7_younger): Likewise.
16523         (arm_attr_length_move_neon): Likewise.
16524         (arm_address_offset_is_imm): Likewise.
16525         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
16526         * config/avr/avr.c (avr_notice_update_cc): Likewise.
16527         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
16528         (workaround_speculation): Likewise for local "last_condjump".
16529         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
16530         (shadow_or_blockage_p): Likewise.
16531         (get_unit_reqs): Likewise.
16532         (get_unit_operand_masks): Likewise.
16533         (c6x_registers_update): Likewise.
16534         (returning_call_p): Likewise.
16535         (can_use_callp): Likewise.
16536         (convert_to_callp): Likewise.
16537         (find_last_same_clock): Likwise for local "t".
16538         (reorg_split_calls): Likewise for local "shadow".
16539         (hwloop_pattern_reg): Likewise for param "insn".
16540         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
16541         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
16542         (frv_extract_membar): Likewise.
16543         (frv_optimize_membar_local): Strengthen param "last_membar" from
16544         rtx * to rtx_insn **.
16545         (frv_optimize_membar_global): Strengthen param "membar" from rtx
16546         to rtx_insn *.
16547         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
16548         to rtx_insn **.
16549         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
16550         both params from rtx to rtx_insn *.
16551         (ia64_ld_address_bypass_p): Likewise.
16552         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
16553         "insn".
16554         (ia64_safe_type): Likewise.
16555         (group_barrier_needed): Likewise.
16556         (safe_group_barrier_needed): Likewise.
16557         (ia64_single_set): Likewise.
16558         (is_load_p): Likewise.
16559         (record_memory_reference): Likewise.
16560         (get_mode_no_for_insn): Likewise.
16561         (important_for_bundling_p): Likewise.
16562         (unknown_for_bundling_p): Likewise.
16563         (ia64_st_address_bypass_p): Likewise for both params.
16564         (ia64_ld_address_bypass_p): Likewise.
16565         (expand_vselect): Introduce new local rtx_insn * "insn", using it
16566         in place of rtx "x" after the emit_insn call.
16567         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
16568         Strengthen param from rtx to rtx_insn *.
16569         (ix86_agi_dependent): Likewise for both params.
16570         (ix86_attr_length_immediate_default): Likewise for param 1.
16571         (ix86_attr_length_address_default): Likewise for param.
16572         (ix86_attr_length_vex_default): Likewise for param 1.
16573         * config/i386/i386.c (ix86_attr_length_immediate_default):
16574         Likewise for param "insn".
16575         (ix86_attr_length_address_default): Likewise.
16576         (ix86_attr_length_vex_default): Likewise.
16577         (ix86_agi_dependent): Likewise for both params.
16578         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
16579         (vselect_insn): Likewise for this variable.
16580         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
16581         for param 1.
16582         (m68k_sched_attr_opy_type): Likewise.
16583         * config/m68k/m68k.c (sched_get_operand): Likewise.
16584         (sched_attr_op_type): Likewise.
16585         (m68k_sched_attr_opx_type): Likewise.
16586         (m68k_sched_attr_opy_type): Likewise.
16587         (sched_get_reg_operand): Likewise.
16588         (sched_get_mem_operand): Likewise.
16589         (m68k_sched_address_bypass_p): Likewise for both params.
16590         (sched_get_indexed_address_scale): Likewise.
16591         (m68k_sched_indexed_address_bypass_p): Likewise.
16592         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
16593         (m68k_sched_indexed_address_bypass_p): Likewise.
16594         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
16595         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
16596         removing another.
16597         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
16598         params from rtx to rtx_insn *.
16599         (mips_fmadd_bypass): Likewise.
16600         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
16601         (mips_linked_madd_p): Likewise.
16602         (mips_macc_chains_last_hilo): Likewise for this variable.
16603         (mips_macc_chains_record): Likewise for param.
16604         (vr4130_last_insn): Likewise for this variable.
16605         (vr4130_swap_insns_p): Likewise for both params.
16606         (mips_ls2_variable_issue): Likewise for param.
16607         (mips_need_noat_wrapper_p): Likewise for param "insn".
16608         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
16609         in place of "x" after the emit_insn.
16610         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
16611         params from rtx to rtx_insn *.
16612         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
16613         (pa_combine_instructions): Introduce local "par" for result of
16614         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
16615         to make_insn_raw.
16616         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
16617         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
16618         (rl78_alloc_physical_registers_op1): Likewise.
16619         (rl78_alloc_physical_registers_op2): Likewise.
16620         (rl78_alloc_physical_registers_ro1): Likewise.
16621         (rl78_alloc_physical_registers_cmp): Likewise.
16622         (rl78_alloc_physical_registers_umul): Likewise.
16623         (rl78_alloc_address_registers_macax): Likewise.
16624         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
16625         * config/s390/predicates.md (execute_operation): Likewise for
16626         local "insn".
16627         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
16628         params.
16629         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
16630         (addr_generation_dependency_p): Likewise for param "insn".
16631         (s390_agen_dep_p): Likewise for both params.
16632         (s390_fpload_toreg): Likewise for param "insn".
16633         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
16634         * config/sh/sh.c (sh_loop_align): Likewise for param and local
16635         "next".
16636         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
16637         * config/sh/sh_treg_combine.cc
16638         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
16639         and local "i".
16640         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
16641         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
16642         "and_insn", "load", "shift".
16643         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
16644         "insn".
16645         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
16646         for XEXP (note, 0) of the REG_CC_SETTER note.
16647         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
16648         rtx_insn *, eliminating a checked cast made redundant by this.
16649         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
16650         to rtx_insn *.
16651         * genattr.c (main): When writing out the prototype to
16652         const_num_delay_slots, strengthen the param from rtx to
16653         rtx_insn *.
16654         * genattrtab.c (write_const_num_delay_slots): Likewise when
16655         writing out the implementation of const_num_delay_slots.
16656         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
16657         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
16658         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
16659         favor of new rtx locals "src" and "set" and new local rtx_insn *
16660         "insn" and "seq".
16661         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
16662         to rtx_insn *.
16663         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
16664         locals "cond", "if_then_else", "set" and new rtx_insn * locals
16665         "insn" and "seq".
16666         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
16667         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
16668         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
16669         the top-level scope, replacing with new more tightly-scoped rtx
16670         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
16671         "new_insn", "copy_of_insn_b", and make local rtx "set" more
16672         tightly-scoped.
16673         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
16674         rtx_insn *.
16675         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
16676         "move_insn".
16677         (ira_setup_alts): Likewise for param "insn".
16678         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
16679         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
16680         and an rtx_insn *.
16681         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
16682         new more-tightly scoped rtx locals "add3_insn", "insn",
16683         "add2_insn" and rtx_insn * "move_insn".
16684         * postreload-gcse.c (eliminate_partially_redundant_load): Add
16685         checked cast on result of gen_move_insn when invoking
16686         extract_insn.
16687         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
16688         rtx_insn *.
16689         (verify_changes): Add a checked cast on "object" when invoking
16690         insn_invalid_p.
16691         (extract_insn_cached): Strengthen param "insn" from rtx to
16692         rtx_insn *.
16693         (extract_constrain_insn_cached): Likewise.
16694         (extract_insn): Likewise.
16695         * recog.h (insn_invalid_p): Likewise for param 1.
16696         (recog_memoized): Likewise for param.
16697         (extract_insn): Likewise.
16698         (extract_constrain_insn_cached): Likewise.
16699         (extract_insn_cached): Likewise.
16700         * reload.c (can_reload_into): Likewise for local "test_insn".
16701         * reload.h (cleanup_subreg_operands): Likewise for param.
16702         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
16703         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
16704         result of emit_insn.  Remove a checked cast made redundant by this
16705         change.
16706         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
16707         rtx to rtx_insn *.
16708         * sel-sched.c (get_reg_class): Likewise.
16709
16710 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16711             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16712
16713         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
16714         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
16715         Define.
16716         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
16717
16718 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
16719
16720         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
16721         const rtx_insn *, and from rtx to rtx_insn * for the other
16722         overloaded variant.
16723         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
16724         INSN_LOCATION, since we know INSN_P holds.
16725         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
16726         (insn_file): Likewise.
16727         (insn_scope): Likewise.
16728         (insn_location): Likewise.
16729
16730         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
16731         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
16732         for the result of gen_load_const_gp.
16733         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
16734         param from rtx to rtx_insn *.
16735         * config/rs6000/rs6000.c (output_call): Likewise.
16736         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
16737         introducing a checked cast to rtx_sequence * and use of the insn
16738         method.
16739         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
16740         from rtx to rtx_insn *.
16741         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
16742         (insn_line): Likewise.
16743         (insn_file): Likewise.
16744         (insn_location): Likewise.
16745         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
16746         from rtx to rtx_insn *.
16747         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
16748         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
16749         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
16750         via a checked cast.
16751         * reorg.c (relax_delay_slots): Strengthen locals named "after"
16752         from rtx to rtx_insn *; use methods of "pat" for type-safety.
16753
16754 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
16755
16756         * combine.c (try_combine): Eliminate checked cast on result of
16757         gen_rtx_INSN.
16758         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
16759         autogenerated one by strengthening the return type and params 2 and 3
16760         from rtx to rtx_insn *, and by naming the params.
16761         * gengenrtl.c (special_rtx): Add INSN to those that are
16762         special-cased.
16763         * rtl.h (gen_rtx_INSN): New prototype.
16764
16765 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
16766
16767         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
16768         than NULL_RTX.
16769         (no_equiv): Likewise.
16770         (update_equiv_regs): Likewise.
16771         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
16772         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
16773         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
16774         clarity.
16775         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
16776         from rtx to rtx_insn_list *.
16777         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
16778         rtx_insn_list * and use methods for clarity and typesafety.
16779         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
16780         "list".
16781         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
16782         redundant check on INSN_P (insns): this cannot hold, as "insns" is
16783         an INSN_LIST, not an insn.
16784         (reverse_equiv_p): Strengthen local "insns" from rtx to
16785         rtx_insn_list * and use methods for clarity and typesafety.
16786         (contains_reloaded_insn_p): Likewise for local "list".
16787
16788 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
16789
16790         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
16791         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
16792         (arm_builtin_vectorized_function): Likewise.
16793         * config/arm/arm_neon_builtins.def: New macro for copysignf.
16794         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
16795
16796 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
16797
16798         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
16799         * builtins.h (default_target_builtins): Likewise.
16800         * gcse.h (default_target_gcse): Likewise.
16801         * target-globals.h (target_globals): Add a destructor.  Convert
16802         void-pointer fields back to their real type and change from
16803         GTY((atomic)) to GTY((skip)).
16804         (restore_target_globals): Remove casts accordingly.
16805         * target-globals.c (save_target_globals): Use XCNEW rather than
16806         ggc_internal_cleared_alloc to allocate non-GC structures.
16807         Use ggc_cleared_alloc to allocate the target_globals structure
16808         itself.
16809         (target_globals::~target_globals): Define.
16810
16811 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16812
16813         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
16814         mnemonic instead of fldmfdd.
16815         * config/arm/arm.c (vfp_output_fstmd): Rename to...
16816         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
16817         Output vpush when address register is SP.
16818         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
16819         (vfp_output_vstmd): ... This.
16820         * config/arm/vfp.md (push_multi_vfp): Update call to
16821         vfp_output_vstmd.
16822
16823 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16824
16825         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
16826
16827 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16828
16829         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
16830         (*sqrtdf2_vfp): Likewise.
16831         (*cmpsf_vfp): Likewise.
16832         (*cmpsf_trap_vfp): Likewise.
16833         (*cmpdf_vfp): Likewise.
16834         (*cmpdf_trap_vfp): Likewise.
16835
16836 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16837
16838         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
16839         (*truncdfsf2_vfp): Likewise.
16840         (*truncsisf2_vfp): Likewise.
16841         (*truncsidf2_vfp): Likewise.
16842         (fixuns_truncsfsi2): Likewise.
16843         (fixuns_truncdfsi2): Likewise.
16844         (*floatsisf2_vfp): Likewise.
16845         (*floatsidf2_vfp): Likewise.
16846         (floatunssisf2): Likewise.
16847         (floatunssidf2): Likewise.
16848
16849 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16850
16851         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
16852         (*muldf3_vfp): Likewise.
16853         (*mulsf3negsf_vfp): Likewise.
16854         (*muldf3negdf_vfp): Likewise.
16855         (*mulsf3addsf_vfp): Likewise.
16856         (*muldf3adddf_vfp): Likewise.
16857         (*mulsf3subsf_vfp): Likewise.
16858         (*muldf3subdf_vfp): Likewise.
16859         (*mulsf3negsfaddsf_vfp): Likewise.
16860         (*fmuldf3negdfadddf_vfp): Likewise.
16861         (*mulsf3negsfsubsf_vfp): Likewise.
16862         (*muldf3negdfsubdf_vfp): Likewise.
16863
16864 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16865
16866         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
16867         (*absdf2_vfp): Likewise.
16868         (*negsf2_vfp): Likewise.
16869         (*negdf2_vfp): Likewise.
16870         (*addsf3_vfp): Likewise.
16871         (*adddf3_vfp): Likewise.
16872         (*subsf3_vfp): Likewise.
16873         (*subdf3_vfp): Likewise.
16874         (*divsf3_vfp): Likewise.
16875         (*divdf3_vfp): Likewise.
16876
16877 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16878
16879         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
16880         multiple.
16881         (arm_print_operand): Don't convert real values to decimal
16882         representation in default case.
16883         (fp_immediate_constant): Delete.
16884         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
16885         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
16886         syntax.
16887         (*thumb2_movsi_vfp): Likewise.
16888         (*movdi_vfp): Likewise.
16889         (*movdi_vfp_cortexa8): Likewise.
16890         (*movhf_vfp_neon): Likewise.
16891         (*movhf_vfp): Likewise.
16892         (*movsf_vfp): Likewise.
16893         (*thumb2_movsf_vfp): Likewise.
16894         (*movdf_vfp): Likewise.
16895         (*thumb2_movdf_vfp): Likewise.
16896         (*movsfcc_vfp): Likewise.
16897         (*thumb2_movsfcc_vfp): Likewise.
16898         (*movdfcc_vfp): Likewise.
16899         (*thumb2_movdfcc_vfp): Likewise.
16900
16901 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
16902
16903         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
16904         (-mtune): Likewise.
16905         (-mcpu): Likewise.
16906
16907 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16908
16909         PR target/61749
16910         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
16911         Use qualifier_immediate for last operand.  Rename to...
16912         (aarch64_types_ternop_lane_qualifiers): ... This.
16913         (TYPES_QUADOP): Rename to...
16914         (TYPES_TERNOP_LANE): ... This.
16915         (aarch64_simd_expand_args): Return const0_rtx when encountering user
16916         error.  Change return of 0 to return of NULL_RTX.
16917         (aarch64_crc32_expand_builtin): Likewise.
16918         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
16919         ICE when expanding unknown builtin.
16920         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
16921         TERNOP_LANE qualifiers.
16922         (sqdmlsl_lane): Likewise.
16923         (sqdmlal_laneq): Likewise.
16924         (sqdmlsl_laneq): Likewise.
16925         (sqdmlal2_lane): Likewise.
16926         (sqdmlsl2_lane): Likewise.
16927         (sqdmlal2_laneq): Likewise.
16928         (sqdmlsl2_laneq): Likewise.
16929
16930 2014-09-09  Nick Clifton  <nickc@redhat.com>
16931
16932         * doc/invoke.texi (Optimization Options): Add missing @gol to the
16933         end of a line.
16934         (S/390 and zSeries Options): Remove superfluous word from the
16935         description of the -mhotpatch option.
16936
16937 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16938
16939         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
16940         * ira.c: #include "shrink-wrap.h"
16941         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
16942         * ifcvt.c: #include "shrink-wrap.h"
16943         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
16944
16945 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
16946
16947         * common/config/picochip/picochip-common.c: Remove.
16948         * config.gcc: Remove support for picochip.
16949         * config/picochip/constraints.md: Remove.
16950         * config/picochip/dfa_space.md: Remove.
16951         * config/picochip/dfa_speed.md: Remove.
16952         * config/picochip/picochip-protos.h: Remove.
16953         * config/picochip/picochip.c: Remove.
16954         * config/picochip/picochip.h: Remove.
16955         * config/picochip/picochip.md: Remove.
16956         * config/picochip/picochip.opt: Remove.
16957         * config/picochip/predicates.md: Remove.
16958         * config/picochip/t-picochip: Remove.
16959         * doc/md.texi: Don't document picochi.
16960
16961 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
16962
16963         * basic-block.h (control_flow_insn_p): Strengthen param from
16964         const_rtx to const rtx_insn *.
16965         * cfgbuild.c (control_flow_insn_p): Likewise.
16966
16967 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
16968
16969         * gcse.c (modify_mem_list): Strengthen this variable from
16970         vec<rtx> * to vec<rtx_insn *> *.
16971         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
16972         vec<rtx_insn *>.
16973         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
16974         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
16975         (record_last_mem_set_info): Strengthen param "insn" from rtx to
16976         rtx_insn *.
16977         (record_last_set_info): Likewise for local "last_set_insn".
16978
16979 2014-09-08  DJ Delorie  <dj@redhat.com>
16980
16981         * doc/invoke.texi (MSP430 Options): Add -minrt.
16982
16983 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16984
16985         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
16986         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
16987         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
16988         handling SH_SPLAT.
16989         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
16990         of extracted lane.
16991         (adjust_splat): New function.
16992         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
16993         (dump_swap_insn_table): Add case for SH_SPLAT.
16994
16995 2014-09-08  Richard Biener  <rguenther@suse.de>
16996
16997         PR ipa/63196
16998         * tree-inline.c (copy_loops): The source loop header should
16999         always be non-NULL.
17000         (tree_function_versioning): If loops need fixup after removing
17001         unreachable blocks fix them.
17002         * omp-low.c (simd_clone_adjust): Do not add incr block to
17003         loop under construction.
17004
17005 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
17006
17007         * config/aarch64/aarch64-builtins.c
17008         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
17009
17010 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
17011
17012         * config/i386/cygming.h (TF_SIZE): Remove.
17013         * config/i386/darwin.h (TF_SIZE): Remove.
17014         * config/i386/dragonfly.h (TF_SIZE): Remove.
17015         * config/i386/freebsd.h (TF_SIZE): Remove.
17016         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
17017         * config/i386/openbsdelf.h (TF_SIZE): Remove.
17018         * config/i386/sol2.h (TF_SIZE): Remove.
17019         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
17020         * config/ia64/linux.h (TF_SIZE): Remove.
17021         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
17022         * doc/tm.texi: Regenerate.
17023         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
17024
17025 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
17026
17027         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
17028         Remove.
17029         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
17030         Remove.
17031         * doc/tm.texi: Regenerate.
17032         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
17033         Poison.
17034         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
17035         * config/cris/cris.h (__make_dp): Remove.
17036
17037 2014-09-08  Richard Biener  <rguenther@suse.de>
17038
17039         PR bootstrap/63204
17040         * cfgloop.c (mark_loop_for_removal): Track former header
17041         unconditionally.
17042         * cfgloop.h (struct loop): Add former_header member unconditionally.
17043         * loop-init.c (fix_loop_structure): Enable bogus loop removal
17044         diagnostic unconditionally.
17045
17046 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
17047
17048         PR target/63190
17049         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
17050         constraint for operand0 and remove write only modifier from operand3.
17051
17052 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
17053
17054         PR rtl-optimization/62208
17055         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
17056         rather than const0_rtx in eq/ne-xor simplifications.
17057
17058 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
17059
17060         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
17061         (arc_output_mi_thunk): Likewise.
17062
17063         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
17064         arguments to silence bogus warning.
17065
17066 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
17067
17068         PR middle-end/63171
17069         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
17070
17071 2014-09-06  Tom de Vries  <tom@codesourcery.com>
17072
17073         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
17074         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
17075         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
17076
17077 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
17078
17079         PR target/63188
17080         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
17081         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
17082
17083 2014-09-05  Easwaran Raman  <eraman@google.com>
17084
17085         PR rtl-optimization/62146
17086         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
17087         hoisted instruction unconditional.
17088
17089 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
17090
17091         PR target/63187
17092         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
17093         Do not allow any_mask_operand for operands[2].
17094         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
17095
17096 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17097
17098         * config/arc/arc.c (arc_print_operand): Use insn method of
17099         final_sequence for type-safety.
17100         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
17101         "insn" from rtx to rtx_insn *.
17102         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
17103         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
17104         Likewise for locals "branch", "label".
17105         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
17106         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
17107         (same_cmp_following_p): Likewise for locals "i2", "i3".
17108         * config/sh/sh_optimize_sett_clrt.cc
17109         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
17110         param "cbranch_insn".
17111         * function.c (convert_jumps_to_returns): Likewis for local "jump".
17112         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
17113         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
17114         const rtx_insn *.
17115         (condjump_p): Likewise.
17116         (condjump_in_parallel_p): Likewise.
17117         (pc_set): Likewise.
17118         (any_uncondjump_p): Likewise.
17119         (any_condjump_p): Likewise.
17120         (condjump_label): Likewise.
17121         (returnjump_p): Strengthen param "insn" from rtx to
17122         const rtx_insn *.
17123         (onlyjump_p): Strengthen param "insn" from const_rtx to
17124         const rtx_insn *.
17125         (jump_to_label_p): Likewise.
17126         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
17127         (invert_jump): Likewise.
17128         * reorg.c (simplejump_or_return_p): Add checked cast when calling
17129         simplejump_p.
17130         (get_jump_flags): Strengthen param "insn" from rtx to
17131         const rtx_insn *.
17132         (get_branch_condition): Likewise.
17133         (condition_dominates_p): Likewise.
17134         (make_return_insns): Move declaration of local "pat" earlier, to
17135         after we've handled NONJUMP_INSN_P and non-sequences, using its
17136         methods to simplify the code and for type-safety.
17137         * rtl.h (find_constant_src): Strengthen param from const_rtx to
17138         const rtx_insn *.
17139         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
17140         (condjump_p): Strengthen param from const_rtx to
17141         const rtx_insn *.
17142         (any_condjump_p): Likewise.
17143         (any_uncondjump_p): Likewise.
17144         (pc_set): Likewise.
17145         (condjump_label): Likewise.
17146         (simplejump_p): Likewise.
17147         (returnjump_p): Likewise.
17148         (onlyjump_p): Likewise.
17149         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
17150         (invert_jump): Likewise.
17151         (condjump_in_parallel_p): Strengthen param from const_rtx to
17152         const rtx_insn *.
17153         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
17154         to const rtx_insn *.
17155         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
17156         to const rtx_insn *.
17157         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
17158
17159 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17160
17161         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
17162         above the conditional, and convert the check on GET_CODE to a
17163         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
17164         the conditional.  Simplify the conditional by using methods of
17165         "trial_seq".
17166
17167 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17168
17169         * haifa-sched.c (check_clobbered_conditions): Strengthen local
17170         "link" from rtx to rtx_insn_list *, and use its methods for
17171         clarity and type-safety.
17172         (toggle_cancelled_flags): Likewise.
17173         (restore_last_backtrack_point): Likewise.
17174         (queue_to_ready): Use insn method of "link" in one place.
17175         (schedule_block): Strengthen local "link" from rtx to
17176         rtx_insn_list *, and use its methods for clarity and type-safety.
17177
17178 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17179
17180         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
17181         param "insn" from const_rtx to const rtx_insn *.
17182         (sched_get_reverse_condition_uncached): Likewise.
17183         (sched_get_condition_with_rev): Likewise.
17184         (sched_has_condition_p): Likewise.
17185         (sched_insns_conditions_mutex_p): Likewise for both params.
17186         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
17187         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
17188         (setup_insn_reg_uses): Move local "list" to be more tightly
17189         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
17190         its methods for clarity and type-safety.
17191         (sched_analyze_1): Strengthen local "pending" from rtx to
17192         rtx_insn_list *, and local "pending_mem" from rtx to
17193         rtx_expr_list *.  Use methods of each for clarity and type-safety.
17194         (sched_analyze_2): Likewise.
17195         (sched_analyze_insn): Likewise.
17196
17197         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
17198         param from const_rtx to const rtx_insn *.
17199         (sched_insns_conditions_mutex_p): Likewise for both params.
17200         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
17201         param.
17202
17203         * system.h (CONST_CAST_RTX_INSN): New macro.
17204
17205 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17206
17207         * recog.c (peep2_attempt): Strengthen return type from rtx to
17208         rtx_insn *.
17209         (peep2_update_life): Likewise for params "last", "prev", removing
17210         a checked cast made redundant by this.
17211         (peephole2_optimize): Likewise for local "last".
17212
17213 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17214
17215         * basic-block.h (set_block_for_insn): Eliminate this macro in
17216         favor of...
17217         * rtl.h (set_block_for_insn): New inline function, imposing the
17218         requirement that the "insn" param is an rtx_insn *.
17219
17220 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17221
17222         * caller-save.c (setup_save_areas): Strengthen local "insn" from
17223         rtx to rtx_insn *.
17224         * final.c (get_call_reg_set_usage): Likewise for first param,
17225         eliminating a checked cast.
17226         * regs.h (get_call_reg_set_usage): Likewise for first param.
17227         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
17228         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
17229         cast, replacing references to "x" with "call_insn" where
17230         appropriate.
17231         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
17232         rtx_insn *, adding a checked cast.
17233
17234 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17235
17236         * output.h (final_scan_insn): Strengthen first param from rtx to
17237         rtx_insn *.
17238
17239         * final.c (final_scan_insn): Likewise, renaming it back from
17240         "uncast_insn" to "insn", eliminating the checked cast.
17241
17242         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
17243         "vec" with an rtx_sequence * "seq", taking a copy of
17244         "final_sequence", and using methods of "seq" for clarity, and for
17245         type-safety in the calls to final_scan_insn.
17246         * config/mips/mips.c (mips_output_conditional_branch): Use methods
17247         of "final_sequence" for clarity, and for type-safety in the call to
17248         final_scan_insn.
17249         * config/sh/sh.c (print_slot): Strengthen param from rtx to
17250         rtx_sequence * and rename from "insn" to "seq".
17251
17252 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17253
17254         * jump.c (delete_related_insns): Introduce a new local "table" by
17255         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
17256         get_labels method of "table" to simplify access to the labels in
17257         the jump table.
17258
17259 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17260
17261         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
17262         f_minmaxs, f_minmaxd types.
17263
17264 2014-09-05  Richard Biener  <rguenther@suse.de>
17265
17266         * cfgloop.c (mark_loop_for_removal): Record former header
17267         when ENABLE_CHECKING.
17268         * cfgloop.h (strut loop): Add former_header member when
17269         ENABLE_CHECKING.
17270         * loop-init.c (fix_loop_structure): Sanity check loops
17271         marked for removal if they re-appeared.
17272
17273 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17274
17275         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
17276         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
17277
17278         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
17279         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
17280         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
17281         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
17282         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
17283         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
17284         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
17285         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
17286         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
17287         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
17288         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
17289         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
17290         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
17291         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
17292         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
17293         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
17294         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
17295         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
17296         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
17297         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
17298         with int{32,16,8}_t.
17299
17300 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17301
17302         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
17303         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
17304         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
17305         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
17306         Remove temporary __asm__ and reimplement.
17307
17308 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17309
17310         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
17311         handling cmge, cmgt, cmeq, cmtst.
17312
17313         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
17314         cmlt, cmgeu, cmgtu, cmtst): Remove.
17315
17316         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
17317         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
17318         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
17319         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
17320
17321 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17322
17323         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
17324         TYPES_TST): Define.
17325         (aarch64_fold_builtin): Update pattern for cmtst.
17326
17327         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
17328         Declare.
17329
17330         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
17331
17332         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
17333         Switch operands, separate out more cases, refactor.
17334
17335         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
17336
17337         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
17338         argument; rename old version to...
17339         (aarch64_const_vec_all_same_in_range_p): ...this.
17340         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
17341
17342         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
17343
17344 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17345
17346         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
17347         Remove qualifier_const_pointer, update comment.
17348
17349 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17350
17351         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
17352
17353 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17354
17355         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
17356         varargs with pointer parameter.
17357         (aarch64_simd_expand_builtin): pass pointer into previous.
17358
17359 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17360
17361         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
17362         alus_ext.
17363
17364 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
17365
17366         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
17367         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
17368         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
17369         Replace temporary asm with call to builtin.
17370         (vrbit_p8, vrbitq_p8): New functions.
17371
17372 2014-09-05  Richard Biener  <rguenther@suse.de>
17373
17374         * cfgloop.c (mark_loop_for_removal): New function.
17375         * cfgloop.h (mark_loop_for_removal): Declare.
17376         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
17377         (merge_blocks): Likewise.
17378         (duplicate_block): Likewise.
17379         * except.c (sjlj_emit_dispatch_table): Likewise.
17380         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
17381         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
17382         (thread_through_loop_header): Likewise.
17383
17384 2014-09-05  Richard Biener  <rguenther@suse.de>
17385
17386         PR middle-end/63148
17387         * fold-const.c (try_move_mult_to_index): Remove.
17388         (fold_binary_loc): Do not call it.
17389         * tree-data-ref.c (dr_analyze_indices): Strip conversions
17390         from the base object again.
17391
17392 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
17393
17394         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
17395         DImode.
17396
17397 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
17398
17399         PR target/55701
17400         * config/arm/arm.md (setmem): New pattern.
17401         * config/arm/arm-protos.h (struct tune_params): New fields.
17402         (arm_gen_setmem): New prototype.
17403         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
17404         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
17405         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
17406         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
17407         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
17408         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
17409         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
17410         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
17411         (arm_const_inline_cost): New function.
17412         (arm_block_set_max_insns): New function.
17413         (arm_block_set_non_vect_profit_p): New function.
17414         (arm_block_set_vect_profit_p): New function.
17415         (arm_block_set_unaligned_vect): New function.
17416         (arm_block_set_aligned_vect): New function.
17417         (arm_block_set_unaligned_non_vect): New function.
17418         (arm_block_set_aligned_non_vect): New function.
17419         (arm_block_set_vect, arm_gen_setmem): New functions.
17420
17421 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
17422
17423         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
17424
17425 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
17426
17427         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
17428
17429 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
17430
17431         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
17432         an rtx.
17433         * valtrack.h: Adjust.
17434
17435 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
17436
17437         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
17438         an rtx.
17439         (emit_jump_insn_before_noloc): Likewise.
17440         (emit_call_insn_before_noloc): Likewise.
17441         (emit_label_before): Likewise.
17442         (emit_label_after): Likewise.
17443         (emit_insn_before_setloc): Likewise.
17444         (emit_jump_insn_before_setloc): Likewise.
17445         (emit_call_insn_before_setloc): Likewise.
17446         (emit_call_insn_before): Likewise.
17447         * rtl.h: Adjust.
17448
17449 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17450
17451         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
17452         rtx_insn *, eliminating a checked cast.
17453
17454 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17455
17456         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
17457         const_rtx to const rtx_insn *.
17458         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
17459         cast.
17460
17461 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17462
17463         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
17464         fixup_args_size_notes.
17465         * expr.c (fixup_args_size_notes): Strengthen first two params from
17466         rtx to rtx_insn *, eliminating a checked cast.
17467         * rtl.h (fixup_args_size_notes): Strengthen first two params from
17468         rtx to rtx_insn *.
17469
17470 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
17471
17472         * haifa-sched.c (get_ready_element): Strengthen return type from
17473         rtx to rtx_insn *.
17474         * sched-int.h (get_ready_element): Likewise.
17475
17476 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
17477
17478         PR target/63165
17479         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
17480         indexed_or_indirect_operand instead of memory_operand.
17481         (floatsi<mode>2_lfiwzx_mem): Ditto.
17482
17483 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
17484
17485         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
17486         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
17487         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
17488
17489 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
17490
17491         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
17492         rtx.
17493         (get_last_nonnote_insn): Likewise.
17494         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
17495         * resource.c (find_basic_block): Likewise.
17496         * rtl.h: Adjust.
17497         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
17498         const_rtx.
17499
17500 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
17501
17502         * genattr.c (main): Within the prototype of insn_latency written
17503         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
17504         * genautomata.c (output_internal_maximal_insn_latency_func):
17505         Within the implementation of insn_latency written out to
17506         insn-automata.c, strengthen both params from rtx to rtx_insn *,
17507         eliminating a pair of checked casts.
17508
17509 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
17510
17511         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
17512         rtx_insn *.
17513
17514         * rtl.h (eh_returnjump_p): Likewise.
17515
17516 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
17517
17518         * Makefile.in (TAGS): Handle constructs in timevar.def.
17519
17520 2014-09-04  Guozhi Wei  <carrot@google.com>
17521
17522         PR target/62040
17523         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
17524         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
17525         it into two patterns.
17526         (move_lo_quad_internal_be_<mode>): Likewise.
17527
17528 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17529
17530         * doc/options.texi: Document that Var and Init are required if CPP
17531         is given.
17532         * optc-gen.awk: Require Var and Init if CPP is given.
17533         * common.opt (Wpedantic): Use Init.
17534
17535 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17536
17537         * config/rs6000/rs6000.c (special_handling_values): Add
17538         SH_EXTRACT.
17539         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
17540         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
17541         as swappable with special handling SH_EXTRACT.  Remove
17542         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
17543         optimization.
17544         (adjust_extract): New function.
17545         (handle_special_swappables): Add default to case statement; add
17546         case for SH_EXTRACT that calls adjust_extract.
17547         (dump_swap_insn_table): Handle SH_EXTRACT.
17548
17549 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17550
17551         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
17552         selection of 0th memory doubleword, regardless of endianness.
17553
17554 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17555
17556         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
17557
17558 2014-09-04  Alan Modra  <amodra@gmail.com>
17559
17560         PR debug/60655
17561         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
17562         can't be output.
17563
17564 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
17565
17566         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
17567         * targhooks.c (default_dwarf_frame_reg_mode): New function.
17568         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
17569         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
17570         * doc/tm.texi: Regenerate.
17571         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
17572         selection logic to default_dwarf_frame_reg_mode.
17573
17574 2014-09-03  Marek Polacek  <polacek@redhat.com>
17575
17576         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
17577         by -Wall.
17578
17579 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
17580
17581         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
17582         the automodified register.
17583
17584 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
17585
17586         * output.h (get_some_local_dynamic_name): Declare.
17587         * final.c (some_local_dynamic_name): New variable.
17588         (get_some_local_dynamic_name): New function.
17589         (final_end_function): Clear some_local_dynamic_name.
17590         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
17591         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
17592         (print_operand): Report an error if '%&' is used inappropriately.
17593         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
17594         (get_some_local_dynamic_name_1): Delete.
17595         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
17596         (rs6000_get_some_local_dynamic_name): Delete.
17597         (rs6000_get_some_local_dynamic_name_1): Delete.
17598         (print_operand): Report an error if '%&' is used inappropriately.
17599         * config/s390/s390.c (machine_function): Remove some_ld_name.
17600         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
17601         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
17602         * config/sparc/sparc.c: Include rtl-iter.h.
17603         (machine_function): Remove some_ld_name.
17604         (sparc_print_operand): Report an error if '%&' is used inappropriately.
17605         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
17606
17607 2014-09-03  Richard Henderson  <rth@redhat.com>
17608
17609         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
17610         (aarch64_popwb_pair_reg): Remove.
17611         (aarch64_set_frame_expr): Remove.
17612         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
17613         the restore ops performed by the insns generated.
17614         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
17615         insn.  Perform the calls_eh_return addition later; do not attempt to
17616         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
17617         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
17618         special markup at all.  Load cfun->machine->frame.hard_fp_offset
17619         into a local variable.
17620         (aarch64_frame_pointer_required): Don't check calls_alloca.
17621
17622 2014-09-03  Richard Biener  <rguenther@suse.de>
17623
17624         * opts.c (default_options_optimization): Adjust
17625         max-combine-insns to 2 for -Og.
17626
17627 2014-09-03  Martin Jambor  <mjambor@suse.cz>
17628
17629         PR ipa/62015
17630         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
17631         pass-trough jump functions correctly.
17632
17633 2014-09-03  Martin Jambor  <mjambor@suse.cz>
17634
17635         PR ipa/61986
17636         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
17637         created replacements in ascending order of offsets.
17638         (known_aggs_to_agg_replacement_list): Likewise.
17639
17640 2014-09-03  Martin Liska  <mliska@suse.cz>
17641
17642         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
17643         is set to set uninitialized value for vnresult.
17644
17645 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17646
17647         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
17648         for TARGET_MUST_PASS_IN_STACK.
17649
17650 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17651
17652         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
17653         for TARGET_ARG_PARTIAL_BYTES.
17654
17655 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17656
17657         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
17658         instructions for varargs implementation.
17659         (nds32_expand_epilogue): Emit stack adjustment instructions for
17660         varargs implementation.
17661
17662 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17663
17664         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
17665         optimization detection.
17666
17667 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17668
17669         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
17670         arguments.
17671         (nds32_function_arg_advance): Deal with nameless arguments.
17672         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
17673         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
17674         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
17675
17676 2014-09-03  Richard Biener  <rguenther@suse.de>
17677
17678         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
17679         (struct bb_bitmap_sets): Remove deferred member.
17680         (BB_DEFERRED): Remove.
17681         (defer_or_phi_translate_block): Remove.
17682         (compute_antic_aux): Remove deferring of blocks, assert
17683         proper iteration order.
17684         (compute_antic): Do not set BB_DEFERRED.
17685         (eliminate): Allocate el_avail of proper size initially.
17686
17687 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17688
17689         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
17690         according to the value of crtl->args.pretend_args_size.
17691
17692 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17693
17694         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
17695         varargs information.
17696
17697 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17698
17699         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
17700         implementation for TARGET_SETUP_INCOMING_VARARGS.
17701         (nds32_strict_argument_naming): Refine comment.
17702         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
17703         Define for future implementation.
17704
17705 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
17706
17707         * config/i386/adxintrin.h (_subborrow_u32): New.
17708         (_addcarry_u32): Ditto.
17709         (_subborrow_u64): Ditto.
17710         (_addcarry_u64): Ditto.
17711         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
17712         IX86_BUILTIN_SBB64.
17713         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
17714         __builtin_ia32_sbb_u64
17715
17716 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17717
17718         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
17719         GPR-specific stuff.
17720         (nds32_function_arg_advance): Likewise.
17721         (nds32_init_cumulative_args): Likewise.
17722         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
17723         (NDS32_FIRST_GPR_REGNUM): Define.
17724         (NDS32_LAST_GPR_REGNUM): Define.
17725         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
17726         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
17727         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
17728         (machine_function): Use GRP-specific stuff.
17729
17730 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17731
17732         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
17733         (nds32_expand_epilogue): Likewise.
17734         (nds32_expand_prologue_v3push): Likewise.
17735         (nds32_expand_epilogue_v3pop): Likewise.
17736
17737 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17738
17739         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
17740         v3push/v3pop for variadic function.
17741         * config/nds32/nds32.md (prologue, epilogue): Likewise.
17742
17743 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17744
17745         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
17746         Check rtx for varargs implementation.
17747         (nds32_output_stack_pop): Likewise.
17748         * config/nds32/nds32-protos.h: Have a rtx argument for
17749         nds32_output_stack_push and nds32_output_stack_pop.
17750         * config/nds32/nds32.md: Likewise.
17751
17752 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17753
17754         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
17755         to check if FUNC is an interrupt service routine.
17756         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
17757
17758 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17759
17760         * config/nds32/nds32.h (machine_function): Add some fields for variadic
17761         arguments implementation.
17762
17763 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17764
17765         * config/nds32/nds32-predicates.c
17766         (nds32_valid_stack_push_pop): Rename to ...
17767         (nds32_valid_stack_push_pop_p): ... this.
17768         * config/nds32/nds32-protos.h: Likewise.
17769         * config/nds32/predicates.md: Likewise.
17770
17771 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17772
17773         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
17774         (nds32_emit_stack_v3push): ... this.
17775         (nds32_gen_stack_v3pop): Rename to ...
17776         (nds32_emit_stack_v3pop): ... this and consider CFA restore
17777         information.
17778
17779 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17780
17781         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
17782         (nds32_emit_stack_push_multiple): ... this.
17783         (nds32_gen_stack_pop_multiple): Rename to ...
17784         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
17785         information.
17786
17787 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17788
17789         PR target/61078
17790         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
17791         and add a second splitter to handle the remaining cases.
17792
17793 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
17794
17795         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
17796
17797 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
17798
17799         * cfgexpand.c (label_rtx_for_bb): Change type to
17800         hash_map<basic_block, rtx_code_label *> *.
17801         (expand_gimple_basic_block): Adjust.
17802         (pass_expand::execute): Likewise.
17803
17804 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
17805
17806         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
17807         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
17808         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
17809         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
17810         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
17811         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
17812         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
17813         of rtx.
17814
17815 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
17816
17817         * alloc-pool.c: Include coretypes.h.
17818         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
17819         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
17820         hash_set instead of htab.
17821         * ggc-page.c (in_gc): New variable.
17822         (ggc_free): Do nothing if a collection is taking place.
17823         (ggc_collect): Set in_gc appropriately.
17824         * ggc.h (gt_ggc_mx(const char *)): New function.
17825         (gt_pch_nx(const char *)): Likewise.
17826         (gt_ggc_mx(int)): Likewise.
17827         (gt_pch_nx(int)): Likewise.
17828         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
17829         (hash_map::hash_entry::pch_nx): Likewise.
17830         (hash_map::hash_entry::pch_nx_helper): Likewise.
17831 (hash_map::hash_map): Adjust.
17832 (hash_map::create_ggc): New function.
17833 (gt_ggc_mx): Likewise.
17834 (gt_pch_nx): Likewise.
17835         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
17836 (default_hashset_traits::pch_nx): Likewise.
17837 (hash_set::hash_entry::ggc_mx): Likewise.
17838 (hash_set::hash_entry::pch_nx): Likewise.
17839 (hash_set::hash_entry::pch_nx_helper): Likewise.
17840 (hash_set::hash_set): Adjust.
17841 (hash_set::create_ggc): New function.
17842 (hash_set::elements): Likewise.
17843 (gt_ggc_mx): Likewise.
17844 (gt_pch_nx): Likewise.
17845         * hash-table.h (hash_table::hash_table): Adjust.
17846 (hash_table::m_ggc): New member.
17847         (hash_table::~hash_table): Adjust.
17848         (hash_table::expand): Likewise.
17849         (hash_table::empty): Likewise.
17850 (gt_ggc_mx): New function.
17851         (hashtab_entry_note_pointers): Likewise.
17852 (gt_pch_nx): Likewise.
17853
17854 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17855
17856         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
17857         built-in definition.
17858         (XVCVUXDDP_SCALE): Likewise.
17859         (XVCVDPSXDS_SCALE): Likewise.
17860         (XVCVDPUXDS_SCALE): Likewise.
17861         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
17862         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
17863         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
17864         VSX_BUILTIN_XVCVDPUXDS_SCALE.
17865         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
17866         prototype.
17867         * config/rs6000/rs6000.c (real.h): New include.
17868         (rs6000_scale_v2df): New function.
17869         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
17870         (UNSPEC_VSX_XVCVUXDDP): Likewise.
17871         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
17872         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
17873         (vsx_xvcvsxddp_scale): New define_expand.
17874         (vsx_xvcvsxddp): New define_insn.
17875         (vsx_xvcvuxddp_scale): New define_expand.
17876         (vsx_xvcvuxddp): New define_insn.
17877         (vsx_xvcvdpsxds_scale): New define_expand.
17878         (vsx_xvcvdpsxds): New define_insn.
17879         (vsx_xvcvdpuxds_scale): New define_expand.
17880         (vsx_xvcvdpuxds): New define_insn.
17881         * doc/extend.texi (vec_ctf): Add new prototypes.
17882         (vec_cts): Likewise.
17883         (vec_ctu): Likewise.
17884         (vec_splat): Likewise.
17885         (vec_div): Likewise.
17886         (vec_mul): Likewise.
17887
17888 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17889
17890         PR target/62275
17891         * config/arm/neon.md
17892         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
17893         <v_cmp_result>): New pattern.
17894         * config/arm/iterators.md (NEON_VCVT): New int iterator.
17895         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
17896         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
17897         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
17898         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
17899         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
17900
17901 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17902
17903         PR target/62275
17904         * config/arm/iterators.md (FIXUORS): New code iterator.
17905         (VCVT): New int iterator.
17906         (su_optab): New code attribute.
17907         (su): Likewise.
17908         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
17909
17910 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17911
17912         * config/aarch64/predicates.md (aarch64_comparison_operation):
17913         New special predicate.
17914         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
17915         aarch64_comparison_operation instead of matching an operator.
17916         Update operand numbers.
17917         (csinc3<mode>_insn): Likewise.
17918         (*csinv3<mode>_insn): Likewise.
17919         (*csneg3<mode>_insn): Likewise.
17920         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
17921         * config/aarch64/aarch64.c (aarch64_get_condition_code):
17922         Return -1 instead of aborting on invalid condition codes.
17923         (aarch64_print_operand): Update aarch64_get_condition_code callsites
17924         to assert that the returned condition code is valid.
17925         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
17926
17927 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
17928
17929         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
17930         tree.def, and gimple.def
17931
17932 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
17933             Balaji V. Iyer  <balaji.v.iyer@intel.com>
17934             Igor Zamyatin  <igor.zamyatin@intel.com>
17935
17936         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
17937         (__cilkrts_cilk_for_64): Likewise.
17938         * cilk-common.c (declare_cilk_for_builtin): New function.
17939         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
17940         __cilkrts_cilk_for_64 bultins.
17941         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
17942         CILK_TI_F_LOOP_64.
17943         (cilk_for_32_fndecl): New define.
17944         (cilk_for_64_fndecl): Likewise.
17945         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
17946         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
17947         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
17948         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
17949         GF_OMP_FOR_COMBINED_INTO.
17950         * gimplify.c (gimplify_scan_omp_clauses): Added
17951         OMP_CLAUSE__CILK_FOR_COUNT_ case.
17952         (gimplify_adjust_omp_clauses): Ditto.
17953         (gimplify_omp_for): Added CILK_FOR case.
17954         (gimplify_expr): Ditto.
17955         * omp-low.c: Include cilk.h.
17956         (extract_omp_for_data): Set appropriate kind for
17957         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
17958         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
17959         (create_omp_child_function_name): Added second argument to handle
17960         cilk_for case.
17961         (cilk_for_check_loop_diff_type): New function.
17962         (expand_cilk_for_call): Likewise.
17963         (expand_cilk_for): Likewise.
17964         (create_omp_child_function): Set cilk_for_count; handle the cases when
17965         it is true; call create_omp_child_function_name with second argument.
17966         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
17967         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
17968         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
17969         * tree-nested.c (convert_nonlocal_omp_clauses): Added
17970         OMP_CLAUSE__CILK_FOR_COUNT_ case.
17971         (convert_local_omp_clauses): Ditto.
17972         * tree-pretty-print.c (dump_omp_clause): Added
17973         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
17974         (dump_generic_node): Added CILK_FOR case.
17975         * tree.c (omp_clause_num_ops): New element
17976         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
17977         (omp_clause_code_name): New element _Cilk_for_count_.
17978         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
17979         * tree.def: Add tree code for CILK_FOR.
17980
17981 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
17982
17983         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
17984         (ppc403-compare): Add "exts with dot" case.
17985         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
17986         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
17987         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
17988         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
17989         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
17990         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
17991         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
17992         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
17993         cell-cmp-microcoded): Similarly.
17994         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
17995         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
17996         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
17997         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
17998         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
17999         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
18000         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
18001         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
18002         (power6-compare): Add "exts with dot" case.
18003         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
18004         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
18005         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
18006
18007         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
18008         if avoiding Cell microcode.
18009         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
18010         (is_cracked_insn): Ditto.
18011         (insn_must_be_first_in_group): Ditto.
18012         * config/rs6000/rs6000.md (dot): Adjust comment.
18013         (cell_micro): Handle exts+dot.
18014         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
18015         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
18016         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
18017         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
18018         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
18019         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
18020         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
18021
18022 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18023
18024         * config/rs6000/rs6000.md (QHSI): Delete.
18025         (EXTQI, EXTHI, EXTSI): New mode iterators.
18026         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
18027         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
18028         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
18029         9 anonymous instructions, and 8 splitters): Delete.
18030         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
18031         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
18032         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
18033         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
18034         *zero_extendsi<mode>2_dot2): New.
18035
18036 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18037
18038         * config/rs6000/rs6000.md (any_extend): New code iterator.
18039         (u, su): New code attributes.
18040         (dmode, DMODE): New mode attributes.
18041         (<su>mul<mode>3_highpart): New.
18042         (*<su>mul<mode>3_highpart): New.
18043         (<su>mulsi3_highpart_le): New.
18044         (<su>muldi3_highpart_le): New.
18045         (<su>mulsi3_highpart_64): New.
18046         (<u>mul<mode><dmode>3): New.
18047         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
18048         splitters): Delete.
18049         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
18050         splitters): Delete.
18051
18052 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
18053
18054         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
18055         *mulsi3_internal2, and two splitters): Delete.
18056         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
18057         Delete.
18058         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
18059
18060 2014-09-02  Richard Biener  <rguenther@suse.de>
18061
18062         PR tree-optimization/62695
18063         * tree-ssa-structalias.c (find_func_clobbers): Add missing
18064         vector truncate.
18065
18066 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
18067
18068         PR target/62312
18069         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
18070
18071 2014-09-01  Andi Kleen  <ak@linux.intel.com>
18072
18073         * file-find.c (add_prefix_begin): Add.
18074         (do_add_prefix): Rename from add_prefix with first argument.
18075         (add_prefix): Add new wrapper.
18076         * file-find.h (add_prefix_begin): Add.
18077         * gcc-ar.c (main): Support -B option.
18078
18079 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
18080
18081         * genemit.c: Include dumpfile.h.
18082         (gen_split): Print name of splitter function to dump file.
18083
18084 2014-09-01  Richard Biener  <rguenther@suse.de>
18085
18086         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
18087         Use stack auto_vecs for constraint expressions.
18088         (find_func_aliases_for_call): Likewise.
18089         (find_func_aliases): Likewise.
18090         (find_func_clobbers): Likewise.
18091
18092 2014-09-01  Richard Biener  <rguenther@suse.de>
18093
18094         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
18095         operands vector in most cases.  Remove redundant code.
18096
18097 2014-09-01  Olivier Hainque  <hainque@adacore.com>
18098
18099         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
18100         $WIND_BASE instead of designating a harcoded arbitrary home dir.
18101         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
18102
18103 2014-09-01  Richard Biener  <rguenther@suse.de>
18104
18105         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
18106         copy_reference_ops_from_call, vn_nary_op_compute_hash,
18107         vn_reference_compute_hash, vn_reference_insert): Remove.
18108         (vn_reference_lookup_call): New function.
18109         * tree-ssa-sccvn.c (vn_reference_compute_hash,
18110         copy_reference_ops_from_ref, copy_reference_ops_from_call,
18111         vn_reference_insert, vn_nary_op_compute_hash): Make static.
18112         (create_reference_ops_from_call): Remove.
18113         (vn_reference_lookup_3): Properly update shared_lookup_references.
18114         (vn_reference_lookup_pieces): Assert that we updated
18115         shared_lookup_references properly.
18116         (vn_reference_lookup): Likewise.
18117         (vn_reference_lookup_call): New function.
18118         (visit_reference_op_call): Use it.  Avoid re-building the
18119         reference ops.
18120         (visit_reference_op_load): Remove redundant lookup.
18121         (visit_reference_op_store): Perform special tail-merging work
18122         only when possibly doing tail-merging.
18123         (visit_use): Likewise.
18124         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
18125
18126 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
18127
18128         PR target/62025
18129         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
18130         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
18131         (find_inc): Revert 2014-08-13 change.
18132
18133 2014-09-01  Marek Polacek  <polacek@redhat.com>
18134
18135         PR middle-end/61903
18136         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
18137         Change the type of V to unsigned HOST_WIDE_INT.
18138
18139 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18140
18141         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
18142         the size of byte markers.
18143         (do_shift_rotate): Fix confusion between host, target and marker byte
18144         size.
18145         (verify_symbolic_number_p): Likewise.
18146         (find_bswap_or_nop_1): Likewise.
18147         (find_bswap_or_nop): Likewise.
18148
18149 2014-09-01  Olivier Hainque  <hainque@adacore.com>
18150
18151         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
18152         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
18153
18154 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
18155
18156         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
18157         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
18158         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
18159
18160 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
18161
18162         PR sanitizer/61897
18163         PR sanitizer/62140
18164         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
18165         (build_check_stmt): Likewise.
18166         (instrument_strlen_call): Likewise.
18167         (asan_expand_check_ifn): Likewise and fix types.
18168         (maybe_cast_to_ptrmode): New function.
18169
18170 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18171
18172         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
18173
18174 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
18175
18176         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
18177
18178 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
18179
18180         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
18181         prefix to function labels when generating fast indirect calls.
18182
18183 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
18184
18185         PR bootstrap/62304
18186
18187         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
18188         param back from rtx_insn * to rtx.  Rename param from "label" to
18189         "label_or_return", reintroducing "label" as an rtx_insn * after
18190         we've ensured it's not a RETURN.
18191         (first_active_target_insn): Likewise for return type and param;
18192         add a checked cast to rtx_insn * once we've ensured "insn" is not
18193         a RETURN.
18194         (steal_delay_list_from_target): Convert param "pnew_thread" back
18195         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
18196         with JUMP_LABEL.
18197         (own_thread_p): Convert param "thread" back from an rtx_insn * to
18198         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
18199         cast once we've established we're not dealing with a RETURN,
18200         renaming subsequent uses of "thread" to "thread_insn".
18201         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
18202         to JUMP_LABEL.
18203         (follow_jumps): Convert return type and param "label" from
18204         rtx_insn * back to rtx.  Move initialization of "value" to after
18205         the handling for ANY_RETURN_P, adding a checked cast there to
18206         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
18207         rename to "this_label_or_return", reintroducing "this_label" as
18208         an rtx_insn * once we've handled the case where it could be an
18209         ANY_RETURN_P.
18210         (fill_slots_from_thread): Rename param "thread" to
18211         "thread_or_return", converting from an rtx_insn * back to an rtx.
18212         Reintroduce name "thread" as an rtx_insn * local with a checked
18213         cast once we've handled the case of it being an ANY_RETURN_P.
18214         Convert local "new_thread" from an rtx_insn * back to an rtx.
18215         Add a checked cast when assigning to "trial" from "new_thread".
18216         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
18217         checked cast to rtx_insn * from "new_thread" when invoking
18218         get_label_before.
18219         (fill_eager_delay_slots): Convert locals "target_label",
18220         "insn_at_target" from rtx_insn * back to rtx.
18221         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
18222         (relax_delay_slots): Convert locals "trial", "target_label" from
18223         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
18224         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
18225         invoking update_block.
18226         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
18227         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
18228
18229         * resource.h (mark_target_live_regs): Undo erroneous conversion
18230         of second param of r214693, converting it back from rtx_insn * to
18231         rtx, since it could be a RETURN.
18232
18233         * resource.c (find_dead_or_set_registers): Similarly, convert
18234         param "jump_target" back from an rtx_insn ** to an rtx *, as we
18235         could be writing back a RETURN.  Rename local rtx_insn * "next" to
18236         "next_insn", and introduce "lab_or_return" as a local rtx,
18237         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
18238         (mark_target_live_regs): Undo erroneous conversion
18239         of second param of r214693, converting it back from rtx_insn * to
18240         rtx, since it could be a RETURN.  Rename it from "target" to
18241         "target_maybe_return", reintroducing the name "target" as a local
18242         rtx_insn * with a checked cast, after we've handled the case of
18243         ANY_RETURN_P.
18244
18245 2014-08-29  DJ Delorie  <dj@redhat.com>
18246
18247         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
18248         pointer size up to a power of two.
18249         * defaults.h (DWARF2_ADDR_SIZE): Round up.
18250         (POINTER_SIZE_UNITS): New, rounded up value.
18251         * dwarf2asm.c (size_of_encoded_value): Use it.
18252         (dw2_output_indirect_constant_1): Likewise.
18253         * expmed.c (init_expmed_one_conv): We now know the sizes of
18254         partial int modes.
18255         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
18256         * optabs.c (expand_float): Use precision, not size.
18257         (expand_fix): Likewise.
18258         * simplify-rtx (simplify_unary_operation_1): Likewise.
18259         * tree-dfa.c (get_ref_base_and_extent): Likewise.
18260         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
18261         (default_assemble_integer) Likewise.
18262         (dump_tm_clone_pairs): Likewise.
18263         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
18264         * var-tracking.c (adjust_mems): Allow partial-int modes also.
18265         (prepare_call_arguments): Likewise.
18266         * stor-layout.c (finalize_type_size): Preserve precision.
18267         (layout_type): Use precision, not size.
18268
18269         * expr.c (convert_move): If the target has an explicit converter,
18270         use it.
18271
18272 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
18273
18274         * gdbinit.in: Skip various inline functions in rtl.h when
18275         stepping.
18276
18277 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
18278
18279         PR bootstrap/62301
18280         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
18281
18282 2014-08-29  Richard Biener  <rguenther@suse.de>
18283
18284         PR tree-optimization/62291
18285         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
18286         exactly the vector size needed and use quick_push.
18287         (phi_translate_1): Adjust comment.
18288         (valid_in_sets): Remove block argument and remove pointless
18289         checking of NAMEs.
18290         (dependent_clean): Adjust for removal of block argument.
18291         (clean): Likewise.
18292         (compute_antic_aux): Likewise.
18293         (compute_partial_antic_aux): Likewise.
18294
18295 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18296             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18297             Anna Tikhonova  <anna.tikhonova@intel.com>
18298             Ilya Tocar  <ilya.tocar@intel.com>
18299             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18300             Ilya Verbin  <ilya.verbin@intel.com>
18301             Kirill Yukhin  <kirill.yukhin@intel.com>
18302             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18303
18304         * config/i386/sse.md
18305         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
18306         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
18307         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
18308         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
18309
18310 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18311             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18312             Anna Tikhonova  <anna.tikhonova@intel.com>
18313             Ilya Tocar  <ilya.tocar@intel.com>
18314             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18315             Ilya Verbin  <ilya.verbin@intel.com>
18316             Kirill Yukhin  <kirill.yukhin@intel.com>
18317             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18318
18319         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
18320         * config/i386/sse.md
18321         (define_mode_iterator VI4_128_8_256): New.
18322         (define_mode_iterator VI2_128_4_256): Ditto.
18323         (define_mode_iterator PMOV_DST_MODE): Rename into
18324         (define_mode_iterator PMOV_DST_MODE_1): this.
18325         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
18326         Use PMOV_DST_MODE_1 mode iterator.
18327         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
18328         Ditto.
18329         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
18330         Ditto.
18331         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
18332         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
18333         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
18334         (define_mode_iterator PMOV_DST_MODE_2): New.
18335         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
18336         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
18337         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
18338         Ditto.
18339         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
18340         (define_mode_attr pmov_dst_3): Ditto.
18341         (define_mode_attr pmov_dst_zeroed_3): Ditto.
18342         (define_mode_attr pmov_suff_3): Ditto.
18343         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
18344         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
18345         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
18346         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
18347         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
18348         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
18349         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
18350         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
18351         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
18352         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
18353         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
18354         (define_mode_attr pmov_dst_4): Ditto.
18355         (define_mode_attr pmov_dst_zeroed_4): Ditto.
18356         (define_mode_attr pmov_suff_4): Ditto.
18357         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
18358         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
18359         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
18360         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
18361         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
18362         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
18363         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
18364         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
18365         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
18366         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
18367         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
18368
18369 2014-08-29  Richard Biener  <rguenther@suse.de>
18370
18371         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
18372         NON_LVALUE_EXPR in gimple.
18373
18374 2014-08-29  Richard Biener  <rguenther@suse.de>
18375
18376         PR middle-end/62292
18377         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
18378         from previous refactoring.
18379         (gimple_fold_builtin_strncpy): Likewise.
18380
18381 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
18382
18383         PR bootstrap/62300
18384         * function.c (assign_parm_setup_reg): Remove erroneous checked
18385         cast to rtx_insn * on result of gen_extend_insn in favor of
18386         introducing a new local rtx "pat".
18387
18388 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18389
18390         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
18391         to silence warning.
18392         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
18393
18394 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18395
18396         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
18397         (next_insn): Likewise.
18398         * emit-rtl.c (next_insn): Likewise.
18399         (previous_insn): Likewise.
18400         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
18401         "insn" and "next" from rtx to rtx_insn *.
18402         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
18403         "insn", "insn1", "vliw_start",  "prologue_end_note",
18404         "last_insn_in_packet".
18405
18406 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18407
18408         * shrink-wrap.h (active_insn_between): Strengthen both params from
18409         rtx to rtx_insn *.
18410         * function.c (active_insn_between): Likewise.
18411
18412 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18413
18414         * genattr.c (main): When writing out insn-attr.h, strengthen param
18415         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
18416         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
18417         writing out the definition of dfa_clear_single_insn_cache to the
18418         generated insn-automata.c
18419
18420 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18421
18422         * resource.h (clear_hashed_info_for_insn): Strengthen param from
18423         rtx to rtx_insn *.
18424         (incr_ticks_for_insn): Likewise.
18425         (init_resource_info): Likewise.
18426
18427         * resource.c (init_resource_info): Likewise.
18428         (clear_hashed_info_for_insn): Likewise.
18429         (incr_ticks_for_insn): Likewise.
18430
18431         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
18432         rtx to rtx_insn *.
18433         (steal_delay_list_from_target): Use methods of "seq".
18434         (try_merge_delay_insns): Use methods of "merged_insns".
18435         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
18436         (reorg_redirect_jump): Likewise for param "jump".
18437
18438 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18439
18440         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
18441         rtx to rtx_insn *.
18442         * config/s390/s390.c (s390_split_branches): Eliminate top-level
18443         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
18444         "set_insn".
18445         (s390_mainpool_finish): In three places, split out a local rtx
18446         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
18447         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
18448         and split another local rtx "insn" out into rtx "pat" and
18449         rtx_insn * "insn".
18450         * config/sh/sh.c (output_branchy_insn): Rather than working
18451         directly on operands[9], introduce local rtx_code_label *
18452         variables named "lab" in two places, working on them, and then
18453         assigning them to operands[9], so that the intervening operations
18454         are known by the type system to be on insns.
18455
18456 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18457
18458         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
18459         const rtx_insn *.
18460
18461         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
18462         in invocation of INSN_HAS_LOCATION.
18463
18464 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18465
18466         * config/rs6000/altivec.h (vec_xl): New #define.
18467         (vec_xst): Likewise.
18468         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
18469         (XXSPLTD_V2DI): Likewise.
18470         (DIV_V2DI): Likewise.
18471         (UDIV_V2DI): Likewise.
18472         (MUL_V2DI): Likewise.
18473         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18474         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
18475         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
18476         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
18477         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
18478         (UNSPEC_VSX_DIVSD): Likewise.
18479         (UNSPEC_VSX_DIVUD): Likewise.
18480         (UNSPEC_VSX_MULSD): Likewise.
18481         (vsx_mul_v2di): New insn-and-split.
18482         (vsx_div_v2di): Likewise.
18483         (vsx_udiv_v2di): Likewise.
18484         (vsx_xxspltd_<mode>): New insn.
18485
18486 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18487
18488         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
18489         NEXT_INSN.
18490         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
18491         (NEXT_INSN): Likewise.
18492         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
18493         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
18494         const rtx_insn *.
18495         (no_labels_between_p): Likewise for both params.
18496
18497         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
18498         cast when using NEXT_INSN on operands[2].
18499         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
18500         "insn" from rtx to rtx_insn *, adding a checked cast.
18501         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
18502         rtx_insn *.
18503         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
18504         for third param.
18505         (arc_text_label): Likewise for param "insn".
18506         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
18507         "insn".
18508         (arc_ccfsm_record_condition): Likewise for param "jump".
18509         (arc_text_label): Likewise for local "label".
18510         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
18511         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
18512         a method for typesafety.  Add a checked cast.
18513         * config/arc/constraints.md (Clb): Add a checked cast when getting
18514         the CODE_LABEL from a LABEL_REF.
18515         * config/arm/arm.c (require_pic_register): Strengthen locals
18516         "seq", "insn" from rtx to rtx_insn *.
18517         (create_fix_barrier): Likewise for locals "selected", "next".
18518         (thumb1_reorg): Likewise for locals "prev", "insn".
18519         (arm_expand_prologue): Likewise for local "last".
18520         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
18521         operands[0].
18522         (thumb2_output_casesi): Likewise for operands[2].
18523         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
18524         strengthen local "insn" from rtx to rtx_insn *.
18525         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
18526         type and param "insn".
18527         (find_prev_insn_start): Likewise.
18528         (hwloop_optimize): Likewise for locals "insn", "last_insn",
18529         "prev".
18530         (gen_one_bundle): Likewise for loal "t".
18531         (find_load): Likewise for param "insn".
18532         (workaround_speculation): Likewise for locals "insn", "next",
18533         "target", "next_tgt".
18534         * config/c6x/c6x.c (assign_reservations): Likewise for both params
18535         and for locals "insn", "within", "last".
18536         (count_unit_reqs): Likewise for params "head", "tail" and local
18537         "insn".
18538         (try_rename_operands): Likewise for params "head", "tail".
18539         (reshuffle_units): Likewise for locals "head", "tail", "insn".
18540         (struct c6x_sched_context): Likewise for fields
18541         "last_scheduled_insn", "last_scheduled_iter0".
18542         (init_sched_state): Replace NULL_RTX with NULL.
18543         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
18544         to rtx_insn *.
18545         (undo_split_delayed_nonbranch): Likewise for param and for local
18546         "prev".
18547         (conditionalize_after_sched): Likewise for local "insn".
18548         (bb_earliest_end_cycle): Likewise.
18549         (filter_insns_above): Likewise for locals "insn", "next".
18550         (hwloop_optimize): Remove redundant checked cast.
18551         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
18552         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
18553         NULL_RTX with NULL.
18554         (cris_simple_epilogue): Likewise.
18555         (cris_expand_prologue): Likewise.
18556         (cris_expand_epilogue): Likewise.
18557         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
18558         local "insn" from rtx to rtx_insn *.
18559         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
18560         (struct frv_packet_group): Likewise for the elements within array
18561         fields "insns", "sorted", and for field "nop".
18562         (frv_packet): Likewise for the elements within array field
18563         "insns".
18564         (frv_add_insn_to_packet): Likewise for param "insn".
18565         (frv_insert_nop_in_packet): Likewise for param "insn" and local
18566         "last".
18567         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
18568         (frv_sort_insn_group_1): Likewise for local "insn".
18569         (frv_optimize_membar_local): Likewise.
18570         (frv_align_label): Likewise for locals "x", "last", "barrier",
18571         "label".
18572         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
18573         local.
18574         (ia64_sched_init): Likewise for local "insn".
18575         (scheduled_good_insn): Likewise for param "last".
18576         (struct _ia64_sched_context): Likewise for field
18577         "last_scheduled_insn".
18578         (ia64_init_sched_context): Replace NULL_RTX with NULL.
18579         (struct bundle_state): Likewise for field "insn".
18580         (issue_nops_and_insn): Likewise for param "insn".
18581         (get_next_important_insn): Likewise for return type and both
18582         params.
18583         (ia64_add_bundle_selector_before): Likewise for param "insn".
18584         (bundling): Likewise for params "prev_head_insn", "tail" and
18585         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
18586         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
18587         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
18588         Strengthen final param from rtx to rtx_insn *.
18589         (iq2000_move_1word): Likewise for second param.
18590         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
18591         param "cur_insn" and local "next_insn".
18592         (iq2000_move_1word): Likewise for param "insn".
18593         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
18594         casts when using NEXT_INSN on operands[1].
18595         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
18596         "insn" from rtx to rtx_insn *.
18597         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
18598         "x", introducing local rtx_insn * "insn" for when working with the
18599         CODE_LABEL of the LABEL_REF.
18600         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
18601         rtx_insn *.
18602         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
18603         param.
18604         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
18605         type.
18606         (conditionalize_block): Likewise for return type and param.
18607         (mcore_is_dead): Likewise for param "first" and local "insn".
18608         (emit_new_cond_insn): Likewise for return type.
18609         (conditionalize_block): Likewise for return type, param, and
18610         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
18611         "newinsn".
18612         (conditionalize_optimization): Likewise for local "insn".
18613         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
18614         using NEXT_INSN.
18615         * config/microblaze/microblaze.md: Add checked casts when using
18616         NEXT_INSN.
18617         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
18618         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
18619         and rtx_insn * "insn".
18620         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
18621         checked cast when using NEXT_INSN on operands[2].
18622         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
18623         local "insn" from rtx to rtx_insn *.
18624         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
18625         Likewise.
18626         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
18627         Add a checked cast when using NEXT_INSN on operands[1].
18628         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
18629         rtx to rtx_insn *.
18630         (pa_output_cbranch): Likewise for final param.
18631         (pa_output_lbranch): Likewise for second param.
18632         (pa_output_bb): Likewise for third param.
18633         (pa_output_bvb): Likewise.
18634         (pa_output_dbra): Likewise for second param.
18635         (pa_output_movb): Likewise.
18636         (pa_output_parallel_movb): Likewise.
18637         (pa_output_parallel_addb): Likewise.
18638         (pa_output_millicode_call): Likewise for first param.
18639         (pa_output_mul_insn): Likewise for second param.
18640         (pa_output_div_insn): Likewise for third param.
18641         (pa_output_mod_insn): Likewise for second param.
18642         (pa_jump_in_call_delay): Likewise for param.
18643         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
18644         (pa_output_div_insn): Likewise.
18645         (pa_output_mod_insn): Likewise.
18646         (pa_output_cbranch): Likewise.
18647         (pa_output_lbranch): Likewise.
18648         (pa_output_bb): Likewise.
18649         (pa_output_bvb): Likewise.
18650         (pa_output_dbra): Likewise.
18651         (pa_output_movb): Likewise.
18652         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
18653         to simplify and for typesafety.
18654         (pa_output_call): Use method of rtx_sequence *.
18655         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
18656         (pa_jump_in_call_delay): Likewise.
18657         (pa_output_parallel_movb): Likewise.
18658         (pa_output_parallel_addb): Likewise.
18659         (pa_following_call): Likewise.
18660         (pa_combine_instructions): Likewise for locals "anchor",
18661         "floater".
18662         (pa_can_combine_p): Likewise for params "anchor", "floater" and
18663         locals "start", "end".
18664         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
18665         param "insn" and local "local_insn".
18666         (picochip_final_prescan_insn): Likewise for local "local_insn".
18667         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
18668         local "insn".
18669         (uses_TOC): Likewise.
18670         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
18671         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
18672         splitting out to more tightly-scoped locals, 3 as rtx and one as
18673         rtx_insn *.
18674         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
18675         to rtx_insn *.
18676         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
18677         where needed.
18678         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
18679         to rtx_insn *.
18680         (fixup_addr_diff_vecs): Likewise.
18681         (reg_unused_after): Likewise for param 2.
18682         (sh_can_redirect_branch): Likewise for both params.
18683         (check_use_sfunc_addr): Likewise for param 1.
18684         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
18685         (find_barrier): Likewise for local "last_got".
18686         (gen_block_redirect): Likewise for return type, param "jump" and
18687         locals "prev", "scan", "next", "insn".
18688         (struct far_branch): Likewise for fields "near_label",
18689         "insert_place", "far_label".
18690         (gen_far_branch): Likewise for local "jump".
18691         (fixup_addr_diff_vecs): Likewise for param "first" and locals
18692         "insn", "prev".
18693         (barrier_align): Likewise for param and for locals "prev", "x".
18694         Introduce local rtx_sequence * "prev_seq" and use insn method for
18695         typesafety and clarity.
18696         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
18697         (get_dest_uid): Likewise for local "dest".
18698         (split_branches): Likewise for locals "next", "beyond", "label",
18699         "block", "far_label".  Add checked casts when assigning to
18700         bp->far_label and "far_label".
18701         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
18702         (sequence_insn_p): Likewise.
18703         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
18704         more loop-scoped rtx "insn" when walking LABEL_REFS.
18705         (sh_can_redirect_branch): Strengthen both params from rtx to
18706         rtx_insn *.
18707         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
18708         new local rtx_sequence * "seq" via a dyn_cast, and use a method
18709         for clarity and typesafety.
18710         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
18711         "insn" from rtx to rtx_insn *.
18712         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
18713         when using NEXT_INSN on the CODE_LABEL in operands[2].
18714         (define_insn "casesi_worker_2"): Likewise.
18715         (define_insn "casesi_shift_media"): Likewise.
18716         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
18717         operands[3].
18718         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
18719         Strengthen field "insn" from rtx to rtx_insn *.
18720         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
18721         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
18722         param "start_insn" and local "start_insn".
18723         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
18724         field "insn".
18725         (find_set_of_reg_bb): Likewise for param "insn".
18726         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
18727         (trace_reg_uses): Likewise for param "start_insn".
18728         (sh_treg_combine::cbranch_trace): Likewise for field
18729         "cbranch_insn".
18730         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
18731         param "insn".
18732         (sh_treg_combine::record_set_of_reg): Likewise for param
18733         "start_insn" and local "i".
18734         (sh_treg_combine::can_remove_cstore): Likewise for local
18735         "prev_insn".
18736         (sh_treg_combine::try_optimize_cbranch): Likewise for param
18737         "insn".
18738         (sh_treg_combine::execute): Likewise for local "i".
18739         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
18740         param.
18741         (sparc_check_64): Likewise for second param.
18742         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18743         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
18744         dyn_cast, using its insn method for typesafety and clarity.
18745         (empty_delay_slot): Strengthen param "insn" from rtx to
18746         rtx_insn *.
18747         (set_extends): Likewise.
18748         (sparc_check_64): Likewise.
18749         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
18750         for locals "seq", "last_insn".
18751         (combine_bnp): Likewise for param "insn".
18752         (xstormy16_reorg): Likewise for local "insn".
18753         * config/v850/v850.c (substitute_ep_register): Likewise for params
18754         "first_insn", "last_insn" and local "insn".
18755         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
18756         elements of "regs" array, and local "insn".
18757         * except.c (emit_note_eh_region_end): Likewise for param "insn".
18758         * final.c (final_sequence): Strengthen this global from rtx to
18759         rtx_sequence *.
18760         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
18761         rtx_insn *.
18762         (final_scan_insn): Update assignment to "final_sequence" to be
18763         from "seq", the cast version of "body", for type-safety.
18764         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
18765         "insns" from rtx to rtx_insn *.
18766         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
18767         * genattr.c (main): When writing out generated insn-attr.h,
18768         strengthen params 1 and 3 of eligible_for_delay,
18769         eligible_for_annul_true, eligible_for_annul_false from rtx to
18770         rtx_insn *.
18771         * genattrtab.c (write_eligible_delay): Likewise when writing out
18772         generated insn-attrtab.c; also local "insn" the generated
18773         functions.
18774         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
18775         to rtx_insn *.
18776         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
18777         "start_label" from rtx to rtx_insn *.
18778         * ira.c (decrease_live_ranges_number): Likewise for local "p".
18779         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
18780         "insns" and local "insn".
18781         (validate_equiv_mem): Likewise for param "start" and local "insn".
18782         (memref_used_between_p): Likewise for params "start", "end" and
18783         local "insn".
18784         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
18785         final param.
18786         * loop-doloop.c (doloop_optimize): Within region guarded by
18787         INSN_P (doloop_pat), introduce a new local rtx_insn *
18788         "doloop_insn" via a checked cast, and use it for typesafety,
18789         eventually writing the value back into doloop_pat.
18790         * output.h (final_sequence): Strengthen this global from rtx to
18791         rtx_sequence *.
18792         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
18793         reintroducing "insn" as an rtx_insn * via a checked cast.
18794         Strengthen param "attempt" and local "new_insn"from rtx to
18795         rtx_insn *.
18796         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
18797         to rtx_insn *.
18798         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
18799         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
18800         "p" in favor of more tightly-scoped replacements, sometimes rtx
18801         and sometimes rtx_insn *, as appropriate.
18802         (delete_output_reload): Eliminate top-level rtx "i1", splitting
18803         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
18804         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
18805         local "trial" from rtx to rtx_insn *.
18806         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
18807         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
18808         rtx_sequence * and use methods for clarity and typesafety.
18809         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
18810         rtx to rtx_insn *.  Strenghten local "li" from rtx to
18811         rtx_insn_list * and use its methods for clarity and typesafety.
18812         (steal_delay_list_from_target): Strengthen param "insn" from rtx
18813         to rtx_insn *.
18814         (steal_delay_list_from_fallthrough): Likewise.
18815         (try_merge_delay_insns): Likewise for param "thread" and locals
18816         "trial", "next_trial", "delay_insn".
18817         (redundant_insn): Likewise for param "target" and local "trial".
18818         (own_thread_p): Likewise for param "thread" and locals
18819         "active_insn", "insn".
18820         (get_label_before): Likewise for param "insn".
18821         (fill_simple_delay_slots): Likewise for local "new_label"; use
18822         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
18823         (label_before_next_insn): Strengthen return type and local "insn"
18824         from rtx to rtx_insn *.
18825         (relax_delay_slots): Likewise for locals "other", "tmp".
18826         (make_return_insns): Likewise for param "first" and locals "insn",
18827         "jump_insn", "prev".  Move declaration of "pat" to its assignment
18828         and strengthen from rtx to rtx_sequence *.  Use its methods for
18829         clarity and typesafety.
18830         * rtlanal.c (no_labels_between_p): Strengthen params from
18831         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
18832         rtx_insn *.
18833         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
18834         from const_rtx to const rtx_insn *.
18835         (reg_set_between_p): Rename param "from_insn" to
18836         "uncast_from_insn", and reintroduce "from_insn" as a
18837         const rtx_insn * via a checked cast.
18838         (modified_between_p): Likewise for param "start" as "uncast_start".
18839         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
18840         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
18841         "tmp", head" from rtx to rtx_insn *.
18842         (recompute_rev_top_order): Likewise for local "insn".
18843         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
18844         * store-motion.c (build_store_vectors): Likewise for local "insn".
18845         Strengthen local "st" from rtx to rtx_insn_list * and use methods
18846         for clarity and typesafety.
18847         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
18848         rtx to rtx_insn *.
18849         (computation_cost): Likewise for local "seq".
18850         (get_address_cost): Likewise.
18851
18852 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18853
18854         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
18855         const rtx_insn *.
18856         (label_is_jump_target_p): Likewise for second param.
18857
18858         * rtlanal.c (tablejump_p): Likewise for param "insn".
18859         (label_is_jump_target_p): Likewise for param "jump_insn".
18860
18861 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18862
18863         * rtl.h (find_first_parameter_load): Strengthen return type and
18864         both params from rtx to rtx_insn *.
18865         * rtlanal.c (find_first_parameter_load): Strengthen return type,
18866         both params and locals "before", "first_set" from rtx to
18867         rtx_insn *.  Remove now-redundant cast.
18868         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
18869
18870 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18871
18872         * rtl.h (find_last_value): Delete.
18873         * rtlanal.c (find_last_value): Delete.
18874
18875 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
18876
18877         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
18878         from rtx to rtx_insn *.
18879         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
18880         rtx "note" with new local rtx_insn * "new_head" when calculating
18881         head insn of new basic block.
18882         * combine.c (combine_split_insns): Strengthen return type and local
18883         "ret" from rtx to rtx_insn *.
18884         (likely_spilled_retval_p): Likewise for locals "use" and "p".
18885         (try_combine): Eliminate local "m_split", splitting into new
18886         locals "m_split_insn" and "m_split_pat".
18887         (find_split_point): Strengthen local "seq" from rtx into
18888         rtx_insn *.
18889         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
18890         locals "label", "branch".
18891         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
18892         for local "insn".
18893         (define_expand "umulsi3_highpart"): Likewise for local "insn".
18894         * dse.c (note_add_store_info): Likewise for fields "first",
18895         "current".
18896         (note_add_store): Likewise for local "insn".
18897         (emit_inc_dec_insn_before): Likewise for locals "insn",
18898         "new_insn", "cur".
18899         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
18900         (replace_read): Likewise for locals "insns", "this_insn".
18901         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
18902         (notice_eh_throw): Likewise for param "insn".
18903         (before_next_cfi_note): Likewise for return type, param, and local
18904         "prev".
18905         (connect_traces): Likewise for local "note".
18906         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
18907         (verify_rtl_sharing): Likewise.
18908         (unshare_all_rtl_in_chain): Likewise for param "insn".
18909         (get_first_nonnote_insn): Likewise for local "insn".
18910         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
18911         "seq" and use its methods to clarify things.
18912         (next_insn): Strengthen return type from rtx to rtx_insn *.
18913         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
18914         local rtx_insn * using a checked cast, dropping a checked cast
18915         made redundant by this change.  Use a cast to and method of
18916         rtx_sequence to clarify the code.
18917         (previous_insn): Rename param "insn" to "uncast_insn" and
18918         reintroduce "insn" as a local rtx_insn * using a checked cast,
18919         dropping a checked cast made redundant by this change.  Use a cast
18920         to and method of rtx_sequence to clarify the code.
18921         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
18922         reintroduce "insn" as a local rtx_insn * using a checked cast,
18923         dropping a checked cast made redundant by this change.
18924         (next_nonnote_insn_bb): Likewise.
18925         (prev_nonnote_insn): Likewise.
18926         (prev_nonnote_insn_bb): Likewise.
18927         (next_nondebug_insn): Likewise.
18928         (prev_nondebug_insn): Likewise.
18929         (next_nonnote_nondebug_insn): Likewise.
18930         (prev_nonnote_nondebug_insn): Likewise.
18931         (next_real_insn): Likewise.
18932         (prev_real_insn): Likewise.
18933         (next_active_insn): Likewise.
18934         (prev_active_insn): Likewise.
18935         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
18936         clarity.
18937         (prev_cc0_setter): Likewise.
18938         (try_split): Rename param "trial" to "uncast_trial" and
18939         reintroduce "insn" as a local rtx_insn * using a checked cast,
18940         dropping checked casts made redundant by this change.
18941         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
18942         rtx to rtx_insn *.
18943         (remove_insn): Rename param "insn" to "uncast_insn" and
18944         reintroduce "insn" as a local rtx_insn * using a checked cast.
18945         (emit_pattern_after_setloc): Likewise for param "after", as
18946         "uncast_after".
18947         (emit_pattern_after): Likewise.  Strengthen local "prev" from
18948         rtx to rtx_insn *.
18949         (emit_pattern_before_setloc): Rename param "before" to
18950         "uncast_before" and reintroduce "before" as a local rtx_insn *
18951         using a checked cast.  Strengthen locals "first", "last" from
18952         rtx to rtx_insn *.
18953         (emit_pattern_before): Likewise rename/cast param "before" to
18954         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
18955         * except.c (copy_reg_eh_region_note_forward): Strengthen param
18956         "first" and local "insn" from rtx to rtx_insn *.
18957         (copy_reg_eh_region_note_backward): Likewise for param "last"
18958         and local "insn".
18959         * expr.c (fixup_args_size_notes): Rename param "last" to
18960         "uncast_last" and reintroduce "last" as a local rtx_insn *
18961         using a checked cast.  Strengthen local "insn" from rtx to
18962         rtx_insn *.
18963         * function.c (set_insn_locations): Strengthen param "insn" from
18964         rtx to rtx_insn *.
18965         (record_insns): Likewise for param "insns" and local "tmp".
18966         (active_insn_between): Rename param "tail" to
18967         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
18968         using a checked cast.
18969         (thread_prologue_and_epilogue_insns): Split out top-level local
18970         rtx "seq" into three different rtx_insn * locals.  Strengthen
18971         local "prologue_seq" from rtx to rtx_insn *.
18972         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
18973         from rtx to rtx_insn *.
18974         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
18975         (priority): Likewise for locals "prev_first", "twin".
18976         (setup_insn_max_reg_pressure): Likewise for param "after".
18977         (sched_setup_bb_reg_pressure_info): Likewise.
18978         (no_real_insns_p): Strengthen params from const_rtx to
18979         const rtx_insn *.
18980         (schedule_block): Strengthen local "next_tail" from rtx to
18981         rtx_insn *.
18982         * ifcvt.c (find_active_insn_before): Strengthen return type and
18983         param "insn" from rtx to rtx_insn *.
18984         (find_active_insn_after): Likewise.
18985         (cond_exec_process_insns): Likewise for param "start" and local "insn".
18986         (cond_exec_process_if_block): Likewise for locals "then_start",
18987         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
18988         (noce_process_if_block): Likewise for local "jump".
18989         (merge_if_block): Likewise for two locals named "end".
18990         (cond_exec_find_if_block): Likewise for local "last_insn".
18991         * jump.c (delete_related_insns): Rename param "insn" to
18992         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
18993         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
18994         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
18995         NULL.
18996         (split_reg): Likewise.
18997         * lra.c (lra_process_new_insns): Likewise.
18998         * modulo-sched.c (permute_partial_schedule): Strengthen param
18999         "last" from rtx to rtx_insn *.
19000         * optabs.c (add_equal_note): Likewise for param "insns" and local
19001         "last_insn".
19002         (expand_binop_directly): Add checked casts to rtx_insn * within
19003         NEXT_INSN (pat) uses.
19004         (expand_unop_direct): Likewise.
19005         (maybe_emit_unop_insn): Likewise.
19006         * recog.c (peep2_attempt): Strengthen locals "last",
19007         "before_try", "x" from rtx to rtx_insn *.
19008         * reorg.c (optimize_skip): Strengthen return type and local
19009         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
19010         and locals "trial", "next_trial" from rtx to rtx_insn *.
19011         * resource.c (next_insn_no_annul): Strengthen return type and
19012         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
19013         rtx_sequence to clarify the code.
19014         (mark_referenced_resources): Add a checked cast to rtx_insn *
19015         within PREV_INSN (x).
19016         (find_dead_or_set_registers): Strengthen return type, param
19017         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
19018         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
19019         to rtx_insn **.
19020         (mark_target_live_regs): Strengthen params "insns" and "target",
19021         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
19022         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
19023         the code.
19024         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
19025         from rtx to rtx_insn *.
19026         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
19027         from rtx to rtx_insn *.
19028         (copy_reg_eh_region_note_backward): Likewise.
19029         (unshare_all_rtl_in_chain): Likewise for sole param.
19030         (dump_rtl_slim): Strengthen second and third params from const_rtx
19031         to const rtx_insn *.
19032         * sched-deps.c (sched_free_deps): Strengthen params "head" and
19033         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
19034         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
19035         "next_tail" from rtx to rtx_insn *.
19036         (begin_move_insn): Likewise for local "next".
19037         * sched-int.h (sched_free_deps): Likewise for first and second
19038         params.
19039         (no_real_insns_p): Strengthen both params from const_rtx to
19040         const rtx_insn *.
19041         (sched_setup_bb_reg_pressure_info): Strengthen second params from
19042         rtx to rtx_insn *.
19043         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
19044         "next_tail".
19045         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
19046         and locals "insn", "tail" from const_rtx to const rtx_insn *.
19047         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
19048         rtx_insn *.
19049         (debug_rtl_slim): Strengthen params "first" and "last" from
19050         const_rtx to const rtx_insn *.
19051         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
19052         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
19053         (convert_to_simple_return): Likewise for param "returnjump".
19054         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
19055         "prologue_seq".
19056         (convert_to_simple_return): Likewise for param "returnjump".
19057         * valtrack.c (propagate_for_debug): Likewise for params
19058         "insn", "last".
19059         * valtrack.h (propagate_for_debug): Likewise for second param.
19060
19061 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19062
19063         * output.h (insn_current_reference_address): Strengthen param
19064         from rtx to rtx_insn *.
19065         * final.c (insn_current_reference_address): Likewise.
19066
19067 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19068
19069         * basic-block.h (inside_basic_block_p): Strengthen param from
19070         const_rtx to const rtx_insn *.
19071         * cfgbuild.c (inside_basic_block_p): Likewise.
19072
19073 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19074
19075         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
19076         rtx_insn *.
19077         (get_trace_info): Likewise for param "insn".
19078         (save_point_p): Likewise.
19079         (maybe_record_trace_start): Likewise for both params.
19080         (maybe_record_trace_start_abnormal): Likewise.
19081         (create_trace_edges): Likewise for sole param and for three of the
19082         locals named "lab".
19083         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
19084         to rtx_insn *, and update a call to pat->element to pat->insn.
19085
19086 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19087
19088         * function.h (struct expr_status): Convert field "x_forced_labels"
19089         from rtx_expr_list * to rtx_insn_list *.
19090
19091         * cfgbuild.c (make_edges): Convert local "x" from an
19092         rtx_expr_list * to an rtx_insn_list *, replacing use of
19093         "element" method with "insn" method.
19094         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
19095         * except.c (sjlj_emit_dispatch_table): Replace use of
19096         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
19097         forced_labels.
19098         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
19099         rtx_expr_list * to an rtx_insn_list *, replacing use of
19100         "element" method with "insn" method.
19101         * reload1.c (set_initial_label_offsets): Likewise for local "x".
19102         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
19103         rtx_insn *, adding a checked cast.  Replace use of
19104         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
19105         forced_labels.
19106         (expand_label): Likewise for local "label_r".
19107
19108 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19109
19110         * function.h (struct rtl_data): Convert field
19111         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
19112         rtx_insn_list *.
19113         * rtl.h (remove_node_from_insn_list): New prototype.
19114
19115         * builtins.c (expand_builtin): When prepending to
19116         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
19117         gen_rtx_EXPR_LIST.
19118         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
19119         to rtx_insn_list *, and use its "insn" method rather than
19120         "element" method.
19121         * cfgrtl.c (delete_insn): Use new function
19122         remove_node_from_insn_list rather than
19123         remove_node_from_expr_list.
19124         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
19125         to rtx_insn_list *, and use its "insn" method rather than
19126         "element" method.
19127         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
19128         * reload1.c (set_initial_label_offsets): Likewise for local "x".
19129         * rtlanal.c (remove_node_from_insn_list): New function, adapted
19130         from remove_node_from_expr_list.
19131         * stmt.c (expand_label): When prepending to
19132         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
19133         gen_rtx_EXPR_LIST.
19134
19135 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19136
19137         * function.h (struct rtl_data): Strengthen fields "x_return_label"
19138         and "x_naked_return_label" from rtx to rtx_code_label *.
19139
19140 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19141
19142         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
19143         (SET_NEXT_INSN): Likewise.
19144         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
19145
19146         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
19147         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
19148         to split out the SEQUENCE from local "bundle", strengthening the
19149         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
19150         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
19151         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
19152         and the type of the elements of the "slot" array from rtx to
19153         rtx_insn *.
19154         (reorg_split_calls): Likewise for locals "insn" and "next", and
19155         the type of the elements of the "slot" array.
19156
19157         * config/frv/frv.c (frv_nops): Likewise for the elements of this
19158         array.
19159         (frv_function_prologue): Likewise for locals "insn", "next",
19160         "last_call".
19161         (frv_register_nop): Introduce a local "nop_insn" to be the
19162         rtx_insn * containing rtx "nop".
19163
19164         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
19165         used as an insn and sometimes as a pattern, so rename it to
19166         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
19167         using it where dealing with the core insn.
19168
19169         * config/picochip/picochip.c (reorder_var_tracking_notes):
19170         Strengthen locals "insn", "next", "last_insn", "queue",
19171         "next_queue", "prev" from rtx to rtx_insn *.
19172
19173         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
19174         the second param is an rtx_insn ** rather than an rtx **.
19175         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
19176         from rtx to rtx_sequence *, and introduce local named "sequence",
19177         using methods of rtx_sequence to clarify the code.
19178         (remove_insn): Introduce local rtx_sequence * named "sequence" and
19179         use its methods.
19180         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
19181         Rename param "after" to "uncast_after", reintroducing "after" as a
19182         local rtx_insn * with a checked cast.
19183         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
19184         reintroducing "after" as a local rtx_insn * with a checked cast.
19185         Strengthen local "last" from rtx to rtx_insn * and remove the
19186         now-redundant checked casts.
19187         (copy_delay_slot_insn): Strengthen return type and param from rtx
19188         to rtx_insn *.
19189
19190         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
19191         "last" from rtx to rtx_insn *.
19192
19193 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
19194
19195         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
19196         param from rtx to rtx_insn *.
19197
19198         * emit-rtl.c (copy_delay_slot_insn): Likewise.
19199
19200         * reorg.c (skip_consecutive_labels): Strengthen return type, param
19201         and local "insn" from rtx to rtx_insn *.
19202         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
19203         (unfilled_slots_next): Likewise.
19204         (function_return_label): Strengthen from rtx to rtx_code_label *.
19205         (function_simple_return_label): Likewise.
19206         (first_active_target_insn): Strengthen return type and param from
19207         rtx to rtx_insn *.
19208         (find_end_label): Strengthen return type from rtx to
19209         rtx_code_label *; strengthen locals as appropriate.
19210         (emit_delay_sequence): Strengthen return type, param "insn" and
19211         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
19212         and local "li" from rtx to rtx_insn_list *, using methods of
19213         rtx_insn_list for clarity and typesafety.
19214         (add_to_delay_list): Strengthen return type and param "insn" from
19215         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
19216         rtx_insn_list * and use methods of rtx_insn_list.
19217         (delete_from_delay_slot): Strengthen return type, param "insn",
19218         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
19219         Strengthen local "seq" from rtx to rtx_sequence *, and local
19220         "delay_list" from rtx to rtx_insn_list *, using methods of
19221         rtx_sequence for clarity and type-safety.
19222         (delete_scheduled_jump): Add checked cast when invoking
19223         delete_from_delay_slot.  Strengthen local "trial" from rtx to
19224         rtx_insn *.
19225         (optimize_skip): Strengthen return type and local "delay_list"
19226         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
19227         rtx_insn *.
19228         (steal_delay_list_from_target): Strengthen return type, param
19229         "delay_list" and local "new_delay_list" from rtx to
19230         rtx_insn_list *.  Strengthen param "seq" from rtx to
19231         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
19232         rtx_insn **.
19233         Split out local "temp" into multiple more-tightly scoped locals:
19234         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
19235         of rtx_insn_list and rtx_sequence for clarity and typesafety.
19236         Strengthen locals named "trial" from rtx to rtx_insn *.
19237         (steal_delay_list_from_fallthrough): Strengthen return type and
19238         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
19239         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
19240         Strengthen local "trial" from rtx to rtx_insn *.
19241         (try_merge_delay_insns): Strength local "merged_insns" from rtx
19242         to rtx_insn_list * and use its methods.  Strengthen local "pat"
19243         from rtx to rtx_sequence * and use its methods.  Strengthen locals
19244         "dtrial" and "new_rtx" from rtx to rtx_insn *.
19245         (get_label_before): Strengthen return type and local "label" from
19246         rtx to rtx_insn *.
19247         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
19248         "next_trial", "next", prev".  Strengthen local "delay_list" from
19249         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
19250         rtx_insn **.
19251         (follow_jumps): Strengthen return type, param "label" and locals
19252         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
19253         (fill_slots_from_thread): Strengthen return type, param
19254         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
19255         "insn", "thread", "opposite_thread" and locals "new_thread",
19256         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
19257         "sequence" from a checked cast to rtx_sequence so that we can call
19258         steal_delay_list_from_target and steal_delay_list_from_fallthrough
19259         with an rtx_sequence *.
19260         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
19261         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
19262         Strengthen local "delay_list" from rtx to rtx_insn_list *.
19263         (relax_delay_slots): Strengthen param "first" and locals "insn",
19264         "next", "trial", "delay_insn", "target_label" from rtx to
19265         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
19266         Introduce a local "trial_seq" for PATTERN (trial) of type
19267         rtx_sequence *, in both cases using methods of rtx_sequence.
19268         (dbr_schedule): Strengthen param "first" and locals "insn",
19269         "next", "epilogue_insn" from rtx to rtx_insn *.
19270
19271 2014-08-28  Richard Biener  <rguenther@suse.de>
19272
19273         PR tree-optimization/62283
19274         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19275         Do not peel loops for alignment where the vector loop likely
19276         doesn't run at least VF times.
19277
19278 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
19279
19280         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
19281         important_candidates.  Consider all important candidates if
19282         IVS doesn't give any result.  Remove check on ivs->upto.
19283         (try_add_cand_for): Call iv_ca_add_use only once.
19284
19285 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19286             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19287             Anna Tikhonova  <anna.tikhonova@intel.com>
19288             Ilya Tocar  <ilya.tocar@intel.com>
19289             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19290             Ilya Verbin  <ilya.verbin@intel.com>
19291             Kirill Yukhin  <kirill.yukhin@intel.com>
19292             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19293
19294         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
19295         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
19296         masking.
19297         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
19298         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
19299         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
19300         (define_insn "*mul<mode>3"): Add EVEX version.
19301
19302 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19303             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19304             Anna Tikhonova  <anna.tikhonova@intel.com>
19305             Ilya Tocar  <ilya.tocar@intel.com>
19306             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19307             Ilya Verbin  <ilya.verbin@intel.com>
19308             Kirill Yukhin  <kirill.yukhin@intel.com>
19309             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19310
19311         * config/i386/sse.md
19312         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
19313         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
19314         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
19315         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
19316         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
19317         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
19318         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
19319         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
19320         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
19321         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
19322         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
19323         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
19324         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
19325         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
19326         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
19327         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
19328
19329 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19330             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19331             Anna Tikhonova  <anna.tikhonova@intel.com>
19332             Ilya Tocar  <ilya.tocar@intel.com>
19333             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19334             Ilya Verbin  <ilya.verbin@intel.com>
19335             Kirill Yukhin  <kirill.yukhin@intel.com>
19336             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19337
19338         * config/i386/sse.md
19339         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
19340         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
19341         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
19342
19343 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19344             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19345             Anna Tikhonova  <anna.tikhonova@intel.com>
19346             Ilya Tocar  <ilya.tocar@intel.com>
19347             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19348             Ilya Verbin  <ilya.verbin@intel.com>
19349             Kirill Yukhin  <kirill.yukhin@intel.com>
19350             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19351
19352         * config/i386/sse.md
19353         (define_mode_iterator VI128_256): New.
19354         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
19355
19356 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19357             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
19358             Anna Tikhonova  <anna.tikhonova@intel.com>
19359             Ilya Tocar  <ilya.tocar@intel.com>
19360             Andrey Turetskiy  <andrey.turetskiy@intel.com>
19361             Ilya Verbin  <ilya.verbin@intel.com>
19362             Kirill Yukhin  <kirill.yukhin@intel.com>
19363             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
19364
19365         * config/i386/sse.md
19366         (define_mode_iterator VI8_256_512): New.
19367         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
19368         Ditto.
19369         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
19370         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
19371         Ditto.
19372         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
19373
19374 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19375
19376         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
19377         pointer to the cumulative reloc value and return the value for
19378         this reloc instead.
19379         (compute_reloc_for_rtx): Take a const_rtx.  Call
19380         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
19381         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
19382         for_each_rtx for the CONST case.
19383
19384 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19385
19386         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
19387         (mark_constants_in_pattern): ...this new function to iterate over
19388         all the subrtxes.
19389         (mark_constants): Update accordingly.
19390
19391 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19392
19393         * varasm.c: Include rtl-iter.h.
19394         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
19395         Remove the pointer to the cumulative hashval_t and just return
19396         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
19397         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
19398         Accumulate the hashval_ts here instead of const_rtx_hash_1.
19399
19400 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19401
19402         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
19403         Give real type of data parameter.  Remove return value.
19404         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
19405         to iterate over subrtxes.
19406
19407 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19408
19409         * var-tracking.c (use_narrower_mode_test): Turn from being a
19410         for_each_rtx callback to being a function that examines each
19411         subrtx itself.
19412         (adjust_mems): Update accordingly.
19413
19414 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19415
19416         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
19417         callback to being a function that examines each subrtx itself.
19418         Remove handling of null rtxes.
19419         (add_uses): Update accordingly.
19420
19421 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19422
19423         * var-tracking.c: Include rtl-iter.h.
19424         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
19425         to being a function that examines each subrtx itself.
19426         (use_type): Update accordingly.
19427
19428 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19429
19430         * store-motion.c: Include rtl-iter.h.
19431         (extract_mentioned_regs_1): Delete.
19432         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
19433         for_each_rtx to iterate over subrtxes.
19434
19435 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19436
19437         * sel-sched.c: Include rtl-iter.h
19438         (count_occurrences_1): Delete.
19439         (count_occurrences_equiv): Turn rtxes into const_rtxes.
19440         Use FOR_EACH_SUBRTX rather than for_each_rtx.
19441
19442 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19443
19444         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
19445         * rtlanal.c (tls_referenced_p_1): Delete.
19446         (tls_referenced_p): Take a const_rtx rather than an rtx.
19447         Use FOR_EACH_SUBRTX rather than for_each_rtx.
19448
19449 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19450
19451         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
19452         (for_each_inc_dec): Take an rtx rather than an rtx *.
19453         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
19454         (cselib_record_sets): Likewise.
19455         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
19456         (check_for_inc_dec): Likewise.
19457         * rtlanal.c (for_each_inc_dec_ops): Delete.
19458         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
19459         rather than a pointer to the memory address.  Replace
19460         for_each_inc_dec_ops argument with separate function and data
19461         arguments.  Abort on non-autoinc addresses.
19462         (for_each_inc_dec_find_mem): Delete.
19463         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
19464         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
19465
19466 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19467
19468         * rtl.h (find_all_hard_regs): Declare.
19469         * rtlanal.c (find_all_hard_regs): New function.
19470         (record_hard_reg_uses_1): Delete.
19471         (record_hard_reg_uses): Use find_all_hard_regs.
19472
19473 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19474
19475         * rtl.h (replace_label_data): Delete.
19476         (replace_label): Take the old label, new label and update-nuses flag
19477         as direct arguments.  Return void.
19478         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
19479         * rtlanal.c (replace_label): Update interface as above.  Handle
19480         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
19481         iterator.  Use FOR_EACH_SUBRTX_PTR.
19482
19483 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19484
19485         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
19486         with const_rtx parameters.
19487         * varasm.c (get_pool_constant): Likewise.
19488         * rtlanal.c (rtx_referenced_p_1): Delete.
19489         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
19490         Assert that the rtx we're looking for is nonnull.  Allow searches
19491         for constant pool SYMBOL_REFs.
19492
19493 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19494
19495         * reload1.c: Include rtl-iter.h.
19496         (note_reg_elim_costly): Turn from being a for_each_rtx callback
19497         to being a function that examines each subrtx itself.
19498         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
19499
19500 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19501
19502         * regcprop.c (cprop_find_used_regs_1): Delete.
19503         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
19504
19505 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19506
19507         * regcprop.c: Include rtl-iter.h.
19508         (kill_value): Take a const_rtx.
19509         (kill_autoinc_value): Turn from being a for_each_rtx callback
19510         to being a function that examines each subrtx itself.
19511         (copyprop_hardreg_forward_1): Update accordingly.
19512
19513 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19514
19515         * reg-stack.c: Include rtl-iter.h.
19516         (subst_stack_regs_in_debug_insn): Delete.
19517         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
19518         instead of for_each_rtx.
19519
19520 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19521
19522         * lower-subreg.c (find_decomposable_subregs): Turn from being
19523         a for_each_rtx callback to being a function that examines each
19524         subrtx itself.  Remove handling of null rtxes.
19525         (decompose_multiword_subregs): Update accordingly.
19526
19527 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19528
19529         * lower-subreg.c (adjust_decomposed_uses): Delete.
19530         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
19531         Remove handling of null rtxes.
19532
19533 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19534
19535         * lower-subreg.c: Include rtl-iter.h.
19536         (resolve_subreg_use): Turn from being a for_each_rtx callback
19537         to being a function that examines each subrtx itself.  Remove
19538         handling of null rtxes.
19539         (resolve_reg_notes, resolve_simple_move): Update accordingly.
19540         (decompose_multiword_subregs): Likewise.
19541
19542 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19543
19544         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
19545         to being a function that examines each subrtx itself.
19546         (simplify_using_condition, simplify_using_initial_values): Update
19547         accordingly.
19548
19549 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19550
19551         * loop-iv.c: Include rtl-iter.h.
19552         (find_single_def_src): New function.
19553         (replace_single_def_regs): Turn from being a for_each_rtx callback
19554         to being a function that examines each subrtx itself.
19555         (replace_in_expr, simplify_using_initial_values): Update accordingly.
19556
19557 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19558
19559         * jump.c (eh_returnjump_p_1): Delete.
19560         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
19561         Remove handling of null rtxes.
19562
19563 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19564
19565         * jump.c: Include rtl-iter.h.
19566         (returnjump_p_1): Delete.
19567         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
19568         Remove handling of null rtxes.
19569
19570 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19571
19572         * ira.c: Include rtl-iter.h.
19573         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
19574         to being a function that examines each subrtx itself.  Remove
19575         handling of null rtxes.
19576         (update_equiv_regs): Update call accordingly.
19577
19578 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19579
19580         * fwprop.c: Include rtl-iter.h.
19581         (varying_mem_p): Turn from being a for_each_rtx callback to being
19582         a function that examines each subrtx itself.
19583         (propagate_rtx): Update accordingly.
19584
19585 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19586
19587         * function.c: Include rtl-iter.h
19588         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
19589         callback to being a function that examines each subrtx itself.
19590         Return the changed flag.
19591         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
19592         (instantiate_virtual_regs): Update calls accordingly.
19593
19594 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19595
19596         * final.c: Include rtl-iter.h.
19597         (mark_symbol_ref_as_used): Delete.
19598         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
19599         for_each_rtx.
19600
19601 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19602
19603         * emit-rtl.c: Include rtl-iter.h.
19604         (find_auto_inc): Turn from being a for_each_rtx callback to being
19605         a function that examines each subrtx itself.  Assume the first operand
19606         to an RTX_AUTOINC is the automodified register.
19607         (try_split): Update call accordingly.
19608
19609 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19610
19611         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
19612         Return a bool, inverting the result so that 0/false means "not ok".
19613         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
19614         subrtxes of a CONST.
19615         (mem_loc_descriptor, add_const_value_attribute)
19616         (resolve_addr_in_expr): Update calls accordingly.
19617
19618 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19619
19620         * dwarf2out.c: Include rtl-iter.h.
19621         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
19622         Remove unused data parameter.  Return a bool, inverting the result
19623         so that 0/false means "not ok".
19624         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
19625         instead of for_each_rtx.
19626
19627 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19628
19629         * dse.c: Include rtl-iter.h.
19630         (check_mem_read_rtx): Change void * parameter to real type.
19631         Remove return value.
19632         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
19633         for_each_rtx.  Don't handle null rtxes.
19634
19635 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19636
19637         * df-problems.c: Include rtl-iter.h.
19638         (find_memory): Turn from being a for_each_rtx callback to being
19639         a function that examines each subrtx itself.  Continue to look for
19640         volatile references even after a nonvolatile one has been found.
19641         (can_move_insns_across): Update calls accordingly.
19642
19643 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19644
19645         * ddg.c (walk_mems_2, walk_mems_1): Delete.
19646         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
19647         to iterate over subrtxes.  Return a bool rather than an int.
19648
19649 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19650
19651         * ddg.c: Include rtl-iter.h.
19652         (mark_mem_use_1): Rename to...
19653         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
19654         instead of for_each_rtx.
19655         (mem_read_insn_p): Update accordingly.
19656
19657 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19658
19659         * cse.c (change_cc_mode_args): Delete.
19660         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
19661         a function that examines each subrtx itself.  Take the fields of
19662         change_cc_mode_args as argument and return void.
19663         (cse_change_cc_mode_insn): Update calls accordingly.
19664
19665 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19666
19667         * cse.c (is_dead_reg): Change argument to const_rtx.
19668         (dead_debug_insn_data): Delete.
19669         (is_dead_debug_insn): Expand commentary.  Turn from being a
19670         for_each_rtx callback to being a function that examines
19671         each subrtx itself.  Take the fields of dead_debug_insn_data
19672         as argument.
19673         (delete_trivially_dead_insns): Update call accordingly.
19674
19675 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19676
19677         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
19678         being a for_each_rtx callback to being a function that examines
19679         each subrtx itself.
19680         (cse_extended_basic_block): Update call accordingly.
19681
19682 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19683
19684         * cse.c (check_dependence_data): Delete.
19685         (check_dependence): Change from being a for_each_rtx callback to being
19686         a function that examines all subrtxes itself.  Don't handle null rtxes.
19687         (invalidate): Update call accordingly.
19688
19689 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19690
19691         * cse.c: Include rtl-iter.h.
19692         (approx_reg_cost_1): Delete.
19693         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
19694         Don't handle null rtxes.
19695
19696 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19697
19698         * cfgcleanup.c: Include rtl-iter.h.
19699         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
19700         to being a function that examines each subrtx itself.
19701         (thread_jump): Update accordingly.
19702
19703 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19704
19705         * combine-stack-adj.c: Include rtl-iter.h.
19706         (record_stack_refs_data): Delete.
19707         (record_stack_refs): Turn from being a for_each_rtx callback
19708         to being a function that examines each subrtx itself.
19709         Take a pointer to the reflist.  Invert sense of return value
19710         so that true means success and false means failure.  Don't
19711         handle null rtxes.
19712         (combine_stack_adjustments_for_block): Update accordingly.
19713
19714 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19715
19716         * combine.c (record_truncated_value): Turn from being a for_each_rtx
19717         callback to a function that takes an rtx and returns a bool
19718         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
19719         for_each_rtx.
19720
19721 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19722
19723         * combine.c: Include rtl-iter.h.
19724         (unmentioned_reg_p_1): Delete.
19725         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
19726         Don't handle null rtxes.
19727
19728 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19729
19730         * calls.c: Include rtl-iter.h.
19731         (internal_arg_pointer_based_exp_1): Delete.
19732         (internal_arg_pointer_based_exp): Take a const_rtx.
19733         Use FOR_EACH_SUBRTX to iterate over subrtxes.
19734
19735 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19736
19737         * caller-save.c: Include rtl-iter.h.
19738         (add_used_regs_1): Delete.
19739         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
19740         to iterate over subrtxes.  Assert that any remaining pseudos
19741         have been spilled.
19742
19743 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19744
19745         * bt-load.c: Include rtl-iter.h.
19746         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
19747         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
19748         to iterate over subrtxes.
19749         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
19750         find_btr_use rather than btr_referenced_p.
19751
19752 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19753
19754         * alias.c: Include rtl-iter.h.
19755         (refs_newer_value_cb): Delete.
19756         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
19757
19758 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
19759
19760         * rtl-iter.h: New file.
19761         * rtlanal.c: Include it.
19762         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
19763         (generic_subrtx_iterator <T>::add_single_to_queue)
19764         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
19765         (generic_subrtx_iterator <T>::free_array): New functions.
19766         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
19767         (generic_subrtx_iterator <const_rtx_accessor>)
19768         (generic_subrtx_iterator <rtx_var_accessor>
19769         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
19770         (setup_reg_subrtx_bounds): New function.
19771         (init_rtlanal): Call it.
19772
19773 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
19774
19775         PR target/62261
19776         * config/sh/sh.md (ashlsi3): Handle negative shift count for
19777         TARGET_SHMEDIA.
19778         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
19779
19780 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
19781
19782         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
19783
19784 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19785
19786         * rtl.h (JUMP_LABEL_AS_INSN): New.
19787
19788 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19789
19790         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
19791         rtx_expr_list **.
19792         (alloc_EXPR_LIST): Strengthen return type from rtx to
19793         rtx_expr_list *.
19794         (remove_free_EXPR_LIST_node): Likewise for param.
19795         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
19796         from rtx to rtx_expr_list *.
19797         * sched-int.h (struct deps_desc): Strengthen fields
19798         "pending_read_mems" and "pending_write_mems" from rtx to
19799         rtx_expr_list *.
19800
19801         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
19802         rtx to rtx_expr_list *.
19803         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
19804         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
19805         rtx_expr_list **.
19806         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
19807         from rtx to rtx_expr_list *.
19808         * loop-iv.c (simplify_using_initial_values): Strengthen local
19809         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
19810         "pnote_next" from rtx * to rtx_expr_list **.
19811         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
19812         param "exprp" from rtx * to rtx_expr_list **.
19813         (add_insn_mem_dependence): Strengthen local "mem_list" from
19814         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
19815         to rtx_expr_list *.
19816         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
19817         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
19818         param "old_mems_p" from rtx * to rtx_expr_list **.
19819         * var-tracking.c (struct adjust_mem_data): Strengthen field
19820         "side_effects" from rtx to rtx_expr_list *.
19821         (adjust_insn): Replace NULL_RTX with NULL when assigning to
19822         rtx_expr_list *.
19823         (prepare_call_arguments): Likewise.
19824
19825 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19826
19827         * function.h (struct rtl_data): Strengthen field
19828         "x_stack_slot_list" from rtx to rtx_expr_list *.
19829
19830         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
19831         when assigning to stack_slot_list.
19832
19833 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19834
19835         * function.h (struct rtl_data): Strengthen field
19836         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
19837         * rtl.h (remove_node_from_expr_list): Strengthen second param from
19838         rtx * to rtx_expr_list **.
19839
19840         * cfgbuild.c (make_edges): In loop over
19841         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
19842         rtx_expr_list *, and use methods of the latter class to clarify
19843         the code.
19844         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
19845         rtx_expr_list *, and use methods of the latter class to clarify
19846         the code.
19847         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
19848         * reload1.c (set_initial_label_offsets): Likewise for local "x".
19849         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
19850         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
19851         to rtx_expr_list *.  Use methods of the latter class to clarify
19852         the code.
19853
19854 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19855
19856         * function.h (struct expr_status): Strengthen field
19857         "x_forced_labels" from rtx to rtx_expr_list *.
19858
19859         * cfgbuild.c (make_edges): Split local "x" into two locals,
19860         strengthening one from rtx to rtx_expr_list *, and using methods
19861         of said class.
19862         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
19863         loop over forced_labels, introduce strengthen it from rtx to
19864         rtx_expr_list *, using methods to clarify the code.
19865         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
19866         to rtx_expr_list *, using methods of said class to clarify the
19867         code.
19868         * reload1.c (set_initial_label_offsets): Split local "x" into two
19869         per-loop variables, strengthening the first from rtx to
19870         rtx_expr_list * and using methods.
19871
19872 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19873
19874         * coretypes.h (class rtx_expr_list): Add forward declaration.
19875         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
19876         * gengenrtl.c (special_rtx): Add EXPR_LIST.
19877         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
19878         invariant: GET_CODE (X) == EXPR_LIST.
19879         (is_a_helper <rtx_expr_list *>::test): New.
19880         (rtx_expr_list::next): New.
19881         (rtx_expr_list::element): New.
19882         (gen_rtx_EXPR_LIST): New.
19883
19884 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19885
19886         * varasm.c (mark_constants): Convert a GET_CODE check into a
19887         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
19888         Use methods of rtx_sequence to clarify the code.
19889
19890 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19891
19892         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
19893         local "seq" via a checked cast, and use methods of rtx_sequence
19894         to simplify the code.
19895
19896 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19897
19898         * resource.c (mark_referenced_resources): Strengthen local
19899         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
19900         using methods of rtx_sequence to clarify the code.
19901         (find_dead_or_set_registers): Within the switch statement, convert
19902         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
19903         the JUMP_P handling, introduce another local "seq", adding a
19904         checked cast to rtx_sequence *.  In both cases, use methods of
19905         rtx_sequence to clarify the code.
19906         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
19907         via a checked cast, and use methods of rtx_sequence to simplify
19908         the code.
19909
19910 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19911
19912         * reorg.c (redundant_insn): In two places in the function, replace
19913         a check of GET_CODE with a dyn_cast, introducing local "seq", and
19914         usings methods of rtx_sequence to clarify the code.
19915
19916 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19917
19918         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
19919         local "seq" with a checked cast, and use methods of rtx_sequence
19920         to clarify the code.
19921
19922 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19923
19924         * function.c (contains): Introduce local "seq" for PATTERN (insn),
19925         with a checked cast, in the region for where we know it's a
19926         SEQUENCE.  Use methods of rtx_sequence.
19927
19928 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19929
19930         * final.c (get_attr_length_1): Replace GET_CODE check with a
19931         dyn_cast, introducing local "seq" and the use of methods of
19932         rtx_sequence.
19933         (shorten_branches): Likewise, introducing local "body_seq".
19934         Strengthen local "inner_insn" from rtx to rtx_insn *.
19935         (reemit_insn_block_notes): Replace GET_CODE check with a
19936         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
19937         Use methods of rtx_sequence.
19938         (final_scan_insn): Likewise, introducing local "seq" for when
19939         "body" is known to be a SEQUENCE, using its methods.
19940
19941 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19942
19943         * except.c (can_throw_external): Strengthen local "seq" from rtx
19944         to rtx_sequence *.  Use methods of rtx_sequence.
19945         (insn_nothrow_p): Likewise.
19946
19947 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19948
19949         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
19950         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
19951         Use methods of rtx_sequence.
19952         (scan_trace): Likewise for local "pat".
19953
19954 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19955
19956         * coretypes.h (class rtx_sequence): Add forward declaration.
19957         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
19958         invariant: GET_CODE (X) == SEQUENCE.
19959         (is_a_helper <rtx_sequence *>::test): New.
19960         (is_a_helper <const rtx_sequence *>::test): New.
19961         (rtx_sequence::len): New.
19962         (rtx_sequence::element): New.
19963         (rtx_sequence::insn): New.
19964
19965 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
19966
19967         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
19968         rtx_insn_list **.
19969         (alloc_INSN_LIST): Strengthen return type from rtx to
19970         rtx_insn_list *.
19971         (copy_INSN_LIST): Likewise for return type and param.
19972         (concat_INSN_LIST): Likewise for both params and return type.
19973         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
19974         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
19975         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
19976         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
19977
19978         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
19979         "implicit_sets", "control_uses", "clobbers" from rtx to
19980         rtx_insn_list *.
19981         (struct deps_desc): Likewise for fields "pending_read_insns",
19982         "pending_write_insns", "pending_jump_insns",
19983         "last_pending_memory_flush", "last_function_call",
19984         "last_function_call_may_noreturn", "sched_before_next_call",
19985         "sched_before_next_jump".
19986         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
19987         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
19988
19989         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
19990         from rtx to rtx_insn_list *.
19991         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
19992         rtx_insn_list *.
19993
19994         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
19995         to rtx_insn_list **.
19996         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
19997         rtx_insn_list *.
19998         (queue_insn): Likewise for local "link".
19999         (struct haifa_saved_data): Strengthen field "insn_queue" from
20000         rtx * to rtx_insn_list **.
20001         (save_backtrack_point): Update allocation of save->insn_queue to
20002         reflect the strengthening of elements from rtx to rtx_insn_list *.
20003         (queue_to_ready): Strengthen local "link" from rtx to
20004         rtx_insn_list *; use methods "next" and "insn" when traversing the
20005         list.
20006         (early_queue_to_ready): Likewise for locals "link", "next_link",
20007         "prev_link".
20008         (schedule_block): Update allocation of insn_queue to reflect the
20009         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
20010         local "link" from rtx to rtx_insn_list *, and use methods when
20011         working it.
20012         (add_to_speculative_block): Strengthen locals "twins" and
20013         "next_node" from rtx to rtx_insn_list *, and use methods when
20014         working with them.  Strengthen local "twin" from rtx to
20015         rtx_insn *, eliminating a checked cast.
20016         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
20017         from rtx to rtx_insn_list *, and use methods when working with
20018         them.
20019
20020         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
20021         from rtx to rtx_insn_list *, adding a checked cast.
20022         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
20023         rtx_insn_list **.
20024         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
20025         "newlink" from rtx to rtx_insn_list *.  Strengthen local
20026         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
20027         from rtx to rtx_insn *.
20028         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
20029         from rtx to rtx_insn_list *.  Use methods of the latter class.
20030         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
20031         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
20032         (remove_free_INSN_LIST_node): Strengthen return type and local
20033         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
20034         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
20035         rtx_insn_list *, using "insn" method.
20036
20037         * sched-deps.c (add_dependence_list):  Strengthen param "list"
20038         from rtx to rtx_insn_list *, and use methods when working with it.
20039         (add_dependence_list_and_free):  Strengthen param "listp" from
20040         rtx * to rtx_insn_list **.
20041         (remove_from_dependence_list): Strenghten param "listp" from rtx *
20042         to rtx_insn_list **, and use methods when working with *listp.
20043         (remove_from_both_dependence_lists): Strengthen param "listp" from
20044         rtx * to rtx_insn_list **
20045         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
20046         to rtx_insn_list **.  Eliminate local "link", in favor of two new
20047         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
20048         respectively.
20049         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
20050         by introducing local "cond_deps".
20051         (remove_from_deps): Strengthen param "insn" from rtx to
20052         rtx_insn *.
20053
20054         * sched-rgn.c (concat_insn_mem_list): Strengthen param
20055         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
20056         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
20057         Use methods of rtx_insn_list.
20058
20059         * store-motion.c (struct st_expr): Strengthen fields
20060         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
20061         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
20062         rtx_insn_list *.
20063         (find_moveable_store): Split out "tmp" into multiple more-tightly
20064         scoped locals.  Use methods of rtx_insn_list *.
20065         (compute_store_table): Strengthen local "tmp" from rtx to
20066         rtx_insn *.  Use methods of rtx_insn_list *.
20067
20068 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20069
20070         * coretypes.h (class rtx_insn_list): Add forward declaration.
20071         * rtl.h (class rtx_insn_list): New subclass of rtx_def
20072         (is_a_helper <rtx_insn_list *>::test): New.
20073         (rtx_insn_list::next): New.
20074         (rtx_insn_list::insn): New.
20075         (gen_rtx_INSN_LIST): Add prototype.
20076         * emit-rtl.c (gen_rtx_INSN_LIST): New.
20077         * gengenrtl.c (special_rtx): Add INSN_LIST.
20078
20079 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20080
20081         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
20082         "prev" from rtx to rtx_insn *.
20083
20084 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20085
20086         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
20087         functions.  Require merely an rtx for now, not an rtx_insn *.
20088         (BLOCK_FOR_INSN): Likewise.
20089         (INSN_LOCATION): Likewise.
20090         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
20091
20092 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20093
20094         * rtl.h (PATTERN): Convert this macro into a pair of inline
20095         functions, for now, requiring const_rtx and rtx.
20096
20097 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20098
20099         * target.def (unwind_emit): Strengthen param "insn" from rtx to
20100         rtx_insn *.
20101         (final_postscan_insn): Likewise.
20102         (adjust_cost): Likewise.
20103         (adjust_priority): Likewise.
20104         (variable_issue): Likewise.
20105         (macro_fusion_pair_p): Likewise.
20106         (dfa_post_cycle_insn): Likewise.
20107         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
20108         (first_cycle_multipass_issue): Likewise.
20109         (dfa_new_cycle): Likewise.
20110         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
20111         (speculate_insn): Likewise for param "insn".
20112         (gen_spec_check): Likewise for params "insn" and "label".
20113         (get_insn_spec_ds): Likewise for param "insn".
20114         (get_insn_checked_ds): Likewise.
20115         (dispatch_do): Likewise.
20116         (dispatch): Likewise.
20117         (cannot_copy_insn_p): Likewise.
20118         (invalid_within_doloop): Likewise.
20119         (legitimate_combined_insn): Likewise.
20120         (needed): Likewise.
20121         (after): Likewise.
20122
20123         * doc/tm.texi: Automatically updated to reflect changes to
20124         target.def.
20125
20126         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
20127         working with insn.
20128         (schedule_block): Likewise.
20129         (sched_init): Likewise.
20130         (sched_speculate_insn): Strengthen param "insn" from rtx to
20131         rtx_insn *.
20132         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
20133         working with insn.
20134         * hooks.c (hook_bool_rtx_true): Rename to...
20135         hook_bool_rtx_insn_true): ...this, and strengthen first param from
20136         rtx to rtx_insn *.
20137         (hook_constcharptr_const_rtx_null): Rename to...
20138         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
20139         first param from const_rtx to const rtx_insn *.
20140         (hook_bool_rtx_int_false): Rename to...
20141         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
20142         param from rtx to rtx_insn *.
20143         (hook_void_rtx_int): Rename to...
20144         (hook_void_rtx_insn_int): ...this, and strengthen first param from
20145         rtx to rtx_insn *.
20146
20147         * hooks.h (hook_bool_rtx_true): Rename to...
20148         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
20149         rtx to rtx_insn *.
20150         (hook_bool_rtx_int_false): Rename to...
20151         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
20152         param from rtx to rtx_insn *.
20153         (hook_void_rtx_int): Rename to...
20154         (hook_void_rtx_insn_int): ...this, and strengthen first param from
20155         rtx to rtx_insn *.
20156         (hook_constcharptr_const_rtx_null): Rename to...
20157         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
20158         first param from const_rtx to const rtx_insn *.
20159
20160         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
20161         and local "prev" from rtx to rtx_insn *.
20162
20163         * sched-int.h (sched_speculate_insn): Strengthen first param from
20164         rtx to rtx_insn *.
20165
20166         * sel-sched.c (create_speculation_check): Likewise for local "label".
20167         * targhooks.c (default_invalid_within_doloop): Strengthen param
20168         "insn" from const_rtx to const rtx_insn *.
20169         * targhooks.h (default_invalid_within_doloop): Strengthen param
20170         from const_rtx to const rtx_insn *.
20171
20172         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
20173         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
20174
20175         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
20176         "insn".
20177         (arc_invalid_within_doloop): Likewise, with const.
20178
20179         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
20180         (arm_cannot_copy_insn_p): Likewise for param "insn".
20181         (arm_unwind_emit): Likewise.
20182
20183         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
20184         "dep_insn".
20185
20186         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
20187         (c6x_variable_issue): Likewise.  Removed now-redundant checked
20188         cast.
20189         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
20190
20191         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
20192         Likewise for param "insn".
20193         (epiphany_mode_after): Likewise.
20194         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
20195         params "insn", "dep_insn".
20196         (epiphany_mode_needed): Likewise for param "insn".
20197         (epiphany_mode_after): Likewise.
20198
20199         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
20200         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
20201         (ix86_avx_u128_mode_needed): Likewise.
20202         (ix86_i387_mode_needed): Likewise.
20203         (ix86_mode_needed): Likewise.
20204         (ix86_avx_u128_mode_after): Likewise.
20205         (ix86_mode_after): Likewise.
20206         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
20207         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
20208         (ix86_adjust_priority): Likewise for param "insn".
20209         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
20210         (do_dispatch): Likewise.
20211         (has_dispatch): Likewise.
20212         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
20213
20214         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
20215         reflect renaming of default hook implementation from
20216         hook_constcharptr_const_rtx_null to
20217         hook_constcharptr_const_rtx_insn_null.
20218         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
20219         rtx to rtx_insn *.
20220         (ia64_variable_issue): Likewise for param "insn".
20221         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
20222         (ia64_dfa_new_cycle): Likewise.
20223         (ia64_get_insn_spec_ds): Likewise.
20224         (ia64_get_insn_checked_ds): Likewise.
20225         (ia64_speculate_insn): Likewise.
20226         (ia64_gen_spec_check): Likewise for params "insn", "label".
20227         (ia64_asm_unwind_emit): Likewise for param "insn".
20228
20229         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
20230
20231         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
20232         "insn", "def_insn".
20233         (m68k_sched_variable_issue): Likewise for param "insn".
20234
20235         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
20236         "def_insn".
20237
20238         * config/microblaze/microblaze.c (microblaze_adjust_cost):
20239         Likewise for params "insn", "dep".
20240
20241         * config/mips/mips.c (mips_adjust_cost): Likewise.
20242         (mips_variable_issue): Likewise for param "insn".
20243         (mips_final_postscan_insn): Likewise.
20244
20245         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
20246         for params "insn", "dep".
20247
20248         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
20249         "dep_insn".
20250         (pa_adjust_priority): Likewise for param "insn".
20251
20252         * config/picochip/picochip.c (picochip_sched_adjust_cost):
20253         Likewise for params "insn", "dep_insn".
20254
20255         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
20256         param "insn".
20257         (rs6000_variable_issue): Likewise.
20258         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
20259         (rs6000_debug_adjust_cost): Likewise.
20260         (rs6000_adjust_priority): Likewise for param "insn".
20261         (rs6000_use_sched_lookahead_guard): Likewise.
20262         (get_next_active_insn): Likewise for return type and both params.
20263         (redefine_groups): Likewise for params "prev_head_insn", "tail"
20264         and locals "insn", "next_insn".
20265         (pad_groups): Likewise.
20266
20267         * config/s390/s390.c (s390_adjust_priority): Likewise for param
20268         "insn".
20269         (s390_cannot_copy_insn_p): Likewise.
20270         (s390_sched_variable_issue): Likewise for third param, eliminating
20271         checked cast.
20272         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
20273         default hook implementation from hook_constcharptr_const_rtx_null
20274         to hook_constcharptr_const_rtx_insn_null.
20275
20276         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
20277         from rtx to rtx_insn *.
20278         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
20279         (sh_variable_issue): Likewise for param "insn".
20280         (sh_dfa_new_cycle): Likewise.
20281         (sh_mode_needed): Likewise.
20282         (sh_mode_after): Likewise.
20283
20284         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
20285         params "insn", "dep_insn".
20286         (hypersparc_adjust_cost): Likewise.
20287         (sparc_adjust_cost): Likewise.
20288
20289         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
20290         param, eliminated checked cast.
20291         (spu_sched_adjust_cost): Likewise for first and third params.
20292
20293         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
20294         params "insn" and "dep_insn" from rtx to rtx_insn *.
20295
20296         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
20297
20298 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
20299
20300         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
20301         (set_is_load_p): ...this, updating to work on a SET pattern rather
20302         than an insn.
20303         (is_store_insn): Rename to...
20304         (set_is_store_p): ...this, updating to work on a SET pattern
20305         rather than an insn.
20306         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
20307         top of function to where it is needed.  Rewrite the bogus
20308         condition that checks for "insn" and "dep" being PARALLEL to
20309         instead use single_set, introducing locals "insn_set" and
20310         "dep_set".  Given that we only ever returned "cost" for a non-pair
20311         of SETs, bail out early if we don't have a pair of SET.
20312         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
20313         use the new locals "insn_set" and "dep_set", and update calls to
20314         is_load_insn and is_store_insn to be calls to set_is_load_p and
20315         set_is_store_p.
20316
20317 2014-08-27  Guozhi Wei  <carrot@google.com>
20318
20319         PR target/62262
20320         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
20321         amount before using it.
20322
20323 2014-08-27  Richard Biener  <rguenther@suse.de>
20324
20325         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
20326         get_maxval_strlen inside a more useful API.
20327         (gimple_fold_builtin_with_strlen): Remove and fold into ...
20328         (gimple_fold_builtin): ... caller.
20329         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
20330         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
20331         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
20332         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
20333         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
20334         gimple_fold_builtin_sprintf): Adjust to compute maxval
20335         themselves.
20336
20337 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
20338
20339         PR other/62248
20340         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
20341
20342 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20343             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20344             Anna Tikhonova  <anna.tikhonova@intel.com>
20345             Ilya Tocar  <ilya.tocar@intel.com>
20346             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20347             Ilya Verbin  <ilya.verbin@intel.com>
20348             Kirill Yukhin  <kirill.yukhin@intel.com>
20349             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20350
20351         * config/i386/sse.md
20352         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
20353         Use `concat_tg_mode' attribute to determine asm register size.
20354
20355 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20356             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20357             Anna Tikhonova  <anna.tikhonova@intel.com>
20358             Ilya Tocar  <ilya.tocar@intel.com>
20359             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20360             Ilya Verbin  <ilya.verbin@intel.com>
20361             Kirill Yukhin  <kirill.yukhin@intel.com>
20362             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20363
20364         * config/i386/sse.md
20365         (define_mode_iterator VI48_AVX512VL): New.
20366         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
20367         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
20368         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
20369         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
20370         with VI1): Change mode iterator.
20371         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
20372         with VI_ULOADSTORE_BW_AVX512VL): New.
20373         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
20374         with VI_ULOADSTORE_F_AVX512VL): Ditto.
20375         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
20376         with VI1): Change mode iterator.
20377         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
20378         with VI_ULOADSTORE_BW_AVX512VL): New.
20379         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
20380         with VI_ULOADSTORE_F_AVX512VL): Ditto.
20381         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
20382         with VI1): Change mode iterator.
20383         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
20384         with VI_ULOADSTORE_BW_AVX512VL): New.
20385         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
20386         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
20387         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
20388         (define_insn "<avx512>_storedqu<mode>_mask" with
20389         VI48_AVX512VL): New.
20390         (define_insn "<avx512>_storedqu<mode>_mask" with
20391         VI12_AVX512VL): Ditto.
20392
20393 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20394             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20395             Anna Tikhonova  <anna.tikhonova@intel.com>
20396             Ilya Tocar  <ilya.tocar@intel.com>
20397             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20398             Ilya Verbin  <ilya.verbin@intel.com>
20399             Kirill Yukhin  <kirill.yukhin@intel.com>
20400             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20401
20402         * config/i386/sse.md
20403         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
20404         (define_mode_iterator VI48_AVX512BW): New.
20405         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
20406         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
20407         with VI48_AVX2_48_AVX512F): New.
20408         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
20409         with VI2_AVX512VL): Ditto.
20410
20411 2014-08-27  Richard Biener  <rguenther@suse.de>
20412
20413         PR middle-end/62239
20414         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
20415         (fold_builtin_3): Do not fold strcat_chk here.
20416         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
20417         from builtins.c.
20418         (gimple_fold_builtin): Fold strcat_chk here.
20419
20420 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
20421
20422         * dwarf2out.h (dwarf2out_decl): Remove prototype.
20423         * dwarf2out.c (dwarf2out_decl): Make static.
20424
20425 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
20426
20427         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
20428
20429 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20430
20431         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
20432         from rtx to rtx_insn *.
20433         (cselib_lookup_from_insn): Likewise for final param.
20434         (cselib_subst_to_values_from_insn): Likewise.
20435         (cselib_add_permanent_equiv): Likewise.
20436
20437         * cselib.c (cselib_current_insn): Likewise for this variable.
20438         (cselib_subst_to_values_from_insn): Likewise for param "insn".
20439         (cselib_lookup_from_insn): Likewise.
20440         (cselib_add_permanent_equiv): Likewise for param "insn" and local
20441         "save_cselib_current_insn".
20442         (cselib_process_insn): Replace use of NULL_RTX with NULL.
20443
20444         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
20445         from rtx to rtx_insn *.
20446
20447 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20448
20449         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
20450         rtx_insn *.
20451
20452 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20453
20454         * df.h (df_dump_insn_problem_function): Strengthen first param of
20455         this callback from const_rtx to const rtx_insn *.
20456         (struct df_insn_info): Strengthen field "insn" from rtx to
20457         rtx_insn *.
20458         (DF_REF_INSN): Eliminate this function, reinstating the older
20459         macro definition.
20460         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
20461         (df_reg_defined): Likewise.
20462         (df_find_use): Likewise.
20463         (df_reg_used): Likewise.
20464         (df_dump_insn_top): Strengthen param 1 from const_rtx to
20465         const rtx_insn *.
20466         (df_dump_insn_bottom): Likewise.
20467         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
20468         (df_insn_debug_regno): Likewise.
20469         (debug_df_insn): Likewise.
20470         (df_rd_simulate_one_insn): Likewise for param 2.
20471         (df_word_lr_simulate_defs): Likewise for param 1.
20472         (df_word_lr_simulate_uses): Likewise.
20473         (df_md_simulate_one_insn): Likewise for param 2.
20474         (df_simulate_find_noclobber_defs): Likewise for param 1.
20475         (df_simulate_find_defs): Likewise.
20476         (df_simulate_defs): Likewise.
20477         (df_simulate_uses): Likewise.
20478         (df_simulate_one_insn_backwards): Likewise for param 2.
20479         (df_simulate_one_insn_forwards): Likewise.
20480         (df_uses_create): Likewise for param 2.
20481         (df_insn_create_insn_record): Likewise for param 1.
20482         (df_insn_delete): Likewise.
20483         (df_insn_rescan): Likewise.
20484         (df_insn_rescan_debug_internal): Likewise.
20485         (df_insn_change_bb): Likewise.
20486         (df_notes_rescan): Likewise.
20487         * rtl.h (remove_death): Likewise for param 2.
20488         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
20489         const rtx_insn *.
20490         * sched-int.h (reemit_notes): Strengthen param from rtx to
20491         rtx_insn *.
20492         * valtrack.h (propagate_for_debug): Likewise for param 1.
20493
20494         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
20495         local "tmp_rtx" from const_rtx to const rtx_insn *.
20496         * combine.c (remove_death): Strengthen param "insn" from rtx to
20497         rtx_insn *.
20498         (move_deaths): Likewise for local "where_dead".
20499         * cse.c (delete_trivially_dead_insns): Introduce local
20500         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
20501         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
20502         rtx_insn *.
20503         (df_reg_defined): Likewise.
20504         (df_find_use): Likewise.
20505         (df_reg_used): Likewise.
20506         (df_dump_insn_problem_data): Strengthen param "insn" from
20507         const_rtx to const rtx_insn *.
20508         (df_dump_insn_top): Likewise.
20509         (df_dump_insn_bottom): Likewise.
20510         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
20511         (df_insn_debug_regno): Likewise.
20512         (debug_df_insn): Likewise.
20513         (DF_REF_INSN): Delete.
20514         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
20515         from rtx to rtx_insn *.
20516         (df_chain_insn_top_dump): Strengthen param "insn" from
20517         const_rtx to const rtx_insn *.
20518         (df_chain_insn_bottom_dump): Likewise.
20519         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
20520         rtx_insn *.
20521         (df_word_lr_simulate_uses): Likewise.
20522         (df_print_note): Likewise.
20523         (df_remove_dead_and_unused_notes): Likewise.
20524         (df_set_unused_notes_for_mw): Likewise.
20525         (df_set_dead_notes_for_mw): Likewise.
20526         (df_create_unused_note): Likewise.
20527         (df_simulate_find_defs): Likewise.
20528         (df_simulate_find_uses): Likewise.
20529         (df_simulate_find_noclobber_defs): Likewise.
20530         (df_simulate_defs): Likewise.
20531         (df_simulate_uses): Likewise.
20532         (df_simulate_one_insn_backwards): Likewise.
20533         (df_simulate_one_insn_forwards): Likewise.
20534         (df_md_simulate_one_insn): Likewise.
20535         * df-scan.c (df_uses_create): Likewise.
20536         (df_insn_create_insn_record): Likewise.
20537         (df_insn_delete): Likewise.
20538         (df_insn_rescan): Likewise.
20539         (df_insn_rescan_debug_internal): Likewise.
20540         (df_insn_change_bb): Likewise.
20541         (df_notes_rescan): Likewise.
20542         (df_refs_add_to_chains): Likewise.
20543         (df_insn_refs_verify): Likewise.
20544         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
20545         when invoking df_insn_delete.
20546         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
20547         (set_unique_reg_note): Add checked cast.
20548         * final.c (cleanup_subreg_operands): Likewise.
20549         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
20550         "insn" from rtx to rtx_insn *.
20551         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
20552         "last" from rtx to rtx_insn *.
20553         * ira-emit.c (change_regs_in_insn): New function.
20554         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
20555         Invoke change_regs_in_insn rather than change_regs.
20556         * ira.c (update_equiv_regs): Strengthen locals "insn",
20557         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
20558         for_each_rtx_in_insn rather than for_each_rtx.
20559         * recog.c (confirm_change_group): Add checked casts.
20560         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
20561         Add checked cast.
20562         (peep2_fill_buffer): Add checked cast.
20563         * rtlanal.c (remove_note): Likewise.
20564         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
20565         locals "next" "end" from rtx to rtx_insn *.
20566
20567 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20568
20569         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
20570         to rtx_insn *.
20571         (struct reg_use_data): Likewise for field "insn".
20572         (insn_cost): Likewise for param.
20573         (real_insn_for_shadow): Likewise for return type and param.
20574         (increase_insn_priority): Likewise for param 1.
20575         (debug_dependencies): Likewise for both params.
20576
20577         * haifa-sched.c (insn_delay): Likewise for param "insn".
20578         (real_insn_for_shadow): Likewise for return type and param "insn".
20579         (update_insn_after_change): Likewise for param "insn".
20580         (recompute_todo_spec): Likewise for param "next" and locals "pro",
20581         "other".
20582         (insn_cost): Likewise for param "insn".
20583         (increase_insn_priority): Likewise.
20584         (calculate_reg_deaths): Likewise.
20585         (setup_insn_reg_pressure_info): Likewise.
20586         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
20587         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
20588         (model_recompute): Likewise.
20589         (must_restore_pattern_p): Likewise for param "next".
20590         (model_excess_cost): Likewise for param "insn".
20591         (queue_remove): Likewise.
20592         (adjust_priority): Likewise for param "prev".
20593         (update_register_pressure): Likewise for param "insn".
20594         (setup_insn_max_reg_pressure): Likewise for local "insn".
20595         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
20596         (model_add_to_schedule): Likewise.
20597         (model_reset_queue_indices): Likewise for local "insn".
20598         (unschedule_insns_until): Strengthen local "recompute_vec" from
20599         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
20600         "con" from rtx to rtx_insn *.
20601         (restore_last_backtrack_point): Likewise for both locals "x". Add
20602         checked casts.
20603         (estimate_insn_tick): Likewise for param "insn".
20604         (commit_schedule): Likewise for params "prev_head", "tail" and
20605         local "x".
20606         (verify_shadows): Likewise for locals "i1", "i2".
20607         (dump_insn_stream): Likewise for params "head", "tail" and locals
20608         "next_tail", "insn".
20609         (schedule_block): Likewise for locals "insn", "x".  Add a checked
20610         cast.
20611         (fix_inter_tick): Likewise for params "head", "tail".
20612         (create_check_block_twin): Likewise for local "jump".
20613         (haifa_change_pattern): Likewise for param "insn".
20614         (haifa_speculate_insn): Likewise.
20615         (dump_new_block_header): Likewise for params "head", "tail".
20616         (fix_jump_move): Likewise for param "jump".
20617         (move_block_after_check): Likewise.
20618         (sched_init_insn_luid): Likewise for param "insn".
20619         (sched_init_luids): Likewise for local "insn".
20620         (insn_luid): Likewise for param "insn".
20621         (init_h_i_d): Likewise.
20622         (haifa_init_h_i_d): Likewise for local "insn".
20623         (haifa_init_insn): Likewise for param "insn".
20624         * sched-deps.c (add_dependence): Likewise for local "real_pro",
20625         "other".
20626         (create_insn_reg_use): Likewise for param "insn".
20627         (setup_insn_reg_uses): Likewise.  Add a checked cast.
20628         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
20629         "tail" from rtx to rtx_insn *.
20630         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
20631         "insn", "next_tail".
20632
20633 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20634
20635         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
20636         from rtx to rtx_insn *.
20637         (model_add_to_schedule): Likewise for locals "start", "end",
20638         "iter".
20639
20640 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20641
20642         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
20643         rtx_insn *.
20644         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
20645         "to" and locals "insn", "next", "copy".  Remove now-redundant
20646         checked cast.
20647
20648 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20649
20650         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
20651         rtx_insn * and param 4 from rtx * to rtx_insn **.
20652         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
20653         param 2 from rtx * to rtx_insn **.
20654
20655         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
20656         rtx_insn * and final param from rtx * to rtx_insn **.
20657
20658         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
20659         from rtx to rtx_insn *.
20660         (try_head_merge_bb): Likewise for both locals named "move_upto".
20661         * df-problems.c (can_move_insns_across): Likewise for params
20662         "from", "to", "across_from", "across_to" and locals "insn",
20663         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
20664         rtx_insn **.
20665         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
20666         from rtx to rtx_insn *.
20667         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
20668         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
20669         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
20670         rtx_insn *.
20671         (noce_try_abs): Likewise.
20672         (noce_get_condition): Likewise for param "jump".  Strengthen param
20673         "earliest" from rtx * to rtx_insn **.
20674         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
20675         rtx_insn *.
20676         (find_cond_trap): Likewise.
20677         (dead_or_predicable): Likewise for local "earliest".
20678         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
20679         checked cast.
20680         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
20681         and local "prev".  Strengthen param "earliest" from rtx * to
20682         rtx_insn **.
20683         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
20684         Strengthen param "earliest" from rtx * to rtx_insn **.
20685
20686 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20687
20688         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
20689         "to" and local "insn" from rtx to rtx_insn *.
20690
20691 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20692
20693         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
20694         from rtx to rtx_insn *.
20695         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
20696         (code_motion_path_driver): Likewise for local "last_insn".
20697         (simplify_changed_insns): Likewise for local "insn".
20698
20699 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20700
20701         * rtl.h (push_to_sequence): Strengthen param from rtx to
20702         rtx_insn *.
20703         (push_to_sequence2): Likewise for both params.
20704         (delete_insns_since): Likewise for param.
20705         (reorder_insns_nobb): Likewise for all three params.
20706         (set_new_first_and_last_insn): Likewise for both params.
20707
20708         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
20709         rtx_insn *.  Remove now-redundant cast.
20710         (set_last_insn): Likewise.
20711
20712         * builtins.c (expand_builtin_return): Strengthen local
20713         "call_fusage" from rtx to rtx_insn *.
20714         * cfgrtl.c (create_basic_block_structure): Likewise for local
20715         "after".
20716         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
20717         "first", "last" and local "insn".
20718         (delete_insns_since): Likewise for param "from".
20719         (reorder_insns_nobb): Likewise for params "from", "to", "after"
20720         and local "x".
20721         (push_to_sequence): Likewise for param "first" and local "last".
20722         (push_to_sequence2): Likewise for params "first" and "last".
20723         * lra.c (emit_add3_insn): Likewise for local "last".
20724         (lra_emit_add): Likewise.
20725         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
20726         "last_insn".
20727         (process_address_1): Likewise for locals "insn", last".
20728         * modulo-sched.c (ps_first_note): Likewise for return type.
20729         * optabs.c (expand_binop_directly): Likewise for param "last".
20730
20731 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20732
20733         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
20734         to rtx_insn*.
20735         * emit-rtl.c (get_last_insn_anywhere): Likewise.
20736
20737 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20738
20739         * function.h (struct sequence_stack): Strengthen fields "first"
20740         and "last" from rtx to rtx_insn *.
20741         (struct emit_status): Likewise for fields "x_first_insn" and
20742         "x_last_insn".
20743
20744         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
20745         (set_first_insn): Add checked cast.
20746         (get_last_insn): Remove now-redundant checked cast.
20747         (set_last_insn): Add checked cast.
20748
20749         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
20750         "saved_first" and "saved_last" from rtx to rtx_insn *.
20751
20752 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20753
20754         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
20755         (unlink_insn_chain): Strengthen both params from rtx to
20756         rtx_insn *.
20757
20758         * cfgrtl.c (cfg_layout_function_header): Likewise for this
20759         variable.
20760         (unlink_insn_chain): Likewise for params "first" and "last".
20761         Remove now-redundant checked cast.
20762         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
20763         (fixup_reorder_chain): Strengthen local "insn" from rtx to
20764         rtx_insn *.
20765         * emit-rtl.c (link_insn_into_chain): Likewise for all three
20766         params.
20767         (add_insn): Likewise for param "insn" and local "prev".
20768         (add_insn_after_nobb): Likewise for both params and local "next".
20769         (add_insn_before_nobb): Likewise for both params and local "prev".
20770         (add_insn_after): Rename param "after" to "uncast_after",
20771         introducing local "after" with another checked cast.
20772         (add_insn_before): Rename params "insn" and "before", giving them
20773         "uncast_" prefixes, adding the old names back using checked casts.
20774         (emit_note_after): Likewise for param "after".
20775         (emit_note_before): Likewise for param "before".
20776         (emit_label): Add a checked cast.
20777
20778 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20779
20780         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
20781         "insn" from rtx to rtx_insn *.
20782
20783         * cselib.c (cselib_record_sets_hook): Likewise.
20784
20785         * var-tracking.c (add_with_sets): Likewise, renaming back from
20786         "uncast_insn" to "insn" and eliminating the checked cast from rtx
20787         to rtx_insn *.
20788
20789 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20790
20791         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
20792         and "header_" from rtx to rtx_insn *.
20793         (struct basic_block_d): Likewise for field "head_" within "x"
20794         field of union basic_block_il_dependent.
20795         (BB_HEAD): Drop function...
20796         (SET_BB_HEAD): ...and this function in favor of...
20797         (BB_HEAD): ...reinstate macro.
20798         (BB_END): Drop function...
20799         (SET_BB_END): ...and this function in favor of...
20800         (BB_END): ...reinstate macro.
20801         (BB_HEADER): Drop function...
20802         (SET_BB_HEADER): ...and this function in favor of...
20803         (BB_HEADER): ...reinstate macro.
20804
20805         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
20806         (fix_crossing_unconditional_branches): Likewise.
20807         * caller-save.c (save_call_clobbered_regs): Likewise.
20808         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
20809         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
20810         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
20811         (merge_blocks_move_successor_nojumps): Likewise.
20812         (outgoing_edges_match): Update use of for_each_rtx to
20813         for_each_rtx_in_insn.
20814         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
20815         (expand_gimple_cond): Likewise.
20816         (expand_gimple_tailcall): Likewise.
20817         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
20818         SET_BB_END.
20819         (construct_exit_block): Drop use of SET_BB_END.
20820         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
20821         rtx_insn *.
20822         (delete_insn): Rename param "insn" to "uncast_insn", introducing
20823         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
20824         SET_BB_HEAD and SET_BB_END.
20825         (create_basic_block_structure): Drop use of SET_BB_HEAD and
20826         SET_BB_END.
20827         (rtl_delete_block): Drop use of SET_BB_HEAD.
20828         (rtl_split_block): Drop use of SET_BB_END.
20829         (emit_nop_for_unique_locus_between): Likewise.
20830         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
20831         (block_label): Drop use of SET_BB_HEAD.
20832         (fixup_abnormal_edges): Drop use of SET_BB_END.
20833         (record_effective_endpoints): Drop use of SET_BB_HEADER.
20834         (relink_block_chain): Likewise.
20835         (fixup_reorder_chain): Drop use of SET_BB_END.
20836         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
20837         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
20838         rtx_insn **.  Drop use of SET_BB_HEADER.
20839         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
20840         SET_BB_HEAD.
20841         (BB_HEAD): Delete this function.
20842         (SET_BB_HEAD): Likewise.
20843         (BB_END): Likewise.
20844         (SET_BB_END): Likewise.
20845         (BB_HEADER): Likewise.
20846         (SET_BB_HEADER): Likewise.
20847         * emit-rtl.c (add_insn_after):  Rename param "insn" to
20848         "uncast_insn", adding a new local "insn" and a checked cast to
20849         rtx_insn *.  Drop use of SET_BB_END.
20850         (remove_insn): Strengthen locals "next" and "prev" from rtx to
20851         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
20852         (reorder_insns): Drop use of SET_BB_END.
20853         (emit_insn_after_1): Strengthen param "first" and locals "last",
20854         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
20855         (emit_pattern_after_noloc): Add checked cast.
20856         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
20857         (restore_other_notes): Likewise.
20858         (move_insn): Likewise.
20859         (sched_extend_bb): Likewise.
20860         (fix_jump_move): Likewise.
20861         * ifcvt.c (noce_process_if_block): Likewise.
20862         (dead_or_predicable): Likewise.
20863         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
20864         * reg-stack.c (change_stack): Drop use of SET_BB_END.
20865         * sel-sched-ir.c (sel_move_insn): Likewise.
20866         * sel-sched.c (move_nop_to_previous_block): Likewise.
20867
20868         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
20869         SET_BB_END.
20870         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
20871
20872 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20873
20874         * basic-block.h (create_basic_block_structure): Strengthen params
20875         1 "head" and 2 "end" from rtx to rtx_insn *.
20876         * cfgrtl.c (create_basic_block_structure): Likewise.
20877         (rtl_create_basic_block): Update casts from void * to rtx to
20878         rtx_insn *, so that we can pass them as rtx_insn * to
20879         create_basic_block_structure.
20880         * sel-sched-ir.c (sel_create_basic_block): Likewise.
20881
20882 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20883
20884         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
20885         rtx_insn **.
20886         (check_for_inc_dec): Strengthen param "insn" from rtx to
20887         rtx_insn *.
20888
20889         * cselib.h (cselib_process_insn): Likewise.
20890
20891         * cselib.c (cselib_record_sets): Likewise.
20892         (cselib_process_insn): Likewise.
20893
20894         * dse.c (struct insn_info): Likewise for field "insn".
20895         (check_for_inc_dec_1): Likewise for local "insn".
20896         (check_for_inc_dec): Likewise for param "insn".
20897         (scan_insn): Likewise.
20898         (dse_step1): Likewise for local "insn".
20899
20900         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
20901         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
20902
20903 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20904
20905         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
20906         from rtx to rtx_insn *.
20907         (DEP_PRO): Delete this function and...
20908         (SET_DEP_PRO): ...this function in favor of...
20909         (DEP_PRO): ...reinstate this macro.
20910         (DEP_CON): Delete this function and...
20911         (SET_DEP_CON): ...this function in favor of...
20912         (DEP_CON): ...reinstate this old macro.
20913         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
20914         (init_dep): Likewise.
20915         (set_priorities): Likewise for both params.
20916         (sd_copy_back_deps): Likewise for params 1 and 2.
20917
20918         * haifa-sched.c (priority): Likewise for param "insn" and local
20919         "next".
20920         (set_priorities): Likewise for params "head" and "tail" and local
20921         "insn".
20922         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
20923         local "consumer".
20924         (add_to_speculative_block): Add a checked cast.
20925         (create_check_block_twin): Drop use of SET_DEP_CON.
20926         (add_jump_dependencies): Strengthen params "insn" and "jump" from
20927         rtx to rtx_insn *.
20928
20929         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
20930         Drop use of SET_DEP_PRO
20931         (init_dep): Strengthen params "pro" and "con" from rtx to
20932         rtx_insn *.
20933         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
20934         use of SET_DEP_CON.
20935         (DEP_PRO): Delete.
20936         (DEP_CON): Delete.
20937         (SET_DEP_PRO): Delete.
20938         (SET_DEP_CON): Delete.
20939
20940 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20941
20942         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
20943         from rtx to rtx_insn *.
20944         (VINSN_INSN_RTX): Eliminate rvalue function and...
20945         (SET_VINSN_INSN): ...lvalue function in favor of...
20946         (VINSN_INSN_RTX): reinstate this old macro.
20947
20948         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
20949         in favor of VINSN_INSN_RTX.
20950         (VINSN_INSN_RTX): Delete this function.
20951         (SET_VINSN_INSN_RTX): Likewise.
20952
20953 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
20954
20955         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
20956         (BND_TO): Delete this function and...
20957         (SET_BND_TO): ...this functions in favor of...
20958         (BND_TO): ...reinstating this macro.
20959         (struct _fence): Strengthen field "executing_insns" from
20960         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
20961         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
20962         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
20963         and param "insn" from rtx to insn_t.
20964         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
20965         rtx_insn *.
20966
20967         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
20968         vec<rtx_insn *> .
20969         (rtx_vec_t): Likewise.
20970         (struct sched_deps_info_def): Strengthen param of "start_insn"
20971         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
20972         "note_mem_dep" callback and first param of "note_dep" callback.
20973
20974         * haifa-sched.c (add_to_speculative_block): Strengthen param
20975         "insn" from rtx to rtx_insn *.
20976         (clear_priorities): Likewise.
20977         (calc_priorities): Likewise for local "insn".
20978
20979         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
20980         Remove redundant checked cast.
20981         (haifa_note_mem_dep): Likewise for param "pending_insn".
20982         (haifa_note_dep): Likewise for param "elem".
20983         (note_mem_dep): Likewise for param "e".
20984         (sched_analyze_1): Add checked casts.
20985         (sched_analyze_2): Likewise.
20986
20987         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
20988         from rtx to rtx_insn *.
20989         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
20990         from vec<rtx> * to vec<rtx_insn *> *.
20991
20992         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
20993         scaffolding.
20994         (flist_add): Strengthen param "executing_insns" from
20995         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
20996         (advance_deps_context): Remove now-redundant checked cast.
20997         (init_fences): Replace uses of NULL_RTX with NULL.
20998         (merge_fences): Strengthen params "last_scheduled_insn" and
20999         "sched_next" from rtx to rtx_insn * and "executing_insns" from
21000         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
21001         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
21002         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
21003         an instruction, rather than doing double-duty as a pattern.
21004         (return_nop_to_pool): Update for change of insn_t.
21005         (deps_init_id): Remove now-redundant checked cast.
21006         (struct sched_scan_info_def): Strengthen param of "init_insn"
21007         callback from rtx to insn_t.
21008         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
21009         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
21010         NULL.
21011         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
21012         "end" from rtx to rtx_insn *.
21013         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
21014         (rtx insn_rtx, bool force_unique_p)
21015         (BND_TO): Delete function.
21016         (SET_BND_TO): Delete function.
21017
21018         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
21019         rtx to rtx_insn *.
21020         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
21021         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
21022         rtx to rtx_insn *.
21023         (undo_transformations): Likewise for param "insn".
21024         (update_liveness_on_insn): Likewise.
21025         (compute_live_below_insn): Likewise for param "insn" and local
21026         "succ".
21027         (update_data_sets): Likewise for param "insn".
21028         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
21029         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
21030         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
21031         rtx_insn *.
21032         (move_cond_jump): Likewise for param "insn".
21033         (move_cond_jump): Drop use of SET_BND_TO.
21034         (compute_av_set_on_boundaries): Likewise.
21035         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
21036         (update_and_record_unavailable_insns): Strengthen local "bb_end"
21037         from rtx to rtx_insn *.
21038         (maybe_emit_renaming_copy): Likewise for param "insn".
21039         (maybe_emit_speculative_check): Likewise.
21040         (handle_emitting_transformations): Likewise.
21041         (remove_insn_from_stream): Likewise.
21042         (code_motion_process_successors): Strengthen local "succ" from rtx
21043         to insn_t.
21044
21045 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21046
21047         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
21048         ilist_t, not _xlist_t;
21049         (ILIST_INSN): Define in terms of new union field "insn".
21050         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
21051         _XLIST_NEXT.
21052         (struct _list_node): Add new field "insn" to the union, of type
21053         insn_t.
21054         (ilist_add): Replace macro with an inline function, requiring an
21055         insn_t.
21056         (ilist_remove): Define this macro directly in terms of
21057         _list_remove, rather than indirectly via _xlist_remove.
21058         (ilist_clear): Likewise, in terms of _list_clear rather than
21059         _xlist_clear.
21060         (ilist_is_in_p): Replace macro with an inline function, requiring
21061         an insn_t.
21062         (_list_iter_cond_insn): New function.
21063         (ilist_iter_remove): Define this macro directly in terms of
21064         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
21065         (ilist_iterator): Define directly in terms of _list_iterator
21066         rather than indirectly through _xlist_iterator.
21067         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
21068         than in terms of _FOR_EACH_X.
21069         (FOR_EACH_INSN_1): Likewise.
21070
21071 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
21072
21073         PR target/60606
21074         PR target/61330
21075         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
21076         DECL_HARD_REGISTER and return for invalid register specifications.
21077         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
21078         DECL_HARD_REGISTER, call expand_one_error_var.
21079         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
21080         CC_REGNUM with non-MODE_CC modes.
21081         (arm_regno_class): Return NO_REGS for PC_REGNUM.
21082
21083 2014-08-26  Marek Polacek  <polacek@redhat.com>
21084
21085         PR c/61271
21086         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
21087
21088 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
21089
21090         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
21091         qi cost; add di cost.
21092         (cortexa57_addrcost_table): Likewise.
21093
21094 2014-08-26  Marek Polacek  <polacek@redhat.com>
21095
21096         PR c/61271
21097         * expr.c (is_aligning_offset): Remove logical not.
21098
21099 2014-08-26  Marek Polacek  <polacek@redhat.com>
21100
21101         PR c/61271
21102         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
21103         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
21104
21105 2014-08-26  Richard Biener  <rguenther@suse.de>
21106
21107         PR tree-optimization/62175
21108         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21109         expand possibly trapping operations.
21110
21111 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
21112
21113         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
21114         "insn" from rtx to rtx_insn *.
21115         (permute_load): Likewise for param "insn".
21116         (permute_store): Likewise.
21117         (handle_special_swappables): Likewise for local "insn".
21118         (replace_swap_with_copy): Likewise for locals "insn" and
21119         "new_insn".
21120         (rs6000_analyze_swaps): Likewise for local "insn".
21121
21122 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21123
21124         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
21125         to rtx_insn *.
21126
21127 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21128
21129         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
21130         "note_list" from rtx to rtx_insn *.
21131         (BB_NOTE_LIST): Replace this function and...
21132         (SET_BB_NOTE_LIST): ...this function with...
21133         (BB_NOTE_LIST): ...the former macro implementation.
21134
21135         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
21136         local "from_start" from rtx to rtx_insn *.  Strengthen param
21137         "to_endp" from rtx * to rtx_insn **.
21138
21139         * haifa-sched.c (concat_note_lists): Likewise.
21140         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
21141         BB_NOTE_LIST.
21142         (sel_restore_notes): Likewise.
21143         (move_bb_info): Likewise.
21144         (BB_NOTE_LIST): Delete this function.
21145         (SET_BB_NOTE_LIST): Delete this function.
21146         * sel-sched.c (create_block_for_bookkeeping): Eliminate
21147         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
21148
21149 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21150
21151         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
21152         from rtx * to rtx_insn **.
21153         (reorder2): Likewise.
21154         (dependencies_evaluation_hook): Strengthen params "head", "tail"
21155         from rtx to rtx_insn *.
21156
21157         * doc/tm.texi: Update mechanically for above change to target.def.
21158
21159         * sched-int.h (note_list): Strengthen this variable from rtx to
21160         rtx_insn *.
21161         (remove_notes): Likewise for both params.
21162         (restore_other_notes): Likewise for return type and first param.
21163         (struct ready_list): Strengthen field "vec" from rtx * to
21164         rtx_insn **.
21165         (struct dep_replacement): Strenghten field "insn" from rtx to
21166         rtx_insn *.
21167         (struct deps_desc): Likewise for fields "last_debug_insn",
21168         "last_args_size".
21169         (struct haifa_sched_info): Likewise for callback field
21170         "can_schedule_ready_p"'s param, for first param of "new_ready"
21171         callback field, for both params of "rank" callback field, for
21172         first field of "print_insn" callback field (with a const), for
21173         both params of "contributes_to_priority" callback, for param
21174         of "insn_finishes_block_p" callback, for fields "prev_head",
21175         "next_tail", "head", "tail", for first param of "add_remove_insn"
21176         callback, for first param of "begin_schedule_ready" callback, for
21177         both params of "begin_move_insn" callback, and for second param
21178         of "advance_target_bb" callback.
21179         (add_dependence): Likewise for params 1 and 2.
21180         (sched_analyze): Likewise for params 2 and 3.
21181         (deps_analyze_insn): Likewise for param 2.
21182         (ready_element): Likewise for return type.
21183         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
21184         (try_ready): Strenghten param from rtx to rtx_insn *.
21185         (sched_emit_insn): Likewise for return type.
21186         (record_delay_slot_pair): Likewise for params 1 and 2.
21187         (add_delay_dependencies): Likewise for param.
21188         (contributes_to_priority): Likewise for both params.
21189         (find_modifiable_mems): Likewise.
21190
21191         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
21192         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
21193         "first_older_only_insn" from rtx to rtx_insn *.
21194         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
21195         rtx_insn **.
21196
21197         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
21198         "last_scheduled_iter0" from rtx to rtx_insn *.
21199         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
21200         (c6x_sched_reorder_1): Strengthen param "ready" and locals
21201         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
21202         "insn" from rtx to rtx_insn *.
21203         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
21204         rtx_insn **.
21205         (c6x_sched_reorder2): Strengthen param "ready" and locals
21206         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
21207         "insn" from rtx to rtx_insn *.
21208         (c6x_variable_issue):  Add a checked cast when assigning from insn
21209         to ss.last_scheduled_iter0.
21210         (split_delayed_branch): Strengthen param "insn" and local "i1"
21211         from rtx to rtx_insn *.
21212         (split_delayed_nonbranch): Likewise.
21213         (undo_split_delayed_nonbranch): Likewise for local "insn".
21214         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
21215         "entry_after", "end_packet", "head_insn", "tail_insn",
21216         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
21217         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
21218         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
21219         but add a checked cast on loop->start_label.  Consolidate calls to
21220         avoid assigning result of gen_spkernel to "insn", now an
21221         rtx_insn *.
21222
21223         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
21224         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
21225         rtx to rtx_insn *.
21226         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
21227         rtx_insn **.  Strengthen locals "top", "next" from rtx to
21228         rtx_insn *.
21229         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
21230         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
21231         (add_parameter_dependencies): Strengthen params "call", "head" and
21232         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
21233         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
21234         (add_dependee_for_func_arg): Likewise for param "arg" and local
21235         "insn".
21236         (ix86_dependencies_evaluation_hook): Likewise for params "head",
21237         "tail" and locals "insn", "first_arg".
21238
21239         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
21240         for params "head", "tail" and locals "insn", "next", "next_tail".
21241         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
21242         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
21243         "insn", "lowest", "highest" from rtx to rtx_insn *.
21244         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
21245         rtx_insn **.
21246         (ia64_sched_reorder2): Likewise.
21247
21248         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
21249         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
21250         from rtx * to rtx_insn **.
21251         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
21252         rtx_insn **.
21253         (mep_print_sched_insn): Strengthen param "insn" from rtx to
21254         rtx_insn *.
21255         (mep_sched_reorder): Strengthen param "ready" from rtx * to
21256         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
21257         to rtx_insn *.
21258
21259         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
21260         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
21261         to rtx_insn *.
21262         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
21263         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
21264         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
21265         rtx_insn **.
21266         (vr4130_reorder): Likewise.
21267         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
21268         rtx to rtx_insn *.
21269         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
21270         rtx_insn **.
21271         (mips_sched_reorder): Likewise.
21272         (mips_sched_reorder2): Likewise.
21273
21274         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
21275
21276         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
21277         Strengthen local "tmp" from rtx to rtx_insn *.
21278         (rs6000_sched_reorder2): Likewise.
21279
21280         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
21281         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
21282         (s390_sched_reorder): Strengthen param "ready" from rtx * to
21283         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
21284
21285         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
21286         "tmp2" from rtx to rtx_insn *.
21287         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
21288         Strengthen local "insn" from rtx to rtx_insn *.
21289         (ready_reorder): Strengthen param "ready" from rtx * to
21290         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
21291         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
21292         (sh_reorder2): Likewise.
21293
21294         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
21295         local "insn" from rtx to rtx_insn *.
21296
21297         * haifa-sched.c (note_list): Strengthen this variable from rtx to
21298         rtx_insn *.
21299         (scheduled_insns): Strengthen this variable from vec<rtx> to
21300         vec<rtx_insn *>.
21301         (set_modulo_params): Likewise for locals "i1", "i2".
21302         (record_delay_slot_pair): Likewise for params "i1", "i2".
21303         (add_delay_dependencies): Likewise for param "insn".
21304         (cond_clobbered_p): Likewise.
21305         (recompute_todo_spec): Likewise for local "prev".
21306         (last_scheduled_insn): Likewise for this variable.
21307         (nonscheduled_insns_begin): Likewise.
21308         (model_set_excess_costs): Strengthen param "insns" from rtx * to
21309         rtx_insn **.
21310         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
21311         rtx_insn *.
21312         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
21313         Strengthen local "insn" from rtx to rtx_insn *.
21314         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
21315         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
21316         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
21317         (ready_remove_first): Likewise for return type and local "t".
21318         (ready_element): Likewise for return type.
21319         (ready_remove): Likewise for return type and local "t".
21320         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
21321         (check_clobbered_conditions): Strengthen local "x" from rtx to
21322         rtx_insn *, adding a checked cast.
21323         (schedule_insn): Likewise for param "insn".
21324         (remove_notes): Likewise for params "head", "tail" and locals
21325         "next_tail", "insn", "next".
21326         (struct haifa_saved_data): Likewise for fields
21327         "last_scheduled_insn", "nonscheduled_insns_begin".
21328         (save_backtrack_point): Update for change to field "vec" of
21329         struct ready_list.
21330         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
21331         rtx_insn **.
21332         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
21333         from rtx to rtx_insn *
21334         (resolve_dependencies): Strengthen param "insn" from rtx to
21335         rtx_insn *
21336         (restore_other_notes): Likewise for return type, for param "head"
21337         and local "note_head".
21338         (undo_all_replacements): Likewise for local "insn".
21339         (first_nonscheduled_insn): Likewise for return type and local "insn".
21340         (queue_to_ready): Likewise for local "insn", adding checked casts.
21341         (early_queue_to_ready): Likewise for local "insn".
21342         (debug_ready_list_1): Strengthen local "p" from rtx * to
21343         rtx_insn **.
21344         (move_insn): Strengthen param "insn" and local "note" from rtx to
21345         rtx_insn *
21346         (insn_finishes_cycle_p): Likewise for param "insn".
21347         (max_issue): Likewise for local "insn".
21348         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
21349         to rtx_insn **.
21350         (commit_schedule): Strengthen param "prev_head" and local "insn"
21351         from rtx to rtx_insn *
21352         (prune_ready_list): Likewise for local "insn".
21353         (schedule_block): Likewise for locals "prev_head", "head", "tail",
21354         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
21355         (set_priorities): Likewise for local "prev_head".
21356         (try_ready): Likewise for param "next".
21357         (fix_tick_ready): Likewise.
21358         (change_queue_index): Likewise.
21359         (sched_extend_ready_list): Update for change to field "vec" of
21360         struct ready_list.
21361         (generate_recovery_code): Strengthen param "insn" from rtx to
21362         rtx_insn *.
21363         (begin_speculative_block): Likewise.
21364         (create_check_block_twin): Likewise for param "insn" and locals
21365         "label", "check", "twin".  Introduce local "check_pat" to avoid
21366         "check" being used as a plain rtx before being used as an insn.
21367         (fix_recovery_deps): Add a checked cast to rtx_insn * when
21368         extracting elements from ready_list.
21369         (sched_remove_insn): Strengthen param "insn" from rtx to
21370         rtx_insn *.
21371         (sched_emit_insn): Likewise for return type.
21372         (ready_remove_first_dispatch): Likewise for return type and local
21373         "insn".
21374
21375         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
21376
21377         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
21378         const rtx_insn *.
21379
21380         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
21381         from rtx to rtx_insn *.
21382         (add_dependence_list): Likewise for param "insn".  Add a checked
21383         cast.
21384         (add_dependence_list_and_free): Strengthen param "insn" from rtx
21385         to rtx_insn *.  Strengthen param "list_p" from rtx * to
21386         rtx_insn **.
21387         (chain_to_prev_insn): Strengthen param "insn" and locals
21388         "prec_nonnote", "i" from rtx to rtx_insn *.
21389         (flush_pending_lists): Likewise for param "insn".
21390         (cur_insn): Likewise for this variable.
21391         (haifa_start_insn): Add a checked cast.
21392         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
21393         (sched_analyze_reg): Likewise for param "insn".
21394         (sched_analyze_1): Likewise.
21395         (sched_analyze_2): Likewise.  Add checked casts.
21396         (sched_analyze_insn): Likewise.  Also for local "prev".
21397         (deps_analyze_insn): Likewise for param "insn".
21398         (sched_analyze): Likewise for params "head", "tail" and local "insn".
21399         (add_dependence_1): Likewise for params "insn", "elem".
21400         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
21401         (parse_add_or_inc): Likewise for param "insn".
21402         (find_inc): Likewise for local "inc_cand".
21403         (find_modifiable_mems): Likewise for params "head", "tail" and
21404         locals "insn", "next_tail".
21405
21406         * sched-ebb.c (init_ready_list): Likewise for local "insn".
21407         (begin_schedule_ready): Likewise for param "insn".
21408         (begin_move_insn): Likewise for params "insn" and "last".
21409         (ebb_print_insn): Strengthen param "insn" from const_rtx to
21410         const rtx_insn *.
21411         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
21412         (ebb_contributes_to_priority): Likewise for params "next", "insn".
21413         (ebb_add_remove_insn): Likewise for param "insn".
21414         (advance_target_bb): Likewise.
21415
21416         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
21417         "insn".
21418         (check_live): Likewise for param "insn".
21419         (init_ready_list): Likewise for local "insn".
21420         (can_schedule_ready_p): Likewise for param "insn".
21421         (begin_schedule_ready): Likewise.
21422         (new_ready): Likewise for param "next".
21423         (rgn_print_insn): Likewise for param "insn".
21424         (rgn_rank): Likewise for params "insn1", "insn2".
21425         (contributes_to_priority): Likewise for params "next", "insn".
21426         (rgn_insn_finishes_block_p): Likewise for param "insn".
21427         (add_branch_dependences): Likewise for params "head", "tail" and
21428         locals "insn", "last".
21429         (rgn_add_remove_insn): Likewise for param "insn".
21430         (advance_target_bb): Likewise.
21431
21432         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
21433         const_rtx to const rtx_insn *.
21434
21435         * sel-sched-dump.h (sel_print_insn): Likewise.
21436
21437         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
21438         (deps_init_id): Likewise.
21439
21440         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
21441         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
21442         rtx_insn **.
21443
21444 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21445
21446         * output.h (final_start_function): Strengthen param 1 from rtx to
21447         rtx_insn *.
21448
21449         * final.c (final_start_function): Likewise, renaming back from
21450         "uncast_first" to "first", and dropping the checked cast from rtx
21451         to rtx_insn *.
21452
21453 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21454
21455         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
21456         * final.c (final): Likewise.  Rename param back from
21457         "uncast_first" to "first" and eliminate the checked cast from rtx
21458         to rtx_insn *.
21459
21460 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21461
21462         * output.h (shorten_branches): Strengthen param from rtx to
21463         rtx_insn *.
21464
21465         * final.c (shorten_branches): Likewise, renaming param back from
21466         "uncast_first" to "first", and dropping the checked cast from rtx
21467         to rtx_insn *.
21468
21469         * genattr.c (gen_attr): Likewise when writing out the prototype of
21470         shorten_branches.
21471
21472 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21473
21474         * sched-int.h (struct haifa_sched_info): Strengthen fields
21475         "prev_head" and "next_tail" from rtx to rtx_insn *.
21476
21477 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21478
21479         * rtl.h (rtx_jump_table_data::get_labels): New method.
21480         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
21481         with use of the new rtx_jump_table_data::get_labels method.
21482         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
21483         to rtx_jump_table_data *.  Simplify by using get_labels method.
21484         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
21485         a dyn_cast, introducing local "table", using it to replace
21486         label-lookup logic with a get_labels method call.
21487         (patch_jump_insn): Simplify using get_labels method.
21488         * dwarf2cfi.c (create_trace_edges): Likewise.
21489         * rtlanal.c (label_is_jump_target_p): Likewise.
21490
21491 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21492
21493         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
21494         to rtx_insn *.
21495
21496         * emit-rtl.c (unshare_all_rtl_1): Likewise.
21497         (unshare_all_rtl_again): Likewise, also for local "p".
21498
21499 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21500
21501         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
21502         to rtx_insn *.
21503         * cfgrtl.c (delete_insn_and_edges): Likewise.
21504
21505 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21506
21507         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
21508         from rtx to rtx_insn *.
21509
21510         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
21511
21512 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21513
21514         * function.c (thread_prologue_and_epilogue_insns): Likewise for
21515         locals "returnjump", "epilogue_end", "insn", "next".
21516
21517         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
21518         "returnjump" from rtx * to rtx_insn **.
21519         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
21520
21521 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21522
21523         * basic-block.h (struct edge_def). Strengthen "r" within
21524         union edge_def_insns from rtx to rtx_insn *.
21525
21526         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
21527         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
21528         rtx_insn *.
21529         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
21530         from rtx to rtx_insn *.
21531         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
21532         rtx_insn *.
21533         * postreload-gcse.c (reg_killed_on_edge): Likewise.
21534         (reg_used_on_edge): Likewise.
21535         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
21536         (gt_pch_nx): New overload for rtx_insn *&.
21537         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
21538         from rtx to rtx_insn *.
21539
21540 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21541
21542         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
21543         from rtx to rtx_insn *.
21544         (BB_FOOTER): Replace function with access macro.
21545         (SET_BB_FOOTER): Delete.
21546
21547         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
21548         with BB_FOOTER.
21549         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
21550         (emit_barrier_after_bb): Likewise.
21551         (record_effective_endpoints): Likewise.
21552         (relink_block_chain): Likewise.
21553         (fixup_fallthru_exit_predecessor): Likewise.
21554         (cfg_layout_duplicate_bb): Likewise.
21555         (cfg_layout_split_block): Likewise.
21556         (cfg_layout_delete_block): Likewise.
21557         (cfg_layout_merge_blocks): Likewise.
21558         (BB_FOOTER): Delete function.
21559         (SET_BB_FOOTER): Delete function.
21560         * combine.c (update_cfg_for_uncondjump): Replace uses of
21561         SET_BB_FOOTER with BB_FOOTER.
21562
21563 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21564
21565         * except.h (struct eh_landing_pad_d): Strengthen field
21566         "landing_pad" from rtx to rtx_code_label *.
21567
21568         * except.c (sjlj_emit_dispatch_table): Likewise for param
21569         "dispatch_label"
21570         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
21571
21572 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21573
21574         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
21575         first param from rtx to rtx_insn *.
21576         * config/xtensa/xtensa.c (struct machine_function): Likewise for
21577         field "set_frame_ptr_insn".
21578         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
21579         "csend" from rtx to rtx_code_label *.
21580         (xtensa_expand_atomic): Likewise for local "csloop".
21581         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
21582         rtx_insn *.
21583         (xtensa_call_tls_desc): Likewise for return type and locals
21584         "call_insn", "insns".
21585         (xtensa_legitimize_tls_address): Likewise for local "insns".
21586         (xtensa_expand_prologue): Likewise for locals "insn", "first".
21587
21588 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21589
21590         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
21591         first param from rtx to rtx_insn *.
21592         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
21593         "insn".
21594
21595 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21596
21597         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
21598         Strengthen param 1 from rtx to rtx_insn *.
21599         (tilepro_output_cbranch): Likewise.
21600         (tilepro_adjust_insn_length): Likewise.
21601         (tilepro_final_prescan_insn): Likewise for sole param.
21602
21603         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
21604         Likewise for local "last".
21605         (cbranch_predicted_p): Likewise for param "insn".
21606         (tilepro_output_simple_cbranch_with_opcode): Likewise.
21607         (tilepro_output_cbranch_with_opcode): Likewise.
21608         (tilepro_output_cbranch): Likewise.
21609         (frame_emit_load): Likewise for return type and locals "seq",
21610         "insn".
21611         (emit_sp_adjust): Likewise for return type and local "insn".
21612         (tilepro_expand_epilogue): Likewise for locals "last_insn",
21613         "insn".
21614         (tilepro_adjust_insn_length): Likewise for param "insn".
21615         (next_insn_to_bundle): Likewise for return type and params
21616         "r", "end".
21617         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
21618         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
21619         local "new_insns".
21620         (match_addli_pcrel): Likewise for param "insn".
21621         (replace_addli_pcrel): Likewise.
21622         (match_auli_pcrel): Likewise.
21623         (replace_auli_pcrel): Likewise.
21624         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
21625         "next_insn".
21626         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
21627         "queue", "next_queue", "prev".
21628         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
21629         (tilepro_final_prescan_insn): Likewise for param "insn".
21630
21631 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21632
21633         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
21634         Strengthen param 1 from rtx to rtx_insn *.
21635         (tilegx_output_cbranch): Likewise.
21636         (tilegx_adjust_insn_length): Likewise.
21637         (tilegx_final_prescan_insn): Likewise for sole param.
21638
21639         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
21640         or local "last".
21641         (cbranch_predicted_p): Likewise for param "insn".
21642         (tilegx_output_simple_cbranch_with_opcode): Likewise.
21643         (tilegx_output_cbranch_with_opcode): Likewise.
21644         (tilegx_output_cbranch): Likewise.
21645         (frame_emit_load): Likewise for return type.
21646         (set_frame_related_p): Likewise for locals "seq", "insn".
21647         (emit_sp_adjust): Likewise for return type, and for local "insn".
21648         Introduce local "pat" for use in place of "insn" where the latter
21649         isn't an instruction.
21650         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
21651         from rtx to rtx_insn *.
21652         (tilegx_adjust_insn_length): Likewise for param "insn".
21653         (next_insn_to_bundle): Likewise for return type and params "r" and
21654         "end".
21655         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
21656         "end".
21657         (replace_insns): Likewise for params "old_insn", "new_insns".
21658         (replace_mov_pcrel_step1): Likewise for param "insn" and local
21659         "new_insns".
21660         (replace_mov_pcrel_step2): Likewise.
21661         (replace_mov_pcrel_step3): Likewise.
21662         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
21663         "next_insn".
21664         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
21665         "queue", "next_queue", "prev".
21666         (tilegx_output_mi_thunk): Likewise for local "insn".
21667         (tilegx_final_prescan_insn): Likewise for param "insn".
21668
21669 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21670
21671         * config/spu/spu.c (frame_emit_store): Strengthen return type from
21672         rtx to rtx_insn *.
21673         (frame_emit_load): Likewise.
21674         (frame_emit_add_imm): Likewise, also for local "insn".
21675         (spu_expand_prologue): Likewise for local "insn".
21676         (struct spu_bb_info): Likewise for field "prop_jump".
21677         (emit_nop_for_insn): Likewise for param "insn" and local
21678         "new_insn".
21679         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
21680         "hbr_insn".
21681         (spu_emit_branch_hint): Likewise for params "before", "branch" and
21682         locals "hint", "insn".
21683         (get_branch_target): Likewise for param "branch".
21684         (insn_clobbers_hbr): Likewise for param "insn".
21685         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
21686         locals "insn", "before_4", "before_16".
21687         (insert_hbrp): Likewise for local "insn".
21688         (spu_machine_dependent_reorg): Likewise for locals "branch",
21689         "insn", "next", "bbend".
21690         (uses_ls_unit): Likewise for param "insn".
21691         (get_pipe): Likewise.
21692         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
21693         introducing a checked cast.
21694         (spu_sched_adjust_cost): Likewise for params "insn" and
21695         "dep_insn".
21696         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
21697         (spu_sms_res_mii): Likewise.
21698
21699 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21700
21701         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
21702         from rtx to rtx_insn *.
21703         (output_cbranch): Likewise for param 6.
21704         (output_return): Likewise for param 1.
21705         (output_sibcall): Likewise.
21706         (output_v8plus_shift): Likewise.
21707         (output_v8plus_mult): Likewise.
21708         (output_v9branch): Likewise for param 7.
21709         (output_cbcond):  Likewise for param 3.
21710
21711         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
21712         for local "insn".
21713         (sparc_legitimize_pic_address): Likewise.
21714         (sparc_emit_call_insn): Likewise.
21715         (emit_save_or_restore_regs): Likewise.
21716         (emit_window_save): Likewise for return type and local "insn".
21717         (sparc_expand_prologue): Likewise for local "insn".
21718         (sparc_flat_expand_prologue): Likewise.
21719         (output_return): Likewise for param "insn".
21720         (output_sibcall): Likewise for param "insn" and local "delay".
21721         (output_ubranch): Likewise for param "insn".
21722         (output_cbranch): Likewise.
21723         (output_cbcond): Likewise.
21724         (output_v9branch): Likewise.
21725         (output_v8plus_shift): Likewise.
21726         (sparc_output_mi_thunk): Likewise for local "insn".
21727         (get_some_local_dynamic_name): Likewise.
21728         (output_v8plus_mult): Likewise for param "insn".
21729
21730 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21731
21732         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
21733         from rtx to rtx_insn *.
21734         (output_branchy_insn): Likewise for param 3.
21735         (output_far_jump): Likewise for param 1.
21736         (final_prescan_insn): Likewise.
21737         (sh_insn_length_adjustment): Likewise for sole param.
21738
21739         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
21740         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
21741         rtx_code_label *.
21742         (sh_emit_compare_and_set): Likewise for local "lab".
21743         (output_far_jump): Strengthen param "insn" and local "prev" from
21744         rtx to rtx_insn *.
21745         (output_branchy_insn): Likewise for param "insn" and local
21746         "next_insn".
21747         (output_ieee_ccmpeq): Likewise for param "insn".
21748         (struct label_ref_list_d): Strengthen field "label" from rtx to
21749         rtx_code_label *.
21750         (pool_node): Likewise.
21751         (pool_window_label): Likewise for this global.
21752         (add_constant): Likewise for return type and locals "lab", "new_rtx".
21753         (dump_table): Strengthen params "start", "barrier" and local
21754         "scan" from rtx to rtx_insn *.
21755         (broken_move): Likewise for param "insn".
21756         (untangle_mova): Likewise for params "first_mova" and "new_mova".
21757         Strengthen param "first_mova" from rtx * to rtx_insn **.
21758         (mova_p): Likewise for param "insn".
21759         (fixup_mova): Likewise for param "mova".
21760         (find_barrier): Likewise for return type, params "mova" and
21761         "from", and locals "barrier_before_mova", "found_barrier",
21762         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
21763         "label" from rtx to rtx_code_label *.
21764         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
21765         rtx to rtx_insn *.
21766         (sh_reorg): Likewise for locals "link", "scan", "barrier".
21767         (split_branches): Likewise for param "first" and local "insn".
21768         (final_prescan_insn): Likewise for param "insn".
21769         (sequence_insn_p): Likewise for locals "prev", "next".
21770         (sh_insn_length_adjustment): Likewise for param "insn".
21771         (sh_can_redirect_branch): Likewise for local "insn".
21772         (find_r0_life_regions): Likewise for locals "end", "insn".
21773         (sh_output_mi_thunk): Likewise for local "insns".
21774
21775 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21776
21777         * config/score/score.c (score_output_mi_thunk): Strengthen local
21778         "insn" from rtx to rtx_insn *.
21779         (score_prologue): Likewise.
21780
21781 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21782
21783         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
21784         1 from rtx to rtx_insn *.
21785         (s390_emit_jump): Likewise for return type.
21786         (s390_emit_call): Likewise.
21787         (s390_load_got): Likewise.
21788
21789         * config/s390/s390.c (last_scheduled_insn): Likewise for this
21790         variable.
21791         (s390_match_ccmode): Likewise for param "insn".
21792         (s390_emit_jump): Likewise for return type.
21793         (s390_split_branches): Likewise for local "label".
21794         (struct constant): Strengthen field "label" from rtx to
21795         rtx_code_label *.
21796         (struct constant_pool): Likewise for field "label".  Strengthen
21797         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
21798         rtx_insn *.
21799         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
21800         insns.
21801         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
21802         (s390_end_pool): Likewise.
21803         (s390_dump_pool): Likewise for local "insn".
21804         (s390_mainpool_start): Likewise.
21805         (s390_chunkify_start): Likewise.
21806         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
21807         with insns.  Strengthen locals "label", "jump", "barrier", "next",
21808         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
21809         (s390_chunkify_finish): Strengthen local "insn" from rtx to
21810         rtx_insn *.
21811         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
21812         "jump", "label", "next_insn".
21813         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
21814         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
21815         "tbegin_insn".
21816         (s390_load_got): Likewise for return type and local "insns".
21817         (s390_save_gprs_to_fprs): Likewise for local "insn".
21818         (s390_restore_gprs_from_fprs): Likewise.
21819         (pass_s390_early_mach::execute): Likewise.
21820         (s390_emit_prologue): Likewise for local "insns".
21821         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
21822         rtx_code_label *.
21823         (s390_emit_call): Strengthen return type and local "insn" from
21824         rtx to rtx_insn *.
21825         (s390_emit_tpf_eh_return): Likewise for local "insn".
21826         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
21827         "next_insn", introducing locals "s_pat", "rpat" to allow this.
21828         (s390_fix_long_loop_prediction): Likewise for param "insn" and
21829         local "cur_insn".
21830         (s390_non_addr_reg_read_p): Likewise for param "insn".
21831         (find_cond_jump): Likewise for return type and param "insn".
21832         (s390_swap_cmp): Likewise for param "insn".
21833         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
21834         "prev_insn", "next_insn".
21835         (s390_reorg): Likewise for locals "insn", "target".
21836         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
21837         (s390_sched_variable_issue): For now, rename param "insn" to
21838         "uncast_insn", introducing a checked cast.
21839         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
21840         insn.
21841         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
21842         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
21843
21844 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21845
21846         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
21847         param from rtx to rtx_insn *.
21848         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
21849
21850 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21851
21852         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
21853         4 from rtx to rtx_insn *.
21854         (rs6000_final_prescan_insn): Likewise for first param.
21855         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
21856         local "insn".
21857         (rs6000_get_some_local_dynamic_name): Likewise.
21858         (output_cbranch): Likewise for param "insn".
21859         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
21860         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
21861         (rs6000_emit_allocate_stack): Likewise for local "insn".
21862         (load_cr_save): Likewise.
21863         (restore_saved_cr): Likewise.
21864         (restore_saved_lr): Likewise.
21865         (emit_cfa_restores): Likewise.
21866         (rs6000_output_function_epilogue): Likewise for locals "insn" and
21867         "deleted_debug_label".
21868         (rs6000_output_mi_thunk): Likewise for local "insn".
21869         (rs6000_final_prescan_insn): Likewise for param "insn".
21870
21871 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21872
21873         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
21874         Strengthen param "insn" from rtx to rtx_insn *.
21875         * config/picochip/picochip.c (picochip_current_prescan_insn):
21876         Likewise for this variable.
21877         (picochip_final_prescan_insn): Likewise for param "insn".
21878
21879 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21880
21881         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
21882         from rtx to rtx_insn *.
21883         (pa_output_indirect_call): Likewise.
21884         (pa_adjust_insn_length): Likewise.
21885         (pa_attr_length_millicode_call): Likewise.
21886         (pa_attr_length_call): Likewise.
21887         (pa_attr_length_indirect_call): Likewise.
21888
21889         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
21890         "insn".
21891         (pa_attr_length_millicode_call): Likewise.
21892         (pa_attr_length_call): Likewise.
21893         (pa_output_call): Likewise.
21894         (pa_attr_length_indirect_call): Likewise.
21895         (pa_output_indirect_call): Likewise.
21896
21897 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21898
21899         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
21900         Strengthen first param from rtx to rtx_insn *.
21901         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
21902         param "insn".
21903
21904 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
21905
21906         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
21907         type from rtx to rtx_insn *.
21908         (mips_expand_call): Likewise.
21909         (mips_adjust_insn_length): Likewise for first param.
21910         (mips_output_conditional_branch): Likewise.
21911         (mips_output_order_conditional_branch): Likewise.
21912         (mips_final_prescan_insn): Likewise.
21913
21914         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
21915         rtx_insn * for the SEQUENCE case.
21916         (SEQ_END): Likewise.
21917         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
21918         (mips_emit_call_insn): Likewise, also for local "insn".
21919         (mips16_gp_pseudo_reg): Likewise for local "scan".
21920         (mips16_build_call_stub): Likewise for return type and for local
21921         "insn".  Introduce a new local "pattern" so that "insn" can indeed
21922         be an insn.
21923         (mips_expand_call): Strengthen return type and local "insn" from
21924         rtx to rtx_insn *.
21925         (mips_block_move_loop): Strengthen local "label" from rtx to
21926         rtx_code_label *.
21927         (mips_expand_synci_loop): Likewise for locals "label",
21928         "end_label".
21929         (mips_set_frame_expr): Strengthen local "insn" from rtx to
21930         rtx_insn *.
21931         (mips16e_collect_argument_saves): Likewise for locals "insn",
21932         "next".
21933         (mips_find_gp_ref): Likewise for param of callback for "pred"
21934         param, and for local "insn".
21935         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
21936         (mips_insn_has_flexible_gp_ref_p): Likewise.
21937         (mips_epilogue_emit_cfa_restores): Likewise for return type and
21938         local "insn".
21939         (mips_epilogue_set_cfa): Likewise for local "insn".
21940         (mips_expand_epilogue): Likewise.
21941         (mips_adjust_insn_length): Likewise for param "insn".
21942         (mips_output_conditional_branch): Likewise.
21943         (mips_output_order_conditional_branch): Likewise.
21944         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
21945         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
21946         "falu2_turn_enabled_insn".
21947         (mips_builtin_branch_and_move): Strengthen locals "true_label",
21948         "done_label" from rtx to rtx_code_label *.
21949         (struct mips16_constant): Likewise for field "label".
21950         (mips16_add_constant): Likewise for return type.
21951         (mips16_emit_constants_1): Strengthen return type and param "insn"
21952         from rtx to rtx_insn *.
21953         (mips16_emit_constants): Likewise for param "insn".
21954         (mips16_insn_length): Likewise.
21955         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
21956         to rtx_code_label *.
21957         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
21958         from rtx to rtx_insn *.
21959         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
21960         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
21961         (r10k_simplify_address): Strengthen param "insn" and local
21962         "def_insn" from rtx to rtx_insn *.
21963         (r10k_safe_address_p): Strengthen param "insn" from rtx to
21964         rtx_insn *.
21965         (r10k_needs_protection_p_1): Update target type of cast of data
21966         from to rtx to rtx_insn *.
21967         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
21968         rtx * to rtx_insn **.
21969         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
21970         rtx_insn *.
21971         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
21972         (mips_call_expr_from_insn): Likewise for param "insn".
21973         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
21974         (mips_find_pic_call_symbol): Likewise for param "insn".
21975         (mips_annotate_pic_calls): Likewise for local "insn".
21976         (mips_sim_insn): Likewise for this variable.
21977         (struct mips_sim): Likewise for field "insn" within elements of
21978         last_set array.
21979         (mips_sim_wait_reg): Likewise for param "insn".
21980         (mips_sim_wait_regs): Likewise.
21981         (mips_sim_wait_units): Likewise.
21982         (mips_sim_wait_insn): Likewise.
21983         (mips_sim_issue_insn): Likewise.
21984         (mips_sim_finish_insn): Likewise.
21985         (mips_seq_time): Likewise for param "seq" and local "insn".
21986         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
21987         locals "first", "second".
21988         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
21989         "last", "last2", "next".
21990         (mips_avoid_hazard): Likewise for params "after", "insn".
21991         (mips_reorg_process_insns): Likewise for locals "insn",
21992         "last_insn", "subinsn", "next_insn".
21993         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
21994         (mips16_split_long_branches): Likewise for locals "insn" "jump",
21995         "jump_sequence".
21996         (mips_output_mi_thunk): Likewise for local "insn".
21997         (mips_final_prescan_insn): Likewise for param "insn".
21998
21999 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22000
22001         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
22002         Strengthen return type and local "insns" from rtx to rtx_insn *.
22003         (microblaze_legitimize_tls_address): Likewise for local "insns".
22004         (microblaze_block_move_loop): Strengthen local "label" from rtx
22005         to rtx_code_label *.
22006         (microblaze_expand_prologue): Strengthen two locals named "insn"
22007         from rtx to rtx_insn *.
22008         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
22009         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
22010         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
22011         to rtx_code_label *.
22012
22013 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22014
22015         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
22016         param from rtx to rtx_insn *.
22017         (mep_reuse_lo): Likewise for third param.
22018         (mep_use_post_modify_p): Likewise for first param.
22019         (mep_core_address_length): Likewise.
22020         (mep_cop_address_length): Likewise.
22021         (mep_final_prescan_insn): Likewise.
22022         (mep_store_data_bypass_p): Likewise for both params.
22023         (mep_mul_hilo_bypass_p): Likewise.
22024         (mep_ipipe_ldc_p): Likewise for param.
22025
22026         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
22027         (mep_rewrite_mult): Likewise.
22028         (mep_rewrite_mulsi3): Likewise.
22029         (mep_rewrite_maddsi3): Likewise.
22030         (mep_reuse_lo_p_1): Likewise.
22031         (mep_reuse_lo_p): Likewise.
22032         (mep_frame_expr): Likewise.
22033         (mep_make_parallel): Likewise for both params.
22034         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
22035         local "insn".
22036         (mep_use_post_modify_p): Likewise for param "insn".
22037         (mep_core_address_length): Likewise.
22038         (mep_cop_address_length): Likewise.
22039         (mep_reg_set_in_function): Likewise for local "insn".
22040         (mep_asm_without_operands_p): Likewise.
22041         (F): Likewise for return type and param "x".
22042         (add_constant): Likewise for local "insn".
22043         (maybe_dead_move): Likewise for return type and local "insn".
22044         (mep_expand_prologue): Likewise for local "insn".
22045         (mep_final_prescan_insn): Likewise for param "insn".
22046         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
22047         "next", "follow", "x".
22048         (mep_insert_repeat_label_last): Likewise for return type, param
22049         "last_insn", and locals "next", "prev".  Strengthen param "label"
22050         from rtx to rtx_code_label *.
22051         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
22052         rtx_insn *.
22053         (struct mep_doloop_end): Likewise for fields "insn" and
22054         "fallthrough".
22055         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
22056         Strengthen local "repeat_label" from rtx to rtx_code_label *.
22057         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
22058         rtx_insn *.
22059         (mep_invert_branch): Likewise for params "insn" and "after".
22060         (mep_reorg_erepeat): Likewise for param "insns" and locals
22061         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
22062         "l" from rtx to rtx_code_label *.
22063         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
22064         from rtx to rtx_insn *.
22065         (mep_reorg_addcombine): Likewise for param "insns" and locals
22066         "i", "n".
22067         (add_sp_insn_p): Likewise for param "insn".
22068         (mep_reorg_noframe): Likewise for param "insns" and locals
22069         "start_frame_insn", "end_frame_insn", "next".
22070         (mep_reorg): Likewise for local "insns".
22071         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
22072         cast.
22073         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
22074         (mep_mul_hilo_bypass_p): Likewise.
22075         (mep_ipipe_ldc_p): Likewise for param "insn".
22076         (mep_make_bundle): Likewise for return type, param "cop" and local
22077         "insn", splitting out the latter into a new local "seq" for when it
22078         is a SEQUENCE rather than an insn.
22079         (core_insn_p): Likewise for param "insn".
22080         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
22081         "last", "first", "note", "prev", "core_insn".
22082
22083 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22084
22085         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
22086         rtx to rtx_insn *.
22087         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
22088         (m68k_final_prescan_insn): Likewise for first param.
22089
22090         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
22091         (m68k_set_frame_related): Likewise for param "insn".
22092         (output_btst): Likewise for param "insn".
22093         (m68k_final_prescan_insn): Likewise.
22094         (m68k_move_to_reg): Likewise for local "insn".
22095         (m68k_call_tls_get_addr): Likewise for local "insns".
22096         (m68k_call_m68k_read_tp): Likewise.
22097         (strict_low_part_peephole_ok): Likewise for param "first_insn".
22098         (m68k_output_mi_thunk): Likewise for local "insn".
22099
22100 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22101
22102         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
22103         first param from rtx to rtx_insn *.
22104         (iq2000_adjust_insn_length): Likewise.
22105         (iq2000_output_conditional_branch): Likewise.
22106         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
22107         "insn" and local "nop_insn".
22108         (iq2000_annotate_frame_insn): Likewise for param "insn".
22109         (iq2000_expand_prologue): Likewise for both locals "insn".
22110         (iq2000_adjust_insn_length): Likewise for param "insn".
22111         (iq2000_output_conditional_branch): Likewise.
22112
22113 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22114
22115         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
22116         "insns" from rtx to rtx_insn *.
22117         (ia64_emit_cond_move): Likewise for locals "insn", "first".
22118         (struct spill_fill_data): Likewise for field "init_after" and for
22119         elements of array field "prev_insn".
22120         (spill_restore_mem): Likewise for locals "insn", "first".
22121         (do_spill): Likewise for local "insn".
22122         (do_restore): Likewise.
22123         (ia64_expand_prologue): Likewise.
22124         (ia64_expand_epilogue): Likewise.
22125         (emit_insn_group_barriers): Likewise for locals "insn",
22126         "last_label".
22127         (emit_all_insn_group_barriers): Likewise for locals "insn",
22128         "last".
22129         (dfa_stop_insn): Likewise for this global.
22130         (dfa_pre_cycle_insn): Likewise.
22131         (ia64_nop): Likewise.
22132         (final_emit_insn_group_barriers): Likewise for locals "insn",
22133         "last".
22134         (emit_predicate_relation_info): Likewise for locals "head", "n",
22135         "insn", "b", "a".
22136         (ia64_reorg): Likewise for local "insn".
22137         (ia64_output_mi_thunk): Likewise.
22138         (expand_vec_perm_interleave_2): Likewise for local "seq".
22139
22140 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22141
22142         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
22143         param 1 "insn" from rtx to rtx_insn *.
22144         (ix86_use_lea_for_mov): Likewise.
22145         (ix86_avoid_lea_for_addr): Likewise.
22146         (ix86_split_lea_for_addr): Likewise.
22147         (ix86_lea_for_add_ok): Likewise.
22148         (ix86_output_call_insn): Likewise.
22149
22150         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
22151         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
22152         (ix86_output_function_epilogue): Likewise for locals "insn",
22153         "deleted_debug_label".
22154         (legitimize_tls_address): Likewise for local "insn".
22155         (get_some_local_dynamic_name): Likewise.
22156         (increase_distance): Likewise for params "prev", "next".
22157         (distance_non_agu_define_in_bb): Likewise for params "insn",
22158         "start" and locals "prev", "next".
22159         (distance_non_agu_define): Likewise for param "insn".
22160         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
22161         locals "next", "prev".
22162         (distance_agu_use): Likewise for param "insn".
22163         (ix86_lea_outperforms): Likewise.
22164         (ix86_ok_to_clobber_flags): Likewise.
22165         (ix86_avoid_lea_for_add): Likewise.
22166         (ix86_use_lea_for_mov): Likewise.
22167         (ix86_avoid_lea_for_addr): Likewise.
22168         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
22169         (ix86_split_lea_for_addr): Likewise for param "insn".
22170         (ix86_lea_for_add_ok): Likewise for param "insn".
22171         (ix86_expand_carry_flag_compare): Likewise for local
22172         "compare_seq".
22173         (ix86_expand_int_movcc): Likewise.
22174         (ix86_output_call_insn): Likewise for param "insn".
22175         (ix86_output_call_insn): Likewise for local "i".
22176         (x86_output_mi_thunk): Introduce local "insn", using it in place
22177         of "tmp" when dealing with insns.
22178         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
22179         "start".
22180         (ix86_pad_returns): Likewise for locals "ret", "prev".
22181         (ix86_count_insn_bb): Likewise for local "insn".
22182         (ix86_pad_short_function): Likewise for locals "ret", "insn".
22183         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
22184         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
22185         (expand_vec_perm_interleave2): Likewise for local "seq".
22186         (expand_vec_perm_vperm2f128_vblend): Likewise.
22187         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
22188         call to for_each_rtx with for_each_rtx_in_insn.
22189
22190 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22191
22192         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
22193         "label" from rtx to rtx_code_label *.
22194         (ix86_expand_prologue): Likewise.
22195         (ix86_expand_split_stack_prologue): Likewise for locals "label",
22196         "varargs_label".
22197         (ix86_split_idivmod): Likewise for locals "end_label" and
22198         "qimode_label".
22199         (ix86_expand_branch): Likewise for local "label2".
22200         (ix86_expand_aligntest): Likewise for return type and local "label".
22201         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
22202         "top_label".
22203         (expand_movmem_epilogue): Likewise for the various locals named
22204         "label".
22205         (expand_setmem_epilogue): Likewise.
22206         (expand_small_movmem_or_setmem): Likewise for local "label".
22207         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
22208         Strengthen param "done_label" from rtx * to rtx_code_label **.
22209         Strengthen locals "loop_label" and "label" from rtx to
22210         rtx_code_label *.
22211         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
22212         Likewise for locals "loop_label", "label".
22213         (ix86_expand_set_or_movmem): Likewise for locals "label",
22214         "jump_around_label", "hot_label".
22215         (ix86_expand_strlensi_unroll_1): Likewise for locals
22216         "align_2_label", align_3_label", "align_4_label", "end_0_label",
22217         "end_2_label".
22218         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
22219         (void ix86_emit_i387_log1p): Likewise for locals "label1",
22220         "label2", "jump_label".
22221         (ix86_expand_sse_compare_and_jump): Likewise for return type and
22222         local "label".
22223         (ix86_expand_lfloorceil): Likewise for local "label".
22224         (ix86_expand_rint): Likewise.
22225         (ix86_expand_floorceildf_32): Likewise.
22226         (ix86_expand_floorceil): Likewise.
22227         (ix86_expand_rounddf_32): Likewise.
22228         (ix86_expand_trunc): Likewise.
22229         (ix86_expand_truncdf_32): Likewise.
22230         (ix86_expand_round): Likewise.
22231
22232 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22233
22234         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
22235         first param from rtx to rtx_insn *.
22236         (h8300_insn_length_from_table): Likewise.
22237         * config/h8300/h8300.c (F): Likewise for return type and param
22238         "x".
22239         (Fpa): Add a checked cast to rtx_insn *.
22240         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
22241         rtx_insn *.
22242         (final_prescan_insn): Likewise for param "insn".
22243         (h8300_binary_length): Likewise.
22244         (h8300_insn_length_from_table): Likewise.
22245
22246 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22247
22248         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
22249         Strengthen first param "insn" from rtx to rtx_insn *.
22250
22251         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
22252         Likewise.
22253         (frame_insn): Likewise for return type.  Introduce local "insn"
22254         for use in place of local "x" for use as an rtx_insn *.
22255         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
22256         (epiphany_expand_prologue): Likewise for local "insn".
22257         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
22258         * config/epiphany/resolve-sw-modes.c
22259         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
22260         "seq".
22261
22262 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22263
22264         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
22265         param from rtx to rtx_insn *.
22266         (c6x_final_prescan_insn): Likewise for first param.
22267
22268         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
22269         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
22270         (c6x_expand_compare): Strengthen local "insns" from rtx to
22271         rtx_insn *.
22272         (c6x_get_unit_specifier): Likewise for param "insn".
22273         (c6x_print_unit_specifier_field): Likewise.
22274         (c6x_final_prescan_insn): Likewise.
22275         (emit_add_sp_const): Likewise for local "insn".
22276         (c6x_expand_prologue): Likewise.
22277
22278 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22279
22280         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
22281         param 1 from rtx to rtx_insn *.
22282         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
22283         the various locals named "insn".
22284         (expand_epilogue_reg_restore): Likewise.
22285         (frame_related_constant_load): Likewise.
22286         (add_to_reg): Likewise.
22287         (emit_link_insn): Likewise.
22288         (do_link): Likewise.
22289         (expand_interrupt_handler_prologue): Likewise.
22290         (branch_dest): Likewise for param "branch".
22291         (asm_conditional_branch): Likewise for param "insn".
22292         (gen_one_bundle): Likewise for elements of param "slot" and local
22293         "t".
22294         (bfin_gen_bundles): Likewise for locals "insn", "next" and
22295         elements of local "slot".
22296         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
22297         "queue", "next_queue", "prev".
22298         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
22299         (add_sched_insns_for_speculation): Likewise for local "insn".
22300
22301 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22302
22303         * config/avr/avr-protos.h (output_movqi): Strengthen first param
22304         from rtx to rtx_insn *.
22305         (output_movhi): Likewise.
22306         (output_movsisf): Likewise.
22307         (avr_out_tstsi): Likewise.
22308         (avr_out_tsthi): Likewise.
22309         (avr_out_tstpsi): Likewise.
22310         (avr_out_compare): Likewise.
22311         (avr_out_compare64): Likewise.
22312         (avr_out_movpsi): Likewise.
22313         (ashlqi3_out): Likewise.
22314         (ashlhi3_out): Likewise.
22315         (ashlsi3_out): Likewise.
22316         (ashrqi3_out): Likewise.
22317         (ashrhi3_out): Likewise.
22318         (ashrsi3_out): Likewise.
22319         (lshrqi3_out): Likewise.
22320         (lshrhi3_out): Likewise.
22321         (lshrsi3_out): Likewise.
22322         (avr_out_ashlpsi3): Likewise.
22323         (avr_out_ashrpsi3): Likewise.
22324         (avr_out_lshrpsi3): Likewise.
22325         (avr_out_fract): Likewise.
22326         (avr_out_sbxx_branch): Likewise.
22327         (avr_out_round): Likewise.
22328         (avr_out_xload): Likewise.
22329         (avr_out_movmem): Likewise.
22330         (adjust_insn_length): Likewise.
22331         (avr_out_lpm): Likewise.
22332         (reg_unused_after): Likewise.
22333         (_reg_unused_after): Likewise.
22334         (avr_jump_mode): Likewise for second param.
22335         (jump_over_one_insn): Likewise for first param.
22336         (avr_final_prescan_insn): Likewise.
22337         (out_shift_with_cnt): Likewise for second param.
22338
22339         * config/avr/avr.c (get_sequence_length): Likewise for param
22340         "insns" and local "insn".
22341         (emit_push_byte): Likewise for local "insn".
22342         (emit_push_sfr): Likewise.
22343         (avr_prologue_setup_frame): Likewise for locals "insn",
22344         "fp_plus_insns", "sp_plus_insns".
22345         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
22346         "sp_plus_insns".
22347         (avr_jump_mode): Likewise for param "insn".
22348         (avr_final_prescan_insn): Likewise.
22349         (avr_find_unused_d_reg): Likewise.
22350         (avr_out_lpm_no_lpmx): Likewise.
22351         (avr_out_lpm): Likewise.
22352         (avr_out_xload): Likewise.
22353         (output_movqi): Likewise.
22354         (output_movhi): Likewise.
22355         (out_movqi_r_mr): Likewise.
22356         (out_movhi_r_mr): Likewise.
22357         (out_movsi_r_mr): Likewise.
22358         (out_movsi_mr_r): Likewise.
22359         (output_movsisf): Likewise.
22360         (avr_out_load_psi): Likewise.
22361         (avr_out_store_psi): Likewise.
22362         (avr_out_movpsi): Likewise.
22363         (out_movqi_mr_r): Likewise.
22364         (avr_out_movhi_mr_r_xmega): Likewise.
22365         (out_movhi_mr_r): Likewise.
22366         (compare_condition): Likewise for param "insn" and local "next".
22367         (compare_sign_p): Likewise for param "insn".
22368         (compare_diff_p): Likewise.
22369         (compare_eq_p): Likewise.
22370         (avr_out_compare): Likewise.
22371         (avr_out_compare64): Likewise.
22372         (avr_out_tsthi): Likewise.
22373         (avr_out_tstpsi): Likewise.
22374         (avr_out_tstsi): Likewise.
22375         (out_shift_with_cnt): Likewise.
22376         (ashlqi3_out): Likewise.
22377         (ashlhi3_out): Likewise.
22378         (avr_out_ashlpsi3): Likewise.
22379         (ashlsi3_out): Likewise.
22380         (ashrqi3_out): Likewise.
22381         (ashrhi3_out): Likewise.
22382         (avr_out_ashrpsi3): Likewise.
22383         (ashrsi3_out): Likewise.
22384         (lshrqi3_out): Likewise.
22385         (lshrhi3_out): Likewise.
22386         (avr_out_lshrpsi3): Likewise.
22387         (lshrsi3_out): Likewise.
22388         (avr_out_fract): Likewise.
22389         (avr_out_round): Likewise.
22390         (avr_adjust_insn_length): Likewise.
22391         (reg_unused_after): Likewise.
22392         (_reg_unused_after): Likewise.
22393         (avr_compare_pattern): Likewise.
22394         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
22395         and locals "branch1", "branch2", "insn2", "jump".
22396         (avr_reorg): Likewise for local "insn".
22397         (avr_2word_insn_p): Likewise for param "insn".
22398         (jump_over_one_insn_p): Likewise.
22399         (avr_out_sbxx_branch): Likewise.
22400         (avr_out_movmem): Likewise.
22401
22402 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22403
22404         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
22405         param from rtx to rtx_insn *.
22406         (thumb1_final_prescan_insn): Likewise.
22407         (thumb2_final_prescan_insn): Likewise.
22408
22409         * config/arm/arm.c (emit_set_insn): Strengthen return type from
22410         rtx to rtx_insn *.
22411         (struct minipool_node): Likewise for field "insn".
22412         (dump_minipool): Likewise for param "scan".
22413         (create_fix_barrier): Likewise for local "from".  Strengthen local
22414         "label" from rtx to rtx_code_label *.
22415         (push_minipool_barrier): Strengthen param "insn" from rtx to
22416         rtx_insn *.
22417         (push_minipool_fix): Likewise.
22418         (note_invalid_constants): Likewise.
22419         (thumb2_reorg): Likewise for local "insn".
22420         (arm_reorg): Likewise.
22421         (thumb2_final_prescan_insn): Likewise for param
22422         "insn" and local "first_insn".
22423         (arm_final_prescan_insn): Likewise for param "insn" and locals
22424         "start_insn", "this_insn".
22425         (arm_debugger_arg_offset): Likewise for param "insn".
22426         (thumb1_emit_multi_reg_push): Likewise for return type and local
22427         "insn".
22428         (thumb1_final_prescan_insn): Likewise for param "insn".
22429         (thumb_far_jump_used_p): Likewise for local "insn".
22430         (thumb1_expand_prologue): Likewise.
22431         (arm_expand_epilogue_apcs_frame): Likewise.
22432         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
22433         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
22434         from rtx to rtx_code_label *.
22435         (arm_split_atomic_op): Likewise for local "label".
22436         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
22437
22438 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22439
22440         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
22441         first param from rtx to rtx_insn *.
22442         (arc_verify_short): Likewise.
22443         (arc_short_long): Likewise.
22444         (arc_need_delay): Likewise.
22445
22446         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
22447         "target_insn".
22448         (arc_ccfsm_advance): Likewise for param "insn" and locals
22449         "start_insn", "this_insn".
22450         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
22451         (arc_ccfsm_post_advance): Likewise for param "insn".
22452         (arc_next_active_insn): Likewise for return type and param "insn".
22453         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
22454         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
22455         (output_short_suffix): Likewise for local "insn".
22456         (arc_final_prescan_insn): Likewise for param "insn".  Remove
22457         now-redundant checked cast.
22458         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
22459         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
22460         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
22461         for use where lc_set became an insn.
22462         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
22463         rtx to rtx_insn *.
22464         (arc_get_insn_variants): Likewise for local "prev".
22465         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
22466         "next".
22467         (arc_predicate_delay_insns): Likewise for local "insn".
22468         (arc_pad_return): Likewise for local "prev".  For now, add a
22469         checked cast when extracting the insn from "final_sequence".
22470         (arc_short_long): Likewise for param "insn".
22471         (arc_need_delay): Likewise for param "insn" and local "next".
22472         (arc_label_align): Likewise for locals "prev", "next".
22473
22474 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22475
22476         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
22477         "insn" from rtx to rtx_insn *.
22478         (alpha_gp_save_rtx): Likewise for local "seq".
22479         (alpha_instantiate_decls): Likewise for local "top".
22480         (get_some_local_dynamic_name): Likewise for local "insn".
22481         (alpha_does_function_need_gp): Likewise.
22482         (set_frame_related_p): Likewise for return type and for locals
22483         "seq" and "insn".
22484         (emit_frame_store_1): Likewise for local "insn".
22485         (alpha_expand_prologue): Likewise for locals "insn", "seq".
22486         (alpha_end_function): Likewise for local "insn".
22487         (alpha_output_mi_thunk_osf): Likewise.
22488         (alphaev4_insn_pipe): Likewise for param "insn".
22489         (alphaev5_insn_pipe): Likewise.
22490         (alphaev4_next_group): Likewise for return type and param 1
22491         "insn".
22492         (alphaev5_next_group): Likewise.
22493         (alpha_align_insns_1): Likewise for return type and param 1 of
22494         callback param "next_group", and for locals "i", "next", "prev",
22495         "where", "where2", "insn".
22496
22497 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
22498
22499         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
22500         rather than modifying the stmt.
22501
22502 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22503
22504         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
22505         cgraph_state conversion.
22506
22507 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22508
22509         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
22510         Strengthen local "insns" from rtx to rtx_insn *.
22511         (aarch64_set_frame_expr): Likewise for local "insn".
22512         (aarch64_save_or_restore_fprs): Likewise.
22513         (aarch64_save_or_restore_callee_save_registers): Likewise.
22514         (aarch64_expand_prologue): Likewise.
22515         (aarch64_expand_epilogue): Likewise.
22516         (aarch64_output_mi_thunk): Likewise.
22517         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
22518         "label2" from rtx to rtx_code_label *.
22519         (aarch64_split_atomic_op): Likewise for local "label".
22520
22521 2014-08-25  Martin Liska  <mliska@suse.cz>
22522
22523         * cgraph.h (symtab_node):
22524         (bool needed_p (void)): created from decide_is_symbol_needed
22525         (bool referred_to_p (void)): created from referred_to_p
22526         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
22527         * cgraph.h (cgraph_node):
22528         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
22529         (void expand (void)): created from expand_function
22530         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
22531         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
22532         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
22533         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
22534         * cgraph.h (varpool_node):
22535         (static void add (tree decl): created from varpool_add_new_variable
22536         * cgraph.h (cgraph_edge):
22537         void remove (void);
22538         (void remove_caller (void)): created from cgraph_edge_remove_caller
22539         (void remove_callee (void)): created from cgraph_edge_remove_callee
22540         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
22541           created from cgraph_set_call_stmt
22542         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
22543         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
22544         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
22545           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
22546         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
22547           created from cgraph_speculative_call_info
22548         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
22549           int freq_scale, bool update_original)): created from cgraph_clone_edge
22550         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
22551         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
22552         (bool recursive_p (void)): created from cgraph_edge_recursive_p
22553         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
22554         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
22555         (static void rebuild_references (void)): created from cgraph_rebuild_references
22556         * cgraph.h (symbol_table):
22557         (create_reference): renamed from add_reference
22558         (maybe_create_reference): renamed from maybe_add_reference
22559         (void register_symbol (symtab_node *node)): new function
22560         (void clear_asm_symbols (void)): new function
22561         (void unregister (symtab_node *node)): new function
22562         (void release_symbol (cgraph_node *node, int uid)): new function
22563         (cgraph_node * allocate_cgraph_symbol (void)): new function
22564         (void initialize (void)): created from cgraph_init
22565         (symtab_node *first_symbol (void)):new function
22566         (asm_node *first_asm_symbol (void)):new function
22567         (symtab_node *first_defined_symbol (void)):new function
22568         (varpool_node *first_variable (void)):new function
22569         (varpool_node *next_variable (varpool_node *node)):new function
22570         (varpool_node *first_static_initializer (void)):new function
22571         (varpool_node *next_static_initializer (varpool_node *node)):new function
22572         (varpool_node *first_defined_variable (void)):new function
22573         (varpool_node *next_defined_variable (varpool_node *node)):new function
22574         (cgraph_node *first_defined_function (void)):new function
22575         (cgraph_node *next_defined_function (cgraph_node *node)):new function
22576         (cgraph_node *first_function (void)):new function
22577         (cgraph_node *next_function (cgraph_node *node)):new function
22578         (cgraph_node *first_function_with_gimple_body (void)):new function
22579         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
22580         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
22581           created from symtab_remove_unreachable_nodes
22582         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
22583         (void process_new_functions (void)): created from cgraph_process_new_functions
22584         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
22585         (bool output_variables (void)): created from varpool_node::output_variables
22586         (void output_asm_statements (void)): created from output_asm_statements
22587         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
22588         (void compile (void)): created from compile
22589         (void output_weakrefs (void)): created from output_weakrefs
22590         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
22591         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
22592           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
22593         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
22594         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
22595           created from cgraph_next_function_with_gimple_body
22596         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
22597           created from cgraph_remove_edge_removal_hook
22598         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
22599           created from cgraph_add_node_removal_hook
22600         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
22601           created from cgraph_remove_node_removal_hook
22602         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
22603           created from varpool_add_node_removal_hook
22604         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
22605           created from varpool_remove_node_removal_hook
22606         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
22607           created from cgraph_add_function_insertion_hook
22608         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
22609           created from cgraph_remove_function_insertion_hook
22610         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
22611           created from varpool_add_variable_insertion_hook
22612         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
22613           created from varpool_remove_variable_insertion_hook
22614         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
22615           created from cgraph_add_edge_duplication_hook
22616         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
22617           created from cgraph_remove_edge_duplication_hook
22618         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
22619           created from cgraph_add_node_duplication_hook
22620         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
22621           created from cgraph_remove_node_duplication_hook
22622         (void call_edge_removal_hooks (cgraph_edge *e)):
22623           created from cgraph_call_edge_removal_hooks
22624         (void call_cgraph_insertion_hooks (cgraph_node *node)):
22625           created from call_function_insertion_hooks
22626         (void call_cgraph_removal_hooks (cgraph_node *node)):
22627           created from cgraph_call_node_removal_hooks
22628         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
22629           created from cgraph_node::call_duplication_hooks
22630         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
22631           created from cgraph_call_edge_duplication_hooks
22632         (void call_varpool_removal_hooks (varpool_node *node)):
22633           created from varpool_call_node_removal_hooks
22634         (void call_varpool_insertion_hooks (varpool_node *node)):
22635           created from varpool_call_variable_insertion_hooks
22636         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
22637           created from insert_to_assembler_name_hash
22638         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
22639           created from unlink_from_assembler_name_hash
22640         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
22641           created from symtab_prevail_in_asm_name_hash
22642         (void symtab_initialize_asm_name_hash (void)):
22643           created from symtab_initialize_asm_name_hash
22644         (void change_decl_assembler_name (tree decl, tree name)):
22645           created from change_decl_assembler_name
22646         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
22647         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
22648           created from decl_assembler_name_hash
22649         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
22650           created from decl_assembler_name_equal
22651         (static hashval_t hash_node_by_assembler_name (const void *p)):
22652           created from hash_node_by_assembler_name
22653         (static int eq_assembler_name (const void *p1, const void *p2)):
22654           created from eq_assembler_name
22655
22656 2014-08-25  Marek Polacek  <polacek@redhat.com>
22657
22658         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
22659
22660 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
22661
22662         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
22663         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
22664         SWI1248_AVX512BW mode iterator.
22665
22666 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
22667
22668         PR target/62111
22669         * config/sh/predicates.md (general_extend_operand): Disable
22670         TRUNCATE before reload completes.
22671
22672 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
22673
22674         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
22675
22676 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
22677
22678         PR target/61996
22679         * config/sh/sh.opt (musermode): Allow negative form.
22680         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
22681         targets that don't support it.
22682         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
22683         Document -mno-usermode option.
22684
22685 2014-08-24  Kito Cheng  <kito@0xlab.org>
22686
22687         * system.h (CALLER_SAVE_PROFITABLE): Poison.
22688         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
22689         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
22690         * doc/tm.texi: Regenerate.
22691
22692 2014-08-24  Kito Cheng  <kito@0xlab.org>
22693
22694         * ira.c: Fix typo in comment.
22695
22696 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
22697
22698         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
22699         Deprecate c++1y. Change language to reflect greater confidence in C++14.
22700
22701 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
22702
22703         PR target/62038
22704         * config/pa/pa.c (pa_output_function_epilogue): Don't set
22705         last_address when the current function is a thunk.
22706         (pa_asm_output_mi_thunk): When we don't have named sections or they
22707         are not being used, check that thunk can reach the stub table with a
22708         short branch.
22709
22710 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
22711
22712         * web.c (union_match_dups): Strengthen param "insn" from rtx to
22713         rtx_insn *.
22714         (pass_web::execute): Likewise for local "insn".
22715
22716 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
22717
22718         * var-tracking.c (struct micro_operation_def): Strengthen field
22719         "insn" from rtx to rtx_insn *.
22720         (struct emit_note_data_def): Likewise.
22721         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
22722         (vt_stack_adjustments): Likewise for local "insn".
22723         (adjust_insn): Likewise for param "insn".
22724         (val_store): Likewise.
22725         (val_resolve): Likewise.
22726         (struct count_use_info): Likewise for field "insn".
22727         (log_op_type): Likewise for param "insn".
22728         (reverse_op): Likewise.
22729         (prepare_call_arguments): Likewise.
22730         (add_with_sets):  The initial param takes an insn, but we can't
22731         yet strengthen it from rtx to rtx_insn * since it's used as a
22732         cselib_record_sets_hook callback.  For now rename initial param
22733         from "insn" to "uncast_insn", and introduce a local "insn" of
22734         the stronger rtx_insn * type, with a checked cast.
22735         (compute_bb_dataflow): Strengthen local "insn" from rtx to
22736         rtx_insn *.
22737         (emit_note_insn_var_location): Likewise.
22738         (emit_notes_for_changes): Likewise.
22739         (emit_notes_for_differences): Likewise.
22740         (next_non_note_insn_var_location): Likewise for return type and
22741         for param "insn".
22742         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
22743         (vt_initialize): Likewise for local "insn".
22744         (delete_debug_insns): Likewise for locals "insn" and "next".
22745
22746 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
22747
22748         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
22749         rtx_insn *.
22750         (mark_constant_pool): Likewise for local "insn".
22751
22752 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
22753
22754         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
22755         rtx to rtx_insn *.
22756         (dead_debug_promote_uses): Likewise.
22757         (dead_debug_insert_temp): Likewise.
22758
22759 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
22760
22761         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
22762         from const_rtx to const rtx_insn *.
22763         (store_killed_after): Likewise.  Strengthen locals "last", "act"
22764         from rtx to rtx_insn *.
22765         (store_killed_before): Strengthen param "insn" from const_rtx to
22766         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
22767         (find_moveable_store): Strengthen param "insn" from rtx to
22768         rtx_insn *.
22769         (compute_store_table): Likewise for local "insn".
22770         (insert_insn_start_basic_block): Likewise for param "insn" and
22771         locals "prev", "before", "insn".
22772         (insert_store): For now, add a checked cast to rtx_insn * on the
22773         result of gen_move_insn.
22774         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
22775         to rtx_insn *.
22776         (replace_store_insn): Likewise.  For now, add a checked cast to
22777         rtx_insn * on the result of gen_move_insn.
22778
22779 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22780
22781         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
22782         rtx_insn *.
22783         (expand_sjlj_dispatch_table): Likewise.
22784
22785 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22786
22787         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
22788         "insn" from rtx to rtx_insn *.
22789
22790 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22791
22792         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
22793         "insn" from rtx to rtx_insn *.
22794         (dup_block_and_redirect): Likewise for param 3 "before".
22795
22796         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
22797         from rtx to rtx_insn *.
22798         (move_insn_for_shrink_wrap): Likewise.
22799         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
22800         (dup_block_and_redirect): Likewise for param "before" and local
22801         "insn".
22802         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
22803         "end".
22804         (convert_to_simple_return): Likewise for local "start".
22805
22806         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
22807         Strengthen local "insn" from rtx to rtx_insn *, for use when
22808         invoking requires_stack_frame_p.
22809
22810 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22811
22812         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
22813         rtx_insn *.
22814         (speculate_expr): Likewise for locals "orig_insn_rtx",
22815         "spec_insn_rtx".
22816         (eq_transformed_insns): Likewise for locals "i1", "i2".
22817         (check_for_new_jump): Likewise for return type and local "end".
22818         (find_new_jump): Likewise for return type and local "jump".
22819         (sel_split_edge): Likewise for local "jump".
22820         (sel_create_recovery_block): Likewise.
22821         (sel_redirect_edge_and_branch_force): Likewise.
22822         (sel_redirect_edge_and_branch): Likewise.
22823
22824 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22825
22826         * sel-sched.c (substitute_reg_in_expr): Strengthen local
22827         "new_insn" from rtx to rtx_insn *.
22828         (create_insn_rtx_with_rhs): Likewise for return type and for local
22829         "insn_rtx".
22830         (create_insn_rtx_with_lhs): Likewise.
22831         (create_speculation_check): Likewise for local "insn_rtx".
22832         (implicit_clobber_conflict_p): Likewise for local "insn".
22833         (get_expr_cost): Likewise.
22834         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
22835         (move_cond_jump): Likewise for locals "next", "prev", "link",
22836         "head", "from", "to".
22837
22838 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22839
22840         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
22841         "next" from rtx to rtx_insn *.
22842         (find_conditional_protection): Likewise for local "next".
22843         (is_conditionally_protected): Likewise for local "insn1".
22844         (is_pfree): Likewise for locals "insn1", "insn2".
22845
22846 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22847
22848         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
22849         from rtx to rtx_insn *.
22850
22851         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
22852         locals "insn1", "insn2" from rtx to rtx_insn *.
22853         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
22854         locals "insn", "prev", "last_jump", "next_tail".
22855         (schedule_ebb): Likewise for params "head", "tail".
22856         (schedule_ebbs): Likewise for locals "tail", "head".
22857
22858         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
22859         to rtx_insn on "last_insn" in one of the invocations of
22860         schedule_ebb.
22861
22862 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22863
22864         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
22865         "elem", "insn" from rtx to rtx_insn *.
22866         (change_spec_dep_to_hard): Likewise.
22867         (get_back_and_forw_lists): Likewise for local "con".
22868         (sd_add_dep): Likewise for locals "elem", "insn".
22869         (sd_resolve_dep): Likewise for locals "pro", "con".
22870         (sd_unresolve_dep): Likewise.
22871         (sd_delete_dep): Likewise.
22872         (chain_to_prev_insn): Likewise for local "pro".
22873         (find_inc): Likewise for locals "pro", "con".
22874
22875 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22876
22877         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
22878         to rtx_insn *.
22879         (reg_set_between_p): Strengthen local "insn" from const_rtx to
22880         const rtx_insn *.
22881         (modified_between_p): Strengthen local "insn" from rtx to
22882         rtx_insn *.
22883         (remove_reg_equal_equiv_notes_for_regno): Likewise.
22884         (keep_with_call_p): Strengthen local "i2" from const_rtx to
22885         const rtx_insn *.
22886
22887 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22888
22889         * resource.c (next_insn_no_annul): Strengthen local "next" from
22890         rtx to rtx_insn *.
22891         (mark_referenced_resources): Likewise for local "insn".
22892
22893 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22894
22895         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
22896         to rtx_insn *.
22897         (find_reloads): Likewise for param 1.
22898         (subst_reloads): Likewise for sole param.
22899         (find_equiv_reg): Likwise for param 2.
22900         (regno_clobbered_p): Likwise for param 2.
22901         (reload): Likewise for param 1.
22902
22903         * caller-save.c (save_call_clobbered_regs): Strengthen local
22904         "insn" from rtx to rtx_insn *.
22905         (insert_one_insn): Likewise for local "insn".
22906
22907         * reload.c (this_insn): Likewise for this global.
22908         (find_reloads): Likewise for param "insn".
22909         (find_reloads_toplev): Likewise.
22910         (find_reloads_address): Likewise.
22911         (subst_reg_equivs): Likewise.
22912         (update_auto_inc_notes): Likewise.
22913         (find_reloads_address_1): Likewise.
22914         (find_reloads_subreg_address): Likewise.
22915         (subst_reloads): Likewise.
22916         (find_equiv_reg): Likewise, also for local "p".
22917         (regno_clobbered_p): Likewise for param "insn".
22918
22919         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
22920         array.
22921         (spill_reg_store): Likewise for the elements of this array.
22922         (remove_init_insns): Likewise for local "equiv_insn".
22923         (will_delete_init_insn_p): Likewise for param "insn".
22924         (reload): Likewise for param ""first" and local "insn".
22925         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
22926         rtx_insn *.
22927         (calculate_elim_costs_all_insns): Likewise.
22928         (delete_caller_save_insns): Likewise.
22929         (spill_failure): Likewise for param "insn".
22930         (delete_dead_insn): Likewise.
22931         (set_label_offsets): Likewise.
22932         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
22933         "prev_insn".
22934         (elimination_costs_in_insn): Likewise for param "insn".
22935         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
22936         when referring to an insn.
22937         (set_initial_label_offsets): Likewise.
22938         (set_offsets_for_label): Strengthen param "insn" from rtx to
22939         rtx_insn *.
22940         (init_eliminable_invariants): Likewise for param "first" and local
22941         "insn".
22942         (fixup_eh_region_note): Likewise for param "insn".
22943         (reload_as_needed): Likewise for locals "prev", "insn",
22944         "old_next", "old_prev", "next".
22945         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
22946         "last".
22947         (reload_inheritance_insn): Strengthen elements of this array from
22948         rtx to rtx_insn *.
22949         (failed_reload): Likewise for param "insn".
22950         (choose_reload_regs): Likewise for local "insn".  Replace use of
22951         NULL_RTX with NULL when referring to an insn.
22952         (input_reload_insns): Strengthen elements of this array from rtx
22953         to rtx_insn *.
22954         (other_input_address_reload_insns): Likewise for this global.
22955         (other_input_reload_insns): Likewise for this global.
22956         (input_address_reload_insns): Likwise for the elements of this
22957         array.
22958         (inpaddr_address_reload_insns): Likwise for the elements of this
22959         array.
22960         (output_reload_insns): Likewise for the elements of this array.
22961         (output_address_reload_insns): Likewise for the elements of this
22962         array.
22963         (outaddr_address_reload_insns): Likewise for the elements of this
22964         array.
22965         (operand_reload_insns): Likewise for this global.
22966         (other_operand_reload_insns): Likewise for this global.
22967         (other_output_reload_insns): Likewise for the elements of this
22968         array.
22969         (new_spill_reg_store): Likewise for the elements of this
22970         array.
22971         (emit_input_reload_insns): Likewise for locals "insn", "temp".
22972         Strengthen local "where" from rtx * to rtx_insn **.
22973         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
22974         from rtx to rtx_insn *.
22975         (do_input_reload): Likewise for local "insn".
22976         (do_output_reload): Likewise for local "insn".
22977         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
22978         (emit_insn_if_valid_for_reload): Likewise for return type and local
22979         "last".  Add checked cast to rtx_insn when returning "insn" since
22980         this has been through emit_insn.
22981         (gen_reload): Strengthen return type and locals "last", "insn", "set"
22982         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
22983         returning "insn" since it's been through
22984         emit_insn_if_valid_for_reload at this point.
22985         (delete_output_reload): Strengthen param "insn" and locals
22986         "output_reload_insn", "i2" from rtx to rtx_insn *.
22987         (delete_address_reloads): Likewise for params "dead_insn",
22988         "current_insn" and locals "prev", "next".
22989         (delete_address_reloads_1): Likewise for params "dead_insn",
22990         "current_insn" and locals "prev", "i2".
22991         (inc_for_reload): Likewise for locals "last", "add_insn".
22992         (add_auto_inc_notes): Strengthen param "insn" from rtx to
22993         rtx_insn *.
22994
22995         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
22996         param of this duplicate of the prototype from reload.h
22997
22998 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
22999
23000         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
23001         rtx to rtx_insn *.
23002         (regstat_bb_compute_calls_crossed): Likewise.
23003
23004 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23005
23006         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
23007         to rtx_insn *.
23008         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
23009         with an insn.
23010         (regrename_analyze): Strengthen local "insn" from rtx to
23011         rtx_insn *.
23012         (scan_rtx_reg): Likewise for param "insn".
23013         (scan_rtx_address): Likewise.
23014         (scan_rtx): Likewise.
23015         (restore_operands): Likewise.
23016         (record_out_operands): Likewise.
23017         (build_def_use): Likewise for local "insn".  Replace use of
23018         NULL_RTX with NULL when dealing with an insn.
23019
23020 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23021
23022         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
23023         * reginfo.c (reg_scan): Likewise, also for local "insn".
23024         (reg_scan_mark_refs): Likewise for param "insn".
23025         (init_subregs_of_mode): Likewise for local "insn".
23026
23027 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23028
23029         * regcprop.c (struct queued_debug_insn_change): Strengthen field
23030         "insn" from rtx to rtx_insn *.
23031         (replace_oldest_value_reg): Likewise for param "insn".
23032         (replace_oldest_value_addr): Likewise.
23033         (replace_oldest_value_mem): Likewise.
23034         (apply_debug_insn_changes): Likewise for local "last_insn".
23035         (copyprop_hardreg_forward_1): Likewise for local "insn".
23036
23037 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23038
23039         * reg-stack.c (next_flags_user): Strengthen return type and param
23040         "insn" from rtx to rtx_insn *.
23041         (straighten_stack): Likewise for param "insn".
23042         (check_asm_stack_operands): Likewise.
23043         (remove_regno_note): Likewise.
23044         (emit_pop_insn): Likewise for return type, param "insn", local
23045         "pop_insn".
23046         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
23047         "limit" from rtx to rtx_insn *.
23048         (swap_to_top): Likewise for param "insn".
23049         (move_for_stack_reg): Likewise.
23050         (move_nan_for_stack_reg): Likewise.
23051         (swap_rtx_condition): Likewise.
23052         (compare_for_stack_reg): Likewise.
23053         (subst_all_stack_regs_in_debug_insn): Likewise.
23054         (subst_stack_regs_pat): Likewise, and local "insn2".
23055         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
23056         rtx_insn *.
23057         (subst_stack_regs): Likewise.
23058         (change_stack): Likewise.
23059         (convert_regs_1): Likewise for locals "insn", "next".
23060
23061 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23062
23063         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
23064         rtx_insn *.
23065         (combine_set_extension): Likewise for param "curr_insn".
23066         (transform_ifelse): Likewise for param "def_insn".
23067         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
23068         from vec<rtx> * to vec<rtx_insn *> *.
23069         (is_cond_copy_insn): Likewise for param "insn".
23070         (struct ext_state): Strengthen the four vec fields from vec<rtx>
23071         to vec<rtx_insn *>.
23072         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
23073         local "def_insn" from rtx to rtx_insn *.
23074         (get_sub_rtx): Likewise for param "def_insn".
23075         (merge_def_and_ext): Likewise.
23076         (combine_reaching_defs): Likewise.
23077         (add_removable_extension): Likewise for param "insn".
23078         (find_removable_extensions): Likewise for local "insn".
23079         (find_and_remove_re): Likewise for locals "curr_insn" and
23080         "def_insn".  Strengthen locals "reinsn_del_list" and
23081         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
23082
23083 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23084
23085         * recog.c (split_insn): Strengthen param "insn" and locals
23086         "first", "last" from rtx to rtx_insn *.
23087         (split_all_insns): Likewise for locals "insn", "next".
23088         (split_all_insns_noflow): Likewise.
23089
23090 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23091
23092         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
23093         const rtx_insn *.
23094         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
23095         (debug_rtx_find): Likewise for param 1 "x".
23096
23097         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
23098         const_rtx to const rtx_insn *.  Likewise for local "insn".
23099         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
23100         (debug_rtx_find): Likewise for param 1 "x".
23101         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
23102         from const_rtx to const rtx_insn * within the appropriate cases of
23103         the switch statement.
23104
23105         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
23106         Strengthen local "insns" from rtx to rtx_insn * since this is
23107         passed to a call to debug_rtx_list.
23108
23109 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23110
23111         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
23112         to rtx_insn *.
23113
23114         * function.c (stack_protect_epilogue): Add checked cast to
23115         rtx_insn for now when invoking predict_insn_def.
23116
23117         * predict.c (predict_insn): Strengthen param "insn" from rtx to
23118         rtx_insn *.
23119         (predict_insn_def): Likewise.
23120         (rtl_predict_edge): Likewise for local "last_insn".
23121         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
23122         const rtx_insn *.
23123         (combine_predictions_for_insn): Strengthen param "insn" from rtx
23124         to rtx_insn *.
23125         (bb_estimate_probability_locally): Likewise for local "last_insn".
23126         (expensive_function_p): Likewise for local "insn".
23127
23128         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
23129         local "jmp", since this is used when invoking predict_insn_def.
23130
23131 2014-08-22  Marek Polacek  <polacek@redhat.com>
23132
23133         PR c++/62199
23134         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
23135
23136 2014-08-22  Marek Polacek  <polacek@redhat.com>
23137
23138         PR c/61271
23139         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
23140         a comparison in parens.
23141         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
23142         in parens.
23143
23144 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23145
23146         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
23147         rtx_insn *.
23148
23149         * cprop.c (fis_get_condition): Likewise.
23150
23151         * postreload.c (reload_cse_regs): Likewise for param "first".
23152         (reload_cse_simplify): Likewise for param "insn".
23153         (reload_cse_regs_1): Likewise for local "insn".
23154         (reload_cse_simplify_set): Likewise for param "insn".
23155         (reload_cse_simplify_operands): Likewise.
23156         (struct reg_use): Likewise for field "insn".
23157         (reload_combine_purge_insn_uses): Likewise for param "insn".
23158         (fixup_debug_insns): Likewise for params "from", "to" and local
23159         "insn".
23160         (try_replace_in_use): Likewise for local "use_insn".
23161         (reload_combine_recognize_const_pattern): Likewise for param
23162         "insn" and locals "add_moved_after_insn", "use_insn".
23163         (reload_combine_recognize_pattern): Likewise for param "insn" and
23164         local "prev".
23165         (reload_combine): Likewise for locals "insn", "prev".
23166         (reload_combine_note_use): Likewise for param "insn".
23167         (move2add_use_add2_insn): Likewise.
23168         (move2add_use_add3_insn): Likewise.
23169         (reload_cse_move2add): Likewise, also for local "next".
23170         (move2add_note_store): Likewise for local "insn".
23171
23172 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23173
23174         * postreload-gcse.c (struct occr): Strengthen field "insn" from
23175         rtx to rtx_insn *.
23176         (struct unoccr): Likewise.
23177         (struct modifies_mem): Likewise.
23178         (alloc_mem): Likewise for local "insn".
23179         (insert_expr_in_table): Likewise for param "insn".
23180         (dump_expr_hash_table_entry): Likewise for local "insn".
23181         (oprs_unchanged_p): Likewise for param "insn".
23182         (load_killed_in_block_p): Likewise for local "setter".
23183         (record_last_reg_set_info): Likewise for param "insn".
23184         (record_last_reg_set_info_regno): Likewise.
23185         (record_last_mem_set_info): Likewise.
23186         (record_last_set_info): Likewise for local "last_set_insn".
23187         (record_opr_changes): Likewise for param "insn".
23188         (hash_scan_set): Likewise.
23189         (compute_hash_table): Likewise for local "insn".
23190         (get_avail_load_store_reg): Likewise for param "insn".
23191         (eliminate_partially_redundant_load): Likewise, also for locals
23192         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
23193         RTX for insns.
23194         (eliminate_partially_redundant_loads): Likewise for local "insn".
23195
23196 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23197
23198         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
23199         rtx to rtx_insn *.
23200         (expand_binop): Likewise for locals "entry_last", "last", "insns"
23201         (expand_twoval_unop): Likewise for locals entry_last", "last".
23202         (expand_twoval_binop): Likewise.
23203         (expand_twoval_binop_libfunc): Likewise for local "insns".
23204         (widen_leading): Likewise for local "last".
23205         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
23206         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
23207         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
23208         (expand_parity): Likewise for locals "last" and "seq".
23209         (expand_ffs): Likewise for local "seq".  Strengthen local
23210         "nonzero_label" from rtx to rtx_code_label *.
23211         (expand_absneg_bit): Strengthen local "insns" from rtx to
23212         rtx_insn *.
23213         (expand_unop_direct): Likewise for local "last".
23214         (expand_unop): Likewise for locals "last", "insns".
23215         (expand_abs_nojump): Likewise for local "last".
23216         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
23217         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
23218         rtx_insn *.
23219         (expand_copysign_absneg): Strengthen local "label" from rtx to
23220         rtx_code_label *.
23221         (expand_copysign_bit): Strengthen local "insns" from rtx to
23222         rtx_insn *.
23223         (struct no_conflict_data): Likewise for fields "first", "insn".
23224         (emit_libcall_block_1): Likewise for param "insns" and locals
23225         "next", "last", "insn".
23226         (emit_libcall_block): For now, add a checked cast to rtx_insn *
23227         on "insns" when invoking emit_libcall_block_1.  Ultimately we
23228         want to strengthen insns itself.
23229         (prepare_cmp_insn): Strengthen local "last" from rtx to
23230         rtx_insn *.
23231         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
23232         (prepare_float_lib_cmp): Likewise for local "insns".
23233         (emit_conditional_move): Likewise for local "last".
23234         (emit_conditional_add): Likewise.
23235         (have_sub2_insn): Likewise for local "seq".
23236         (expand_float): Likewise for local "insns".  Strengthen locals
23237         "label", "neglabel" from rtx to rtx_code_label *.
23238         (expand_fix): Likewise for locals "last", "insn", "insns" (to
23239         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
23240         (expand_fixed_convert): Likewise for local "insns" (to
23241         rtx_insn *).
23242         (expand_sfix_optab): Likewise for local "last".
23243         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
23244         to rtx_code_label *.
23245         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
23246         from rtx to rtx_insn *.
23247         (expand_atomic_fetch_op): Likewise for local "insn".
23248         (maybe_legitimize_operand_same_code): Likewise for local "last".
23249         (maybe_legitimize_operands): Likewise.
23250
23251 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23252
23253         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
23254         "insn" from rtx to rtx_insn *.
23255         (ps_rtl_insn): Likewise for return type.
23256         (doloop_register_get): Likewise for params "head", "tail" and
23257         locals "insn", "first_insn_not_to_check".
23258         (schedule_reg_move): Likewise for local "this_insn".
23259         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
23260         of gen_move_insn for now.
23261         (reset_sched_times): Strengthen local "insn" from rtx to
23262         rtx_insn *.
23263         (permute_partial_schedule): Likewise.
23264         (duplicate_insns_of_cycles): Likewise for local "u_insn".
23265         (dump_insn_location): Likewise for param "insn".
23266         (loop_canon_p): Likewise for local "insn".
23267         (sms_schedule): Likewise.
23268         (print_partial_schedule): Likewise.
23269         (ps_has_conflicts): Likewise.
23270
23271 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23272
23273         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
23274         "tailp" from rtx * to rtx_insn **.
23275
23276         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
23277         from rtx to rtx_insn *.
23278         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
23279         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
23280         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
23281         rtx to rtx_insn *.
23282         * modulo-sched.c (const_iteration_count): Strengthen return type
23283         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
23284         use of NULL_RTX with NULL when working with insns.
23285         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
23286         to rtx_insn *.
23287         (sms_schedule): Likewise.
23288         * sched-rgn.c (init_ready_list): Likewise, also for locals
23289         "src_head" and "src_next_tail".
23290         (compute_block_dependences): Likewise.
23291         (free_block_dependencies): Likewise.
23292         (debug_rgn_dependencies): Likewise.
23293         (free_rgn_deps): Likewise.
23294         (compute_priorities): Likewise.
23295         (schedule_region): Likewise.
23296         * sel-sched.c (find_ebb_boundaries): Likewise.
23297
23298         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
23299         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
23300
23301 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23302
23303         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
23304         from rtx to rtx_insn *.
23305         (new_seginfo): Likewise for param "insn".
23306         (create_pre_exit): Likewise for locals "last_insn",
23307         "before_return_copy", "return_copy".
23308         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
23309         "mode_set".
23310
23311 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23312
23313         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
23314         from rtx to rtx_insn *.
23315         (lra_push_insn): Likewise for 1st param.
23316         (lra_push_insn_and_update_insn_regno_info): Likewise.
23317         (lra_pop_insn): Likewise for return type.
23318         (lra_invalidate_insn_data): Likewise for 1st param.
23319         (lra_set_insn_deleted): Likewise.
23320         (lra_delete_dead_insn): Likewise.
23321         (lra_process_new_insns): Likewise for first 3 params.
23322         (lra_set_insn_recog_data): Likewise for 1st param.
23323         (lra_update_insn_recog_data): Likewise.
23324         (lra_set_used_insn_alternative): Likewise.
23325         (lra_invalidate_insn_regno_info): Likewise.
23326         (lra_update_insn_regno_info): Likewise.
23327         (lra_former_scratch_operand_p): Likewise.
23328         (lra_eliminate_regs_1): Likewise.
23329         (lra_get_insn_recog_data): Likewise.
23330
23331         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
23332         rtx to rtx_insn *.
23333
23334         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
23335         "mv1" and "mv2".
23336         (substitute_within_insn): New.
23337         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
23338         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
23339         Replace call to "substitute" with call to substitute_within_insn.
23340
23341         * lra-constraints.c (curr_insn): Strengthen from rtx to
23342         rtx_insn *.
23343         (get_equiv_with_elimination): Likewise for param "insn".
23344         (match_reload): Strengthen params "before" and "after" from rtx *
23345         to rtx_insn **.
23346         (emit_spill_move): Likewise for return type.  Add a checked cast
23347         to rtx_insn * on result of gen_move_insn for now.
23348         (check_and_process_move): Likewise for local "before".  Replace
23349         NULL_RTX with NULL when referring to insns.
23350         (process_addr_reg): Strengthen params "before" and "after" from
23351         rtx * to rtx_insn **.
23352         (insert_move_for_subreg): Likewise.
23353         (simplify_operand_subreg): Strengthen locals "before" and "after"
23354         from rtx to rtx_insn *.
23355         (process_address_1): Strengthen params "before" and "after" from
23356         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
23357         rtx to rtx_insn *.
23358         (process_address): Strengthen params "before" and "after" from
23359         rtx * to rtx_insn **.
23360         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
23361         (curr_insn_transform): Strengthen locals "before" and "after"
23362         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
23363         to insns.
23364         (loc_equivalence_callback): Update cast of "data", changing
23365         resulting type from rtx to rtx_insn *.
23366         (substitute_pseudo_within_insn): New.
23367         (inherit_reload_reg): Strengthen param "insn" from rtx to
23368         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
23369         NULL when referring to insns.  Add a checked cast to rtx_insn *
23370         when using usage_insn to invoke lra_update_insn_regno_info.
23371         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
23372         likewise for locals "restore", "save".  Add checked casts to
23373         rtx_insn * when using usage_insn to invoke
23374         lra_update_insn_regno_info and lra_process_new_insns.  Replace
23375         NULL_RTX with NULL when referring to insns.
23376         (split_if_necessary): Strengthen param "insn" from rtx to
23377         rtx_insn *.
23378         (update_ebb_live_info): Likewise for params "head", "tail" and local
23379         "prev_insn".
23380         (get_last_insertion_point): Likewise for return type and local "insn".
23381         (get_live_on_other_edges): Likewise for local "last".
23382         (inherit_in_ebb): Likewise for params "head", "tail" and locals
23383         "prev_insn", "next_insn", "restore".
23384         (remove_inheritance_pseudos): Likewise for local "prev_insn".
23385         (undo_optional_reloads): Likewise for local "insn".
23386
23387         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
23388         "insn".
23389         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
23390         insns.
23391         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
23392         rtx_insn *.
23393         (spill_pseudos): Likewise for local "insn".
23394         (init_elimination): Likewise.
23395         (process_insn_for_elimination): Likewise for param "insn".
23396
23397         * lra-lives.c (curr_insn): Likewise.;
23398
23399         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
23400         (remove_pseudos): Likewise for param "insn".
23401         (spill_pseudos): Likewise for local "insn".
23402         (lra_final_code_change): Likewise for locals "insn", "curr".
23403
23404         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
23405         (lra_set_insn_deleted): Likewise.
23406         (lra_delete_dead_insn): Likewise, and for local "prev".
23407         (new_insn_reg): Likewise for param "insn".
23408         (lra_set_insn_recog_data): Likewise.
23409         (lra_update_insn_recog_data): Likewise.
23410         (lra_set_used_insn_alternative): Likewise.
23411         (get_insn_freq): Likewise.
23412         (invalidate_insn_data_regno_info): Likewise.
23413         (lra_invalidate_insn_regno_info): Likewise.
23414         (lra_update_insn_regno_info): Likewise.
23415         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
23416         vec<rtx_insn *>.
23417         (lra_push_insn_1): Strengthen param "insn" from rtx to
23418         rtx_insn *.
23419         (lra_push_insn): Likewise.
23420         (lra_push_insn_and_update_insn_regno_info): Likewise.
23421         (lra_pop_insn): Likewise for return type and local "insn".
23422         (push_insns): Likewise for params "from", "to", and local "insn".
23423         (setup_sp_offset): Likewise for params "from", "last" and locals
23424         "before", "insn".
23425         (lra_process_new_insns): Likewise for params "insn", "before",
23426         "after" and local "last".
23427         (struct sloc): Likewise for field "insn".
23428         (lra_former_scratch_operand_p): Likewise for param "insn".
23429         (remove_scratches): Likewise for locals "insn", "last".
23430         (check_rtl): Likewise for local "insn".
23431         (add_auto_inc_notes): Likewise for param "insn".
23432         (update_inc_notes): Likewise for local "insn".
23433         (lra): Replace NULL_RTX with NULL when referring to insn.
23434
23435 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23436
23437         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
23438         to rtx_insn *.
23439         (resolve_reg_notes): Likewise.
23440         (resolve_simple_move): Likewise for return type, param "insn", and
23441         locals "insns", "minsn".
23442         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
23443         (resolve_use): Likewise.
23444         (resolve_debug): Likewise.
23445         (find_decomposable_shift_zext): Likewise.
23446         (resolve_shift_zext): Likewise for return type, param "insn", and
23447         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
23448         (decompose_multiword_subregs): Likewise for local "insn",
23449         "orig_insn", "decomposed_shift", "end".
23450
23451 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23452
23453         * basic-block.h (basic_block split_edge_and_insert): Strengthen
23454         param "insns" from rtx to rtx_insn *.
23455
23456         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
23457         rtx to rtx_insn *.
23458         (struct iv_to_split): Likewise.
23459         (loop_exit_at_end_p): Likewise for local "insn".
23460         (split_edge_and_insert): Likewise for param "insns".
23461         (compare_and_jump_seq): Likewise for return type, param "cinsn",
23462         and locals "seq", "jump".
23463         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
23464         "branch_code"; update invocations of compare_and_jump_seq to
23465         eliminate NULL_RTX in favor of NULL.
23466         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
23467         rtx to rtx_insn *.
23468         (reset_debug_uses_in_loop): Likewise.
23469         (analyze_insn_to_expand_var): Likewise for param "insn".
23470         (analyze_iv_to_split_insn): Likewise.
23471         (analyze_insns_in_loop): Likewise for local "insn".
23472         (insert_base_initialization): Likewise for param
23473         "insn" and local "seq".
23474         (split_iv): Likewise for param "insn" and local "seq".
23475         (expand_var_during_unrolling): Likewise for param "insn".
23476         (insert_var_expansion_initialization): Likewise for local "seq".
23477         (combine_var_copies_in_loop_exit): Likewise.
23478         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
23479         "insn".
23480         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
23481         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
23482         "next".
23483
23484 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23485
23486         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
23487         rtx_insn *.
23488         (iv_analyze_result): Likewise.
23489         (iv_analyze_expr): Likewise.
23490         (biv_p): Likewise.
23491
23492         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
23493         local "def_insn" from rtx to rtx_insn *.
23494         (get_biv_step_1): Likewise for local "insn".
23495         (iv_analyze_expr): Likewise for param "insn".
23496         (iv_analyze_def): Likewise for local "insn".
23497         (iv_analyze_op): Likewise for param "insn".
23498         (iv_analyze): Likewise.
23499         (iv_analyze_result): Likewise.
23500         (biv_p): Likewise.
23501         (suitable_set_for_replacement): Likewise.
23502         (simplify_using_initial_values): Likewise for local "insn".
23503         (iv_number_of_iterations): Likewise for param "insn".
23504         (check_simple_exit): Add checked cast to rtx_insn when invoking
23505         iv_number_of_iterations for now (until get_condition is
23506         strengthened).
23507
23508         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
23509         "insn" from rtx to rtx_insn *.
23510         (analyze_insns_in_loop): Likewise for local "insn".
23511
23512 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23513
23514         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
23515         to rtx_insn *.
23516         (struct invariant): Likewise.
23517         (hash_invariant_expr_1): Likewise for param "insn".
23518         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
23519         (find_exits): Likewise for local "insn".
23520         (create_new_invariant): Likewise for param "insn".
23521         (check_dependencies): Likewise.
23522         (find_invariant_insn): Likewise.
23523         (record_uses): Likewise.
23524         (find_invariants_insn): Likewise.
23525         (find_invariants_bb): Likewise for local "insn".
23526         (get_pressure_class_and_nregs): Likewise for param "insn".
23527         (calculate_loop_reg_pressure): Likewise for local "insn".
23528
23529 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23530
23531         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
23532         to rtx_insn *.
23533         (add_test): Likewise for locals "seq", "jump".
23534         (doloop_modify): Likewise for locals "sequence", "jump_insn".
23535
23536 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23537
23538         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
23539         rtx_insn *.
23540         (rebuild_jump_labels_chain): Likewise for param "chain".
23541
23542         * cfgexpand.c (pass_expand::execute): Add checked cast to
23543         rtx_insn * when calling rebuild_jump_labels_chain in region where
23544         we know e->insns.r is non-NULL.
23545
23546         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
23547         rtx_insn *.
23548         (rebuild_jump_labels): Likewise.
23549         (rebuild_jump_labels_chain): Likewise for param "chain".
23550         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
23551         (init_label_info): Likewise for param "f".
23552         (maybe_propagate_label_ref): Likewise for params "jump_insn",
23553         "prev_nonjump_insn".
23554         (mark_all_labels): Likewise for param "f" and locals "insn",
23555         "prev_nonjump_insn".
23556
23557 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23558
23559         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
23560         from rtx to rtx_insn *insn.
23561         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
23562         (ira_add_allocno_copy): Likewise.
23563         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
23564         rtx to rtx_insn *.
23565         (ira_create_copy): Likewise.
23566         (ira_add_allocno_copy): Likewise.
23567         (create_bb_allocnos): Likewise for local "insn".
23568         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
23569         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
23570         process_regs_for_copy for rtx_insn * param.
23571         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
23572         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
23573         process_regs_for_copy for rtx_insn * param.
23574         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
23575         * ira-costs.c (record_reg_classes): Likewise for param "insn".
23576         (record_operand_costs): Likewise.
23577         (scan_one_insn): Likewise for return type, and for param "insn".
23578         (process_bb_for_costs): Likewise for local "insn".
23579         (process_bb_node_for_hard_reg_moves): Likewise.
23580         * ira-emit.c (struct move): Likewise for field "insn".
23581         (create_move): Eliminate use of NULL_RTX when dealing with an
23582         rtx_insn *.
23583         (emit_move_list): Strengthen return type and locals "result",
23584         "insn" from rtx to rtx_insn *insn.
23585         (emit_moves): Likewise for locals "insns", "tmp".
23586         (ira_emit): Likewise for local "insn".
23587         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
23588         "insn".
23589         (find_call_crossed_cheap_reg): Likewise.
23590         (process_bb_node_lives): Likewise for local "insn".
23591         * ira.c (decrease_live_ranges_number): Likewise.
23592         (compute_regs_asm_clobbered): Likewise.
23593         (build_insn_chain): Likewise.
23594         (find_moveable_pseudos): Likewise, also locals "def_insn",
23595         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
23596         to rtx_insn **.  Add a checked cast when assigning from
23597         "closest_use" into closest_uses array in a region where we know
23598         it's a non-NULL insn.
23599         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
23600         to rtx_insn *.
23601         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
23602         "last_interesting_insn", "uin".
23603         (move_unallocated_pseudos): Likewise for locals "def_insn",
23604         "move_insn", "newinsn".
23605
23606 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23607
23608         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
23609         Strengthen locals "done_label", "do_error" from rtx to
23610         rtx_code_label *.
23611         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
23612         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
23613         rtx_code_label *.
23614         (ubsan_expand_si_overflow_neg_check): Likewise for locals
23615         "done_label", "do_error" to rtx_code_label * and local  "last" to
23616         rtx_insn *.
23617         (ubsan_expand_si_overflow_mul_check): Likewise for locals
23618         "done_label", "do_error", "large_op0", "small_op0_large_op1",
23619         "one_small_one_large", "both_ops_large", "after_hipart_neg",
23620         "after_lopart_neg", "do_overflow", "hipart_different"  to
23621         rtx_code_label * and local  "last" to rtx_insn *.
23622
23623 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23624
23625         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
23626         "insn" and "move_insn" from rtx to rtx_insn *.
23627
23628 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23629
23630         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
23631         rtx_insn *.
23632         (cheap_bb_rtx_cost_p): Likewise.
23633         (first_active_insn): Likewise for return type and local "insn".
23634         (last_active_insn):  Likewise for return type and locals "insn",
23635         "head".
23636         (struct noce_if_info): Likewise for fields "jump", "insn_a",
23637         "insn_b".
23638         (end_ifcvt_sequence): Likewise for return type and locals "insn",
23639         "seq".
23640         (noce_try_move): Likewise for local "seq".
23641         (noce_try_store_flag): Likewise.
23642         (noce_try_store_flag_constants): Likewise.
23643         (noce_try_addcc): Likewise.
23644         (noce_try_store_flag_mask): Likewise.
23645         (noce_try_cmove): Likewise.
23646         (noce_try_minmax): Likewise.
23647         (noce_try_abs): Likewise.
23648         (noce_try_sign_mask): Likewise.
23649         (noce_try_bitop): Likewise.
23650         (noce_can_store_speculate_p): Likewise for local "insn".
23651         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
23652         seq".
23653         (check_cond_move_block): Likewise for local "insn".
23654         (cond_move_convert_if_block): Likewise.
23655         (cond_move_process_if_block): Likewise for locals "seq",
23656         "loc_insn".
23657         (noce_find_if_block): Likewise for local "jump".
23658         (merge_if_block): Likewise for local "last".
23659         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
23660         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
23661         (block_has_only_trap): Likewise for return type and local "trap".
23662         (find_if_case_1): Likewise for local "jump".
23663         (dead_or_predicable): Likewise for locals "head", "end", "jump",
23664         "insn".
23665
23666 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23667
23668         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
23669         "last_insn", "loop_end" from rtx to rtx_insn *.
23670
23671         * hw-doloop.c (scan_loop): Likewise for local "insn".
23672         (discover_loop): Likewise for param "tail_insn".
23673         (discover_loops): Likewise for local "tail".
23674
23675         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
23676         cast to rtx_insn * when assigning from an rtx local to a
23677         hwloop_info's "last_insn" field.
23678
23679 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23680
23681         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
23682         (add_delay_dependencies): Strengthen local "pro" from rtx to
23683         rtx_insn *.
23684         (recompute_todo_spec): Likewise.
23685         (dep_cost_1): Likewise for locals "insn", "used".
23686         (schedule_insn): Likewise for local "dbg".
23687         (schedule_insn): Likewise for locals "pro", "next".
23688         (unschedule_insns_until): Likewise for local "con".
23689         (restore_pattern): Likewise for local "next".
23690         (estimate_insn_tick): Likewise for local "pro".
23691         (resolve_dependencies): Likewise for local "next".
23692         (fix_inter_tick): Likewise.
23693         (fix_tick_ready): Likewise for local "pro".
23694         (add_to_speculative_block): Likewise for locals "check", "twin",
23695         "pro".
23696         (sched_extend_bb): Likewise for locals "end", "insn".
23697         (init_before_recovery): Likewise for local "x".
23698         (sched_create_recovery_block): Likewise for local "barrier".
23699         (create_check_block_twin): Likewise for local "pro".
23700         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
23701         "consumer".
23702         (unlink_bb_notes): Update for change to type of bb_header.
23703         Strengthen locals "prev", "label", "note", "next" from rtx to
23704         rtx_insn *.
23705         (clear_priorities): Likewise for local "pro".
23706
23707 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23708
23709         * gcse.c (struct occr): Strengthen field "insn" from rtx to
23710         rtx_insn *.
23711         (test_insn): Likewise for this global.
23712         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
23713         const rtx_insn *.
23714         (oprs_anticipatable_p): Likewise.
23715         (oprs_available_p): Likewise.
23716         (insert_expr_in_table): Strengthen param "insn" from  rtx to
23717         rtx_insn *.
23718         (hash_scan_set): Likewise.
23719         (hash_scan_clobber): Likewise.
23720         (hash_scan_call): Likewise.
23721         (hash_scan_insn): Likewise.
23722         (compute_hash_table_work): Likewise for local "insn".
23723         (process_insert_insn): Likewise for return type and local "pat".
23724         (insert_insn_end_basic_block): Likewise for locals "new_insn",
23725         "pat", "pat_end", "maybe_cc0_setter".
23726         (pre_edge_insert): Likewise for local "insn".
23727         (pre_insert_copy_insn): Likewise for param "insn".
23728         (pre_insert_copies): Likewise for local "insn".
23729         (struct set_data): Likewise for field "insn".
23730         (single_set_gcse): Likewise for param "insn".
23731         (gcse_emit_move_after): Likewise.
23732         (pre_delete): Likewise for local "insn".
23733         (update_bb_reg_pressure): Likewise for param "from" and local
23734         "insn".
23735         (should_hoist_expr_to_dom): Likewise for param "from".
23736         (hoist_code): Likewise for local "insn".
23737         (get_pressure_class_and_nregs): Likewise for param "insn".
23738         (calculate_bb_reg_pressure): Likewise for local "insn".
23739         (compute_ld_motion_mems): Likewise.
23740
23741 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23742
23743         * genpeep.c (main): Rename param back from "uncast_ins1" to
23744         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
23745         checked cast.
23746
23747         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
23748
23749 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
23750
23751         PR target/62195
23752         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
23753         documentation to state it is only for VSX operations.
23754
23755         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
23756         constraint only active if VSX.
23757
23758         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
23759         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
23760         (lfiwzx): Likewise.
23761
23762 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23763
23764         * fwprop.c (single_def_use_dom_walker::before_dom_children):
23765         Strengthen local "insn" from rtx to rtx_insn *.
23766         (use_killed_between): Likewise for param "target_insn".
23767         (all_uses_available_at): Likewise for param "target_insn" and
23768         local "next".
23769         (update_df_init): Likewise for params "def_insn", "insn".
23770         (update_df): Likewise for param "insn".
23771         (try_fwprop_subst): Likewise for param "def_insn" and local
23772         "insn".
23773         (free_load_extend): Likewise for param "insn".
23774         (forward_propagate_subreg): Likewise for param "def_insn" and
23775         local "use_insn".
23776         (forward_propagate_asm): Likewise for param "def_insn" and local
23777         "use_insn".
23778         (forward_propagate_and_simplify): Likewise for param "def_insn"
23779         and local "use_insn".
23780         (forward_propagate_into): Likewise for locals "def_insn" and
23781         "use_insn".
23782
23783 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23784
23785         * function.c (emit_initial_value_sets): Strengthen local "seq"
23786         from rtx to rtx_insn *.
23787         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
23788         local "seq".
23789         (instantiate_virtual_regs): Likewise for local "insn".
23790         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
23791         (reorder_blocks_1): Likewise for param "insns" and local "insn".
23792         (expand_function_end): Likewise for locals "insn" and "seq".
23793         (epilogue_done): Likewise for local "insn".
23794         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
23795         "last", "trial".
23796         (reposition_prologue_and_epilogue_notes): Likewise for locals
23797         "insn", "last", "note", "first".
23798         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
23799         (pass_match_asm_constraints::execute): Likewise for local "insn".
23800
23801 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23802
23803         * output.h (final_scan_insn): Strengthen return type from rtx to
23804         rtx_insn *.
23805         (final_forward_branch_p): Likewise for param.
23806         (current_output_insn): Likewise for this global.
23807
23808         * final.c (rtx debug_insn): Likewise for this variable.
23809         (current_output_insn): Likewise.
23810         (get_attr_length_1): Rename param "insn" to "uncast_insn",
23811         adding "insn" back in as an rtx_insn * with a checked cast, so
23812         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
23813         first param.
23814         (compute_alignments): Strengthen local "label" from rtx to
23815         rtx_insn *.
23816         (shorten_branches): Rename param from "first" to "uncast_first",
23817         introducing a new local rtx_insn * "first" using a checked cast to
23818         effectively strengthen "first" from rtx to rtx_insn * without
23819         affecting the type signature.  Strengthen locals "insn", "seq",
23820         "next", "label" from rtx to rtx_insn *.
23821         (change_scope): Strengthen param "orig_insn" and local "insn" from
23822         rtx to rtx_insn *.
23823         (final_start_function): Rename param from "first" to "uncast_first",
23824         introducing a new local rtx_insn * "first" using a checked cast to
23825         effectively strengthen "first" from rtx to rtx_insn * without
23826         affecting the type signature.  Strengthen local "insn" from rtx to
23827         rtx_insn *.
23828         (dump_basic_block_info): Strengthen param "insn" from rtx to
23829         rtx_insn *.
23830         (final): Rename param from "first" to "uncast_first",
23831         introducing a new local rtx_insn * "first" using a checked cast to
23832         effectively strengthen "first" from rtx to rtx_insn * without
23833         affecting the type signature.  Strengthen locals "insn", "next"
23834         from rtx to rtx_insn *.
23835         (output_alternate_entry_point): Strengthen param "insn" from rtx to
23836         rtx_insn *.
23837         (call_from_call_insn): Strengthen param "insn" from rtx to
23838         rtx_call_insn *.
23839         (final_scan_insn): Rename param from "insn" to "uncast_insn",
23840         introducing a new local rtx_insn * "insn" using a checked cast to
23841         effectively strengthen "insn" from rtx to rtx_insn * without
23842         affecting the type signature.  Strengthen return type and locals
23843         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
23844         now-redundant checked cast to rtx_insn * from both invocations of
23845         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
23846         introducing a local "call_insn" for use when invoking
23847         call_from_call_insn.
23848         (notice_source_line): Strengthen param "insn" from rtx to
23849         rtx_insn *.
23850         (leaf_function_p): Likewise for local "insn".
23851         (final_forward_branch_p): Likewise.
23852         (leaf_renumber_regs): Likewise for param "first".
23853         (rest_of_clean_state): Likewise for locals "insn" and "next".
23854         (self_recursive_call_p): Likewise for param "insn".
23855         (collect_fn_hard_reg_usage): Likewise for local "insn".
23856         (get_call_fndecl): Likewise for param "insn".
23857         (get_call_cgraph_rtl_info): Likewise.
23858         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
23859         introducing a new local rtx_insn * "insn" using a checked cast to
23860         effectively strengthen "insn" from rtx to rtx_insn * without
23861         affecting the type signature.
23862
23863         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
23864         cast when assigning from param "insn" to current_output_insn.
23865         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
23866         so that we can assign it back to current_output_insn.
23867
23868 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23869
23870         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
23871         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
23872         atmxt540s and atmxt540sreva devices.
23873         * config/avr/avr-tables.opt: Regenerate.
23874         * config/avr/t-multilib: Regenerate.
23875         * doc/avr-mmcu.texi: Regenerate.
23876
23877 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23878
23879         * expr.c (convert_move): Strengthen local "insns" from rtx to
23880         rtx_insn *.
23881         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
23882         "top_label" from rtx to rtx_code_label *.
23883         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
23884         rtx_insn *.
23885         (emit_single_push_insn): Likewise for locals "prev", "last".
23886         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
23887         to rtx_code_label *.
23888         (store_constructor): Likewise for locals "loop_start", "loop_end".
23889         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
23890         rtx_insn *.
23891         (expand_expr_real_2): Likewise.
23892         (expand_expr_real_1): Strengthen local "label" from rtx to
23893         rtx_code_label *.
23894
23895 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23896
23897         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
23898         from rtx to rtx_insn *.
23899         (store_bit_field_1): Likewise.
23900         (extract_bit_field_1): Likewise.
23901         (expand_mult_const): Likewise for local "insns".
23902         (expmed_mult_highpart): Strengthen local "label" from rtx to
23903         rtx_code_label *.
23904         (expand_smod_pow2): Likewise.
23905         (expand_sdiv_pow2): Likewise.
23906         (expand_divmod): Strengthen locals "last", "insn" from rtx to
23907         rtx_insn *.  Strengthen locals "label", "label1", "label2",
23908         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
23909         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
23910         (emit_store_flag): Likewise.
23911         (emit_store_flag_force): Strengthen local "label" from rtx to
23912         rtx_code_label *.
23913         (do_cmp_and_jump): Likewise for param "label".
23914
23915 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23916
23917         * explow.c (force_reg): Strengthen local "insn" from rtx to
23918         rtx_insn *.
23919         (adjust_stack_1): Likewise.
23920         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
23921         "final_label", "available_label", "space_available" from rtx to
23922         rtx_code_label *.
23923         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
23924         (anti_adjust_stack_and_probe): Likewise.
23925
23926 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23927
23928         * except.h (sjlj_emit_function_exit_after): Strengthen param
23929         "after" from rtx to rtx_insn *.  This is only called with
23930         result of get_last_insn (in function.c) so type-change should be
23931         self-contained.
23932
23933         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
23934         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
23935         to rtx_insn *.  These fields are only used from except.c so this
23936         type-change should be self-contained to this patch.
23937
23938         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
23939         local "last" from rtx to rtx_insn *.
23940         (dw2_build_landing_pads): Likewise for local "seq".
23941         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
23942         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
23943         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
23944         rtx to rtx_insn *.
23945         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
23946         to rtx_insn *.
23947         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
23948         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
23949         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
23950         referring to an insn.  Strengthen local "dispatch_label" from
23951         rtx to rtx_code_label *.
23952         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
23953         rtx_insn *.
23954         (expand_eh_return): Strengthen local "around_label" from
23955         rtx to rtx_code_label *.
23956         (convert_to_eh_region_ranges): Strengthen locals "iter",
23957         "last_action_insn", "first_no_action_insn",
23958         "first_no_action_insn_before_switch",
23959         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
23960
23961 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23962
23963         * dwarf2out.c (last_var_location_insn): Strengthen this variable
23964         from rtx to rtx_insn *.
23965         (cached_next_real_insn): Likewise.
23966         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
23967         working with insns.
23968         (dwarf2out_var_location): Strengthen locals "next_real",
23969         "next_note", "expected_next_loc_note", "last_start", "insn" from
23970         rtx to rtx_insn *.
23971
23972 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23973
23974         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
23975         from rtx to rtx_insn *.
23976         (create_pseudo_cfg): Likewise for local "insn".
23977
23978 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
23979
23980         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
23981         from rtx to rtx_insn *.
23982         (df_bb_regno_last_def_find): Likewise.
23983
23984         * df-problems.c (df_rd_bb_local_compute): Likewise.
23985         (df_lr_bb_local_compute): Likewise.
23986         (df_live_bb_local_compute): Likewise.
23987         (df_chain_remove_problem): Likewise.
23988         (df_chain_create_bb): Likewise.
23989         (df_word_lr_bb_local_compute): Likewise.
23990         (df_remove_dead_eq_notes): Likewise for param "insn".
23991         (df_note_bb_compute): Likewise for local "insn".
23992         (simulate_backwards_to_point): Likewise.
23993         (df_md_bb_local_compute): Likewise.
23994
23995         * df-scan.c (df_scan_free_bb_info): Likewise.
23996         (df_scan_start_dump): Likewise.
23997         (df_scan_start_block): Likewise.
23998         (df_install_ref_incremental): Likewise for local "insn".
23999         (df_insn_rescan_all): Likewise.
24000         (df_reorganize_refs_by_reg_by_insn): Likewise.
24001         (df_reorganize_refs_by_insn_bb): Likewise.
24002         (df_recompute_luids): Likewise.
24003         (df_bb_refs_record): Likewise.
24004         (df_update_entry_exit_and_calls): Likewise.
24005         (df_bb_verify): Likewise.
24006
24007 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24008
24009         * ddg.h (struct ddg_node): Strengthen fields "insn" and
24010         "first_note" from rtx to rtx_insn *.
24011         (get_node_of_insn): Likewise for param 2 "insn".
24012         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
24013
24014         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
24015         rtx_insn *.
24016         (mem_write_insn_p): Likewise.
24017         (mem_access_insn_p): Likewise.
24018         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
24019         (def_has_ccmode_p): Likewise for param "insn".
24020         (add_cross_iteration_register_deps): Likewise for locals
24021         "def_insn" and "use_insn".
24022         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
24023         (build_intra_loop_deps): Likewise for local "src_insn".
24024         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
24025         to rtx_insn *.
24026         (get_node_of_insn): Likewise for param "insn".
24027
24028 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24029
24030         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
24031         (deletable_insn_p): Strengthen param "insn" from rtx to
24032         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
24033         find_call_stack_args, since this is guarded by CALL_P (insn).
24034         (marked_insn_p): Strengthen param "insn" from rtx to
24035         rtx_insn *.
24036         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
24037         invoking find_call_stack_args, since this is guarded by
24038         CALL_P (insn).
24039         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
24040         rtx_insn *; we know this is an insn since this was called by
24041         mark_nonreg_stores.
24042         (mark_nonreg_stores_2): Likewise.
24043         (mark_nonreg_stores): Strengthen param "insn" from rtx to
24044         rtx_insn *.
24045         (find_call_stack_args): Strengthen param "call_insn" from rtx to
24046         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
24047         to rtx_insn *.
24048         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
24049         from rtx to rtx_insn *.
24050         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
24051         "next", "ref_insn".
24052         (delete_unmarked_insns): Likewise for locals "insn", "next".
24053         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
24054         (mark_reg_dependencies): Likewise for param "insn".
24055         (rest_of_handle_ud_dce): Likewise for local "insn".
24056         (word_dce_process_block): Likewise.
24057         (dce_process_block): Likewise.
24058
24059 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24060
24061         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
24062         from rtx to rtx_insn *.
24063         (struct change_cc_mode_args): Likewise for field "insn".
24064         (this_insn): Strengthen from rtx to rtx_insn *.
24065         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
24066         with insn.
24067         (validate_canon_reg): Strengthen param "insn" from rtx to
24068         rtx_insn *.
24069         (canon_reg): Likewise.
24070         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
24071         dealing with insn.
24072         (record_jump_equiv): Strengthen param "insn" from rtx to
24073         rtx_insn *.
24074         (try_back_substitute_reg): Likewise, also for locals "prev",
24075         "bb_head".
24076         (find_sets_in_insn): Likewise for param "insn".
24077         (canonicalize_insn): Likewise.
24078         (cse_insn): Likewise.  Add a checked cast.
24079         (invalidate_from_clobbers): Likewise for param "insn".
24080         (invalidate_from_sets_and_clobbers): Likewise.
24081         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
24082         dealing with insn.
24083         (cse_prescan_path): Strengthen local "insn" from rtx to
24084         rtx_insn *.
24085         (cse_extended_basic_block): Likewise for locals "insn" and
24086         "prev_insn".
24087         (cse_main): Likewise for param "f".
24088         (check_for_label_ref): Likewise for local "insn".
24089         (set_live_p): Likewise for second param ("insn").
24090         (insn_live_p): Likewise for first param ("insn") and for local
24091         "next".
24092         (cse_change_cc_mode_insn): Likewise for first param "insn".
24093         (cse_change_cc_mode_insns): Likewise for first and second params
24094         "start" and "end".
24095         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
24096         and "end".
24097         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
24098         "cc_src_insn".
24099
24100 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
24101             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
24102             Anna Tikhonova  <anna.tikhonova@intel.com>
24103             Ilya Tocar  <ilya.tocar@intel.com>
24104             Andrey Turetskiy  <andrey.turetskiy@intel.com>
24105             Ilya Verbin  <ilya.verbin@intel.com>
24106             Kirill Yukhin  <kirill.yukhin@intel.com>
24107             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
24108
24109         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
24110         New.
24111         * config/i386/sse.md
24112         (define_mode_iterator VI248_AVX2): Delete.
24113         (define_mode_iterator VI2_AVX2_AVX512BW): New.
24114         (define_mode_iterator VI48_AVX2): Ditto.
24115         (define_insn <shift_insn><mode>3): Delete.
24116         (define_insn "<shift_insn><mode>3<mask_name>" with
24117         VI2_AVX2_AVX512BW): New.
24118         (define_insn "<shift_insn><mode>3<mask_name>" with
24119         VI48_AVX2): Ditto.
24120
24121 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
24122             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
24123             Anna Tikhonova  <anna.tikhonova@intel.com>
24124             Ilya Tocar  <ilya.tocar@intel.com>
24125             Andrey Turetskiy  <andrey.turetskiy@intel.com>
24126             Ilya Verbin  <ilya.verbin@intel.com>
24127             Kirill Yukhin  <kirill.yukhin@intel.com>
24128             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
24129
24130         * config/i386/sse.md
24131         (define_mode_iterator VI4F_BRCST32x2): New.
24132         (define_mode_attr 64x2_mode): Ditto.
24133         (define_mode_attr 32x2mode): Ditto.
24134         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
24135         with VI4F_BRCST32x2): Ditto.
24136         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
24137         with V16FI mode iterator): Ditto.
24138         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
24139         with V16FI): Ditto.
24140         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
24141         with VI8F_BRCST64x2): Ditto.
24142
24143 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
24144             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
24145             Anna Tikhonova  <anna.tikhonova@intel.com>
24146             Ilya Tocar  <ilya.tocar@intel.com>
24147             Andrey Turetskiy  <andrey.turetskiy@intel.com>
24148             Ilya Verbin  <ilya.verbin@intel.com>
24149             Kirill Yukhin  <kirill.yukhin@intel.com>
24150             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
24151
24152         * config/i386/sse.md
24153         (define_mode_iterator VI8_AVX512VL): New.
24154         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
24155
24156 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
24157
24158         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
24159         (define_mode_iterator V48_AVX512VL): New.
24160         (define_mode_iterator V12_AVX512VL): Ditto.
24161         (define_insn <avx512>_load<mode>_mask): Split into two similar
24162         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
24163         Refactor output template.
24164         (define_insn "<avx512>_store<mode>_mask"): Ditto.
24165
24166 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24167
24168         * cprop.c (struct occr): Strengthen field "insn" from rtx to
24169         rtx_insn *.
24170         (reg_available_p): Likewise for param "insn".
24171         (insert_set_in_table): Likewise.
24172         (hash_scan_set): Likewise.
24173         (hash_scan_insn): Likewise.
24174         (make_set_regs_unavailable): Likewise.
24175         (compute_hash_table_work): Likewise for local "insn".
24176         (reg_not_set_p): Strengthen param "insn" from const_rtx to
24177         const rtx_insn *.
24178         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
24179         (try_replace_reg): Likewise.
24180         (find_avail_set): Likewise.
24181         (cprop_jump): Likewise for params "setcc", "jump".
24182         (constprop_register): Likewise for param "insn".
24183         (cprop_insn): Likewise.
24184         (do_local_cprop): Likewise.
24185         (local_cprop_pass): Likewise for local "insn".
24186         (bypass_block): Likewise for params "setcc" and "jump".
24187         (bypass_conditional_jumps): Likewise for locals "setcc" and
24188         "insn".
24189         (one_cprop_pass): Likewise for local "insn".
24190
24191 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24192
24193         * compare-elim.c (struct comparison_use): Strengthen field "insn"
24194         from rtx to rtx_insn *.
24195         (struct comparison): Likewise, also for field "prev_clobber".
24196         (conforming_compare): Likewise for param "insn".
24197         (arithmetic_flags_clobber_p): Likewise.
24198         (find_flags_uses_in_insn): Likewise.
24199         (find_comparison_dom_walker::before_dom_children): Likewise for
24200         locals "insn", "next", "last_clobber".
24201         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
24202
24203 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24204
24205         * combine-stack-adj.c (struct csa_reflist): Strengthen field
24206         "insn" from rtx to rtx_insn *.
24207         (single_set_for_csa): Likewise for param "insn".
24208         (record_one_stack_ref): Likewise.
24209         (try_apply_stack_adjustment): Likewise.
24210         (struct record_stack_refs_data): Likewise for field "insn".
24211         (maybe_move_args_size_note): Likewise for params "last" and "insn".
24212         (prev_active_insn_bb): Likewise for return type and param "insn".
24213         (next_active_insn_bb): Likewise.
24214         (force_move_args_size_note): Likewise for params "prev" and "last"
24215         and locals "test", "next_candidate", "prev_candidate".
24216         (combine_stack_adjustments_for_block): Strengthen locals
24217         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
24218         rtx_insn *.
24219
24220 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24221
24222         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
24223         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
24224         (subst_insn): Likewise for this variable.
24225         (added_links_insn): Likewise.
24226         (struct insn_link): Likewise for field "insn".
24227         (alloc_insn_link): Likewise for param "insn".
24228         (struct undobuf): Likewise for field "other_insn".
24229         (find_single_use): Likewise for param "insn" and local "next".
24230         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
24231         (delete_noop_moves): Likewise for locals "insn", "next".
24232         (create_log_links): Likewise for locals "insn", "use_insn".
24233         Strengthen local "next_use" from rtx * to rtx_insn **.
24234         (insn_a_feeds_b): Likewise for params "a", "b".
24235         (combine_instructions): Likewise for param "f" and locals "insn",
24236         "next", "prev", "first", "last_combined_insn", "link", "link1",
24237         "temp".  Replace use of NULL_RTX with NULL when referring to
24238         insns.
24239         (setup_incoming_promotions): Likewise for param "first"
24240         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
24241         (can_combine_p): Likewise for params "insn", "i3", "pred",
24242         "pred2", "succ", "succ2" and for local "p".
24243         (combinable_i3pat): Likewise for param "i3".
24244         (cant_combine_insn_p): Likewise for param "insn".
24245         (likely_spilled_retval_p): Likewise.
24246         (adjust_for_new_dest): Likewise.
24247         (update_cfg_for_uncondjump): Likewise, also for local "insn".
24248         (try_combine): Likewise for return type and for params "i3", "i2",
24249         "i1", "i0", "last_combined_insn", and for locals "insn",
24250         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
24251         "i0_insn".  Eliminate local "tem" in favor of new locals
24252         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
24253         checked cast for now to rtx_insn * on the return type of
24254         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
24255         insns.
24256         (find_split_point): Strengthen param "insn" from rtx to
24257         rtx_insn *.
24258         (simplify_set): Likewise for local "other_insn".
24259         (recog_for_combine): Likewise for param "insn".
24260         (record_value_for_reg): Likewise.
24261         (record_dead_and_set_regs_1): Likewise for local
24262         "record_dead_insn".
24263         (record_dead_and_set_regs): Likewise for param "insn".
24264         (record_promoted_value): Likewise.
24265         (check_promoted_subreg): Likewise.
24266         (get_last_value_validate): Likewise.
24267         (reg_dead_at_p): Likewise.
24268         (move_deaths): Likewise for param "to_insn".
24269         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
24270         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
24271         in favor of new locals "tem_note" and "tem_insn", the latter being
24272         an rtx_insn *.
24273         (distribute_links): Strengthen locals "place", "insn" from rtx to
24274         rtx_insn *.
24275
24276 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24277
24278         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
24279         than a const_rtx.
24280         (can_delete_label_p): Require a const rtx_code_label * rather than
24281         a const_rtx.
24282         (delete_insn): Add checked cast to rtx_code_label * when we know
24283         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
24284         rtx to rtx_insn *.
24285         (delete_insn_chain): Strengthen locals "prev" and "current" from
24286         rtx to rtx_insn *.  Add a checked cast when assigning from
24287         "finish" (strengthening the params will come later).  Add a
24288         checked cast to rtx_note * in region where we know
24289         NOTE_P (current).
24290         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
24291         rtx_insn *.
24292         (compute_bb_for_insn): Likewise.
24293         (free_bb_for_insn): Likewise for local "insn".
24294         (compute_bb_for_insn): Likewise.
24295         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
24296         local "insn" from rtx to rtx_insn *
24297         (flow_active_insn_p): Require a const rtx_insn * rather than a
24298         const_rtx.
24299         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
24300         rtx_insn *.
24301         (can_fallthru): Likewise for locals "insn" and "insn2".
24302         (bb_note): Likewise for local "note".
24303         (first_insn_after_basic_block_note): Likewise for local "note" and
24304         for return type.
24305         (rtl_split_block): Likewise for locals "insn" and "next".
24306         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
24307         "end".
24308         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
24309         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
24310         "prev", "tmp".
24311         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
24312         them), "kill_from", "barrier", "new_insn".
24313         (patch_jump_insn): Likewise for params "insn", "old_label".
24314         (redirect_branch_edge): Likewise for locals "old_label", "insn".
24315         (force_nonfallthru_and_redirect): Likewise for locals "insn",
24316         "old_label", "new_label".
24317         (rtl_tidy_fallthru_edge): Likewise for local "q".
24318         (rtl_split_edge): Likewise for locals "before", "last".
24319         (commit_one_edge_insertion): Likewise for locals "before",
24320         "after", "insns", "tmp", "last", adding a checked cast where
24321         currently necessary.
24322         (commit_edge_insertions): Likewise.
24323         (rtl_dump_bb): Likewise for locals "insn", "last".
24324         (print_rtl_with_bb): Likewise for local "x".
24325         (rtl_verify_bb_insns): Likewise for local "x".
24326         (rtl_verify_bb_pointers): Likewise for local "insn".
24327         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
24328         "head", "end".
24329         (rtl_verify_fallthru): Likewise for local "insn".
24330         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
24331         (purge_dead_edges): Likewise for local "insn".
24332         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
24333         (skip_insns_after_block): Likewise for return type and for locals
24334         "insn", "last_insn", "next_head", "prev".
24335         (record_effective_endpoints): Likewise for locals "next_insn",
24336         "insn", "end".
24337         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
24338         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
24339         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
24340         (duplicate_insn_chain): For now, add checked cast from rtx to
24341         rtx_insn * when returning insn.
24342         (cfg_layout_duplicate_bb): Likewise for local "insn".
24343         (cfg_layout_delete_block): Likewise for locals "insn", "next",
24344         "prev", "remaints".
24345         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
24346         (rtl_block_empty_p): Likewise.
24347         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
24348         "split_point", "last".
24349         (rtl_block_ends_with_call_p): Likewise for local "insn".
24350         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
24351         const rtx_insn *.
24352         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
24353         "split_at_insn" from rtx to rtx_insn *.
24354         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
24355         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
24356         to const rtx_insn *.
24357         (rtl_account_profile_record): Likewise.
24358
24359 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24360
24361         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
24362         rtx to rtx_insn *.
24363         (average_num_loop_insns): Likewise.
24364         (init_set_costs): Likewise for local "seq".
24365         (seq_cost): Likewise for param "seq", from const_rtx to const
24366         rtx_insn *.
24367
24368 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24369
24370         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
24371         rtx to rtx_insn *.
24372
24373 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24374
24375         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
24376         "f1" and "f2" from rtx * to rtx_insn **.
24377         (flow_find_head_matching_sequence): Likewise.
24378
24379         * cfgcleanup.c (try_simplify_condjump): Strengthen local
24380         "cbranch_insn" from rtx to rtx_insn *.
24381         (thread_jump): Likewise for local "insn".
24382         (try_forward_edges): Likewise for local "last".
24383         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
24384         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
24385         "real_b_end".
24386         (can_replace_by): Likewise for params "i1", "i2".
24387         (old_insns_match_p): Likewise.
24388         (merge_notes): Likewise.
24389         (walk_to_nondebug_insn): Likewise for param "i1".
24390         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
24391         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
24392         "afterlast1", "afterlast2" from rtx to rtx_insn *.
24393         (flow_find_head_matching_sequence): Strengthen params "f1" and
24394         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
24395         "last1", "last2", "beforelast1", "beforelast2" from rtx to
24396         rtx_insn *.
24397         (outgoing_edges_match): Likewise for locals "last1", "last2".
24398         (try_crossjump_to_edge): Likewise for local "insn".
24399         Replace call to for_each_rtx with for_each_rtx_in_insn.
24400
24401         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
24402         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
24403         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
24404         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
24405         (try_optimize_cfg): Strengthen local "last" from rtx to
24406         rtx_insn *.
24407         (delete_dead_jumptables): Likewise for locals "insn", "next",
24408         "label".
24409
24410         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
24411         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
24412         "rtx else_first_tail", to reflect the basic-block.h changes above.
24413
24414 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24415
24416         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
24417         rtx_insn *.
24418         (purge_dead_tablejump_edges): Likewise.
24419         (find_bb_boundaries): Likewise for locals "insn", "end",
24420         "flow_transfer_insn".
24421
24422 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24423
24424         * caller-save.c (save_call_clobbered_regs): Strengthen locals
24425         "ins" and "prev" from rtx to rtx_insn *.
24426
24427 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24428
24429         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
24430         rtx_insn *.
24431         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
24432         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
24433         "scan_start".
24434         (load_register_parameters): Likewise for local "before_arg".
24435         (check_sibcall_argument_overlap): Likewise for param "insn".
24436         (expand_call): Likewise for locals "normal_call_insns",
24437         "tail_call_insns", "insns", "before_call", "after_args",
24438         "before_arg", "last", "prev".  Strengthen one of the "last" from
24439         rtx to rtx_call_insn *.
24440         (fixup_tail_calls): Strengthen local "insn" from rtx to
24441         rtx_insn *.
24442         (emit_library_call_value_1): Likewise for locals "before_call" and
24443         "last".
24444
24445 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24446
24447         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
24448         and "last" from rtx to rtx_insn *.
24449         (expand_builtin_nonlocal_goto): Likewise for local "insn".
24450         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
24451         rtx_call_insn *.
24452         (expand_errno_check): Strengthen local "lab" from rtx to
24453         rtx_code_label *.
24454         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
24455         rtx_insn *.
24456         (expand_builtin_mathfn_2): Likewise.
24457         (expand_builtin_mathfn_ternary): Likewise.
24458         (expand_builtin_mathfn_3): Likewise.
24459         (expand_builtin_interclass_mathfn): Likewise for local "last".
24460         (expand_builtin_int_roundingfn): Likewise for local "insns".
24461         (expand_builtin_int_roundingfn_2): Likewise.
24462         (expand_builtin_strlen): Likewise for local "before_strlen".
24463         (expand_builtin_strncmp): Likewise for local "seq".
24464         (expand_builtin_signbit): Likewise for local "last".
24465         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
24466         from rtx to rtx_code_label *.
24467         (expand_stack_restore):  Strengthen local "prev" from rtx to
24468         rtx_insn *.
24469
24470 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24471
24472         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
24473         to rtx_insn *.
24474         (struct btr_def_s): Likewise.
24475         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
24476         const rtx_insn *.
24477         (add_btr_def): Likewise.
24478         (new_btr_user): Likewise.
24479         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
24480         rtx to rtx_insn *.
24481         (link_btr_uses): Likewise.
24482         (move_btr_def): Likewise for locals "insp", "old_insn",
24483         "new_insn".  Add checked cast to rtx_insn * for now on result of
24484         gen_move_insn.
24485         (can_move_up): Strengthen param "insn" from const_rtx to
24486         const rtx_insn *.
24487
24488 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24489
24490         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
24491         rtx_insn *.
24492         (get_uncond_jump_length): Likewise for locals "label", "jump".
24493         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
24494         "jump", "insn".
24495         (add_labels_and_missing_jumps): Likewise for local "new_jump".
24496         (fix_up_fall_thru_edges): Likewise for local "old_jump".
24497         (find_jump_block): Likewise for local "insn".
24498         (fix_crossing_conditional_branches): Likewise for locals
24499         "old_jump", "new_jump".
24500         (fix_crossing_unconditional_branches): Likewise for locals
24501         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
24502         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
24503
24504 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24505
24506         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
24507         rtx to rtx_insn *.
24508         (struct mem_insn): Likewise for field "insn".
24509         (reg_next_use): Strengthen from rtx * to rtx_insn **.
24510         (reg_next_inc_use): Likewise.
24511         (reg_next_def): Likewise.
24512         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
24513         from rtx to rtx_insn *.
24514         (move_insn_before): Likewise for param "next_insn" and local "insns".
24515         (attempt_change): Likewise for local "mov_insn".
24516         (try_merge): Likewise for param "last_insn".
24517         (get_next_ref): Likewise for return type and local "insn".
24518         Strengthen param "next_array" from rtx * to rtx_insn **.
24519         (parse_add_or_inc): Strengthen param "insn" from rtx to
24520         rtx_insn *.
24521         (find_inc): Likewise for locals "insn" and "other_insn" (three of
24522         the latter).
24523         (merge_in_block): Likewise for locals "insn", "curr",
24524         "other_insn".
24525         (pass_inc_dec::execute): Update allocations of the arrays to
24526         reflect the stronger types.
24527
24528 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24529
24530         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
24531         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
24532         from rtx to rtx_code_label *.
24533
24534 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24535
24536         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
24537         to rtx_insn *.
24538
24539 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
24540
24541         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
24542         generated a warning and prevented bootstrapping the compiler.
24543
24544 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24545
24546         * rtl.h (delete_related_insns): Strengthen return type from rtx to
24547         rtx_insn *.
24548
24549         * jump.c (delete_related_insns): Likewise, also for locals "next"
24550         and "prev".
24551
24552 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24553
24554         * genautomata.c (output_internal_insn_latency_func): When writing
24555         the function "internal_insn_latency" to insn-automata.c,
24556         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
24557         allowing the optional guard function of (define_bypass) clauses to
24558         expect a pair of rtx_insn *, rather than a pair of rtx.
24559         (output_insn_latency_func): When writing the function
24560         "insn_latency", add an "uncast_" prefix to params "insn" and
24561         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
24562         using checked casts from the params, thus enabling the above
24563         change to the generated "internal_insn_latency" function.
24564
24565 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
24566
24567         PR tree-optimization/62091
24568         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
24569         handle correctly arrays.
24570         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
24571         inheritance binfos.
24572         (record_known_type): Walk into inner type.
24573         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
24574         condition on no type changes.
24575
24576 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24577
24578         * genattrtab.c (write_attr_get): Within the generated get_attr_
24579         functions, rename param "insn" to "uncast_insn" and reintroduce
24580         "insn" as an local rtx_insn * using a checked cast, so that "insn"
24581         is an rtx_insn * within insn-attrtab.c
24582
24583 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24584
24585         * output.h (peephole): Strengthen return type from rtx to
24586         rtx_insn *.
24587         * rtl.h (delete_for_peephole): Likewise for both params.
24588         * genpeep.c (main): In generated "peephole" function, strengthen
24589         return type and local "insn" from rtx to rtx_insn *.  For now,
24590         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
24591         rtx_insn *, with a checked cast.
24592         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
24593         locals "insn", "next", "prev" from rtx to rtx_insn *.
24594
24595 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
24596
24597         PR tree-optimization/62112
24598         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
24599         * gimple-iterator.h (gsi_replace): Return bool.
24600         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
24601         moved from ref_may_alias_global_p.
24602         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
24603         New overloads.
24604         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
24605         (stmt_kills_ref_p_1): Rename...
24606         (stmt_kills_ref_p): ... to this.
24607         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
24608         stmt_kills_ref_p): Declare.
24609         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
24610         Move the self-assignment case...
24611         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
24612
24613 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24614
24615         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
24616
24617         * emit-rtl.c (try_split): Likewise, also for locals "before" and
24618         "after".  For now, don't strengthen param "trial", which requires
24619         adding checked casts when returning it.
24620
24621 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24622
24623         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
24624         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
24625         "var_location" hook from rtx to rtx_insn *.
24626         (debug_nothing_rtx): Delete in favor of...
24627         (debug_nothing_rtx_code_label): New prototype.
24628         (debug_nothing_rtx_rtx): Delete unused prototype.
24629         (debug_nothing_rtx_insn): New prototype.
24630
24631         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
24632         invoking debug_hooks->var_location (in two places, one in a NOTE
24633         case of a switch statement, the other guarded by a CALL_P
24634         conditional.  Add checked cast to rtx_code_label * when invoking
24635         debug_hooks->label (within CODE_LABEL case of switch statement).
24636
24637         * dbxout.c (dbx_debug_hooks): Update "label" hook from
24638         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
24639         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
24640         (xcoff_debug_hooks): Likewise.
24641         * debug.c (do_nothing_debug_hooks): Likewise.
24642         (debug_nothing_rtx): Delete in favor of...
24643         (debug_nothing_rtx_insn): New function.
24644         (debug_nothing_rtx_rtx): Delete unused function.
24645         (debug_nothing_rtx_code_label): New function.
24646         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
24647         debug_nothing_rtx to debug_nothing_rtx_code_label.
24648         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
24649         to rtx_insn *.
24650         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
24651         debug_nothing_rtx to debug_nothing_rtx_insn.
24652         (sdbout_label): Strengthen param "insn" from rtx to
24653         rtx_code_label *.
24654         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
24655         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
24656         "var_location" hook from debug_nothing_rtx to
24657         debug_nothing_rtx_insn.
24658
24659 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24660
24661         * recog.h (insn_output_fn): Update this function typedef to match
24662         the changes below to the generated output functions, strengthening
24663         the 2nd param from rtx to rtx_insn *.
24664
24665         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
24666         insn when invoking an output function, to match the new signature
24667         of insn_output_fn with a stronger second param.
24668
24669         * genconditions.c (write_header): In the generated code for
24670         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
24671         to match the other changes in this patch.
24672
24673         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
24674         the generated "gen_" functions from rtx to rtx_insn * within their
24675         implementations.
24676
24677         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
24678         the subfunctions within the generated "recog_", "split", "peephole2"
24679         function trees from rtx to rtx_insn *.  For now, the top-level
24680         generated functions ("recog", "split", "peephole2") continue to
24681         take a plain rtx for "insn", to avoid introducing dependencies on
24682         other patches.  Rename this 2nd param from "insn" to
24683         "uncast_insn", and reintroduce "insn" as a local variable of type
24684         rtx_insn *, initialized at the top of the generated function with
24685         a checked cast on "uncast_insn".
24686         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
24687         the generated "gen_" functions from rtx to rtx_insn * within their
24688         prototypes.
24689
24690         * genoutput.c (process_template): Strengthen the 2nd param within
24691         the generated "output_" functions "insn" from rtx to rtx_insn *.
24692
24693 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
24694
24695         * tree-profile.c (tree_profiling): Skip external functions
24696         when doing coverage instrumentation.
24697         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
24698
24699 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24700
24701         * config/rs6000/altivec.h (vec_cpsgn): New #define.
24702         (vec_mergee): Likewise.
24703         (vec_mergeo): Likewise.
24704         (vec_cntlz): Likewise.
24705         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
24706         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
24707         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
24708         VMRGEW, and VMRGOW.
24709         * doc/extend.texi: Document various forms of vec_cpsgn,
24710         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
24711         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
24712         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
24713         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
24714         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
24715
24716 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24717
24718         * config/rs6000/rs6000.c (context.h): New include.
24719         (tree-pass.h): Likewise.
24720         (make_pass_analyze_swaps): New decl.
24721         (rs6000_option_override): Register pass_analyze_swaps.
24722         (swap_web_entry): New subsclass of web_entry_base (df.h).
24723         (special_handling_values): New enum.
24724         (union_defs): New function.
24725         (union_uses): Likewise.
24726         (insn_is_load_p): Likewise.
24727         (insn_is_store_p): Likewise.
24728         (insn_is_swap_p): Likewise.
24729         (rtx_is_swappable_p): Likewise.
24730         (insn_is_swappable_p): Likewise.
24731         (chain_purpose): New enum.
24732         (chain_contains_only_swaps): New function.
24733         (mark_swaps_for_removal): Likewise.
24734         (swap_const_vector_halves): Likewise.
24735         (adjust_subreg_index): Likewise.
24736         (permute_load): Likewise.
24737         (permute_store): Likewise.
24738         (handle_special_swappables): Likewise.
24739         (replace_swap_with_copy): Likewise.
24740         (dump_swap_insn_table): Likewise.
24741         (rs6000_analyze_swaps): Likewise.
24742         (pass_data_analyze_swaps): New pass_data.
24743         (pass_analyze_swaps): New rtl_opt_pass.
24744         (make_pass_analyze_swaps): New function.
24745         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
24746
24747 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24748
24749         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
24750         type from rtx to rtx_insn *.
24751         (create_copy_of_insn_rtx): Likewise.
24752         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
24753         (create_copy_of_insn_rtx): Likewise, also for local "res".
24754
24755 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24756
24757         * rtl.h (find_first_parameter_load): Strengthen return type from
24758         rtx to rtx_insn *.
24759         * rtlanal.c (find_first_parameter_load): Strengthen return type
24760         from rtx to rtx_insn *.  Add checked cast for now, to postpone
24761         strengthening the params.
24762
24763 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24764
24765         PR fortran/44054
24766         * diagnostic.c: Set default caret.
24767         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
24768         line is needed.
24769         * diagnostic.h (struct diagnostic_context):
24770
24771 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24772
24773         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
24774         (sel_bb_head): Strengthen return type insn_t (currently just an
24775         rtx) to rtx_insn *.
24776         (sel_bb_end): Likewise.
24777
24778         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
24779         (sel_bb_head): Strengthen return type and local "head" from
24780         insn_t (currently just an rtx) to rtx_insn *.
24781         (sel_bb_end): Likewise for return type.
24782         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
24783         working with insn.
24784
24785 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
24786
24787         * basic-block.h (get_last_bb_insn): Strengthen return type from
24788         rtx to rtx_insn *.
24789         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
24790         end".
24791
24792 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24793
24794         PR fortran/44054
24795         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
24796         to here ...
24797         (diagnostic_report_diagnostic): ... from here.
24798         * toplev.c (general_init): Move code to c-family.
24799
24800 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24801
24802         * df.h (web_entry_base): Replace existing struct web_entry with a
24803         new class web_entry_base with only the predecessor member.
24804         (unionfind_root): Remove declaration and move to class member.
24805         (unionfind_union): Remove declaration and move to friend
24806         function.
24807         (union_defs): Remove declaration.
24808         * web.c (web_entry_base::unionfind_root): Modify to be member
24809         function and adjust accessors.
24810         (unionfind_union): Modify to be friend function and adjust
24811         accessors.
24812         (web_entry): New subclass of web_entry_base containing the reg
24813         member.
24814         (union_match_dups): Modify for struct -> class changes.
24815         (union_defs): Likewise.
24816         (entry_register): Likewise.
24817         (pass_web::execute): Likewise.
24818
24819 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
24820
24821         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
24822         builtin define __VEC_ELEMENT_REG_ORDER__.
24823
24824 2014-08-20  Martin Jambor  <mjambor@suse.cz>
24825             Wei Mi  <wmi@google.com>
24826
24827         PR ipa/60449
24828         PR middle-end/61776
24829         * tree-ssa-operands.c (update_stmt_operands): Remove
24830         MODIFIED_NORETURN_CALLS.
24831         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
24832         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
24833         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
24834         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
24835         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
24836         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
24837         (gimple_call_set_ctrl_altering): New func.
24838         (gimple_call_ctrl_altering_p): Ditto.
24839         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
24840         (make_blocks): Use gimple_call_initialize_ctrl_altering.
24841         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
24842         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
24843         remove MODIFIED_NORETURN_CALLS.
24844
24845 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
24846
24847         * coverage.c (coverage_compute_profile_id): Return non-0;
24848         also handle symbols with unique name.
24849         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
24850
24851 2014-08-20  Steve Ellcey  <sellcey@mips.com>
24852
24853         PR middle-end/49191
24854         * doc/sourcebuild.texi (non_strict_align): New.
24855
24856 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
24857
24858         * cgraphunit.c (ipa_passes, compile): Reshedule
24859         symtab_remove_unreachable_nodes passes; update comments.
24860         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
24861         TODO_remove_functions before the pass; the functions ought to be
24862         already removed.
24863         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
24864         TODO_remove_functions.
24865         * passes.c (pass_data_early_local_passes): Do not schedule function
24866         removal.
24867         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
24868
24869 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24870
24871         PR c/59304
24872         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
24873         before setting the option.
24874         * diagnostic.c (diagnostic_classify_diagnostic): Record
24875         command-line status.
24876
24877 2014-08-20  Richard Biener  <rguenther@suse.de>
24878
24879         PR lto/62190
24880         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
24881         to build uint{16,32,64}_type_node.
24882
24883 2014-08-20  Terry Guo  <terry.guo@arm.com>
24884
24885         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
24886         with immediate_operand.
24887
24888 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
24889
24890         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
24891         "insn" from an as_a to a safe_as_a, for the case when "insn" is
24892         NULL.
24893
24894 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24895
24896         PR preprocessor/51303
24897         * incpath.c (remove_duplicates): Use cpp_warning.
24898
24899 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24900
24901         PR c/60975
24902         PR c/53063
24903         * doc/options.texi (CPP): Document it.
24904         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
24905         * optc-gen.awk: Handle CPP.
24906         * opth-gen.awk: Likewise.
24907
24908 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
24909
24910         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
24911         rtx_insn *.
24912         (duplicate_insn_chain): Likewise.
24913         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
24914         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
24915         checked cast for now (until we can strengthen the params in the
24916         same way).
24917         (duplicate_insn_chain): Likewise.
24918
24919 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
24920
24921         * rtl.h (next_cc0_user): Strengthen return type from rtx to
24922         rtx_insn *.
24923         (prev_cc0_setter): Likewise.
24924
24925         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
24926         rtx_insn *, adding checked casts for now as necessary.
24927         (prev_cc0_setter): Likewise.
24928
24929 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
24930
24931         * expr.h (emit_move_insn): Strengthen return type from rtx to
24932         rtx_insn *.
24933         (emit_move_insn_1): Likewise.
24934         (emit_move_complex_push): Likewise.
24935         (emit_move_complex_parts): Likewise.
24936
24937         * expr.c (emit_move_via_integer): Strengthen return type from rtx
24938         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
24939         with insns.
24940         (emit_move_complex_push): Strengthen return type from rtx to
24941         rtx_insn *.
24942         (emit_move_complex): Likewise, also for local "ret".
24943         (emit_move_ccmode): Likewise.
24944         (emit_move_multi_word): Likewise for return type and locals
24945         "last_insn", "seq".
24946         (emit_move_insn_1): Likewise for return type and locals "result",
24947         "ret".
24948         (emit_move_insn): Likewise for return type and local "last_insn".
24949         (compress_float_constant): Likewise.
24950
24951 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
24952
24953         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
24954         from rtx to rtx_insn *.
24955
24956         * rtl.h (emit_insn_before): Likewise.
24957         (emit_insn_before_noloc): Likewise.
24958         (emit_insn_before_setloc): Likewise.
24959         (emit_jump_insn_before): Likewise.
24960         (emit_jump_insn_before_noloc): Likewise.
24961         (emit_jump_insn_before_setloc): Likewise.
24962         (emit_call_insn_before): Likewise.
24963         (emit_call_insn_before_noloc): Likewise.
24964         (emit_call_insn_before_setloc): Likewise.
24965         (emit_debug_insn_before): Likewise.
24966         (emit_debug_insn_before_noloc): Likewise.
24967         (emit_debug_insn_before_setloc): Likewise.
24968         (emit_label_before): Likewise.
24969         (emit_insn_after): Likewise.
24970         (emit_insn_after_noloc): Likewise.
24971         (emit_insn_after_setloc): Likewise.
24972         (emit_jump_insn_after): Likewise.
24973         (emit_jump_insn_after_noloc): Likewise.
24974         (emit_jump_insn_after_setloc): Likewise.
24975         (emit_call_insn_after): Likewise.
24976         (emit_call_insn_after_noloc): Likewise.
24977         (emit_call_insn_after_setloc): Likewise.
24978         (emit_debug_insn_after): Likewise.
24979         (emit_debug_insn_after_noloc): Likewise.
24980         (emit_debug_insn_after_setloc): Likewise.
24981         (emit_label_after): Likewise.
24982         (emit_insn): Likewise.
24983         (emit_debug_insn): Likewise.
24984         (emit_jump_insn): Likewise.
24985         (emit_call_insn): Likewise.
24986         (emit_label): Likewise.
24987         (gen_clobber): Likewise.
24988         (emit_clobber): Likewise.
24989         (gen_use): Likewise.
24990         (emit_use): Likewise.
24991         (emit): Likewise.
24992
24993         (emit_barrier_before): Strengthen return type from rtx to
24994         rtx_barrier *.
24995         (emit_barrier_after): Likewise.
24996         (emit_barrier): Likewise.
24997
24998         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
24999         from rtx to rtx_insn *.  Add checked casts for now when converting
25000         "last" from rtx to rtx_insn *.
25001         (emit_insn_before_noloc): Likewise for return type.
25002         (emit_jump_insn_before_noloc): Likewise.
25003         (emit_call_insn_before_noloc): Likewise.
25004         (emit_debug_insn_before_noloc): Likewise.
25005         (emit_barrier_before): Strengthen return type and local "insn"
25006         from rtx to rtx_barrier *.
25007         (emit_label_before): Strengthen return type from rtx to
25008         rtx_insn *.  Add checked cast for now when returning param
25009         (emit_pattern_after_noloc): Strengthen return type from rtx to
25010         rtx_insn *.  Add checked casts for now when converting "last" from
25011         rtx to rtx_insn *.
25012         (emit_insn_after_noloc): Strengthen return type from rtx to
25013         rtx_insn *.
25014         (emit_jump_insn_after_noloc): Likewise.
25015         (emit_call_insn_after_noloc): Likewise.
25016         (emit_debug_insn_after_noloc): Likewise.
25017         (emit_barrier_after): Strengthen return type from rtx to
25018         rtx_barrier *.
25019         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
25020         Add checked cast for now when converting "label" from rtx to
25021         rtx_insn *.
25022         (emit_pattern_after_setloc): Strengthen return type from rtx to
25023         rtx_insn *.  Add checked casts for now when converting "last" from
25024         rtx to rtx_insn *.
25025         (emit_pattern_after): Strengthen return type from rtx to
25026         rtx_insn *.
25027         (emit_insn_after_setloc): Likewise.
25028         (emit_insn_after): Likewise.
25029         (emit_jump_insn_after_setloc): Likewise.
25030         (emit_jump_insn_after): Likewise.
25031         (emit_call_insn_after_setloc): Likewise.
25032         (emit_call_insn_after): Likewise.
25033         (emit_debug_insn_after_setloc): Likewise.
25034         (emit_debug_insn_after): Likewise.
25035         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
25036         when converting "last" from rtx to rtx_insn *.
25037         (emit_pattern_before): Strengthen return type from rtx to
25038         rtx_insn *.
25039         (emit_insn_before_setloc): Likewise.
25040         (emit_insn_before): Likewise.
25041         (emit_jump_insn_before_setloc): Likewise.
25042         (emit_jump_insn_before): Likewise.
25043         (emit_call_insn_before_setloc): Likewise.
25044         (emit_call_insn_before): Likewise.
25045         (emit_debug_insn_before_setloc): Likewise.
25046         (emit_debug_insn_before): Likewise.
25047         (emit_insn): Strengthen return type and locals "last", "insn",
25048         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
25049         within cases where we know we have an insn.
25050         (emit_debug_insn): Likewise.
25051         (emit_jump_insn): Likewise.
25052         (emit_call_insn): Strengthen return type and local "insn" from rtx
25053         to rtx_insn *.
25054         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
25055         a checked cast to rtx_insn * for now on "label".
25056         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
25057         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
25058         (emit_use): Likewise.
25059         (gen_use): Likewise, also for local "seq".
25060         (emit): Likewise for return type and local "insn".
25061         (rtx_insn): Likewise for return type and local "new_rtx".
25062
25063         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
25064         from rtx to rtx_barrier *.
25065
25066         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
25067         changed return type from rtx to rtx_insn *, we must update
25068         "emit_fn" type, and this in turn means updating...
25069         (frame_insn): ...this.  Strengthen return type from rtx to
25070         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
25071
25072 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25073
25074         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
25075         rtx to rtx_jump_table_data *.  Also for local.
25076         * rtl.h (emit_jump_table_data): Likewise.
25077
25078 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25079
25080         * basic-block.h (create_basic_block_structure): Strengthen third
25081         param "bb_note" from rtx to rtx_note *.
25082         * rtl.h (emit_note_before): Strengthen return type from rtx to
25083         rtx_note *.
25084         (emit_note_after): Likewise.
25085         (emit_note): Likewise.
25086         (emit_note_copy): Likewise.  Also, strengthen param similarly.
25087         * function.h (struct rtl_data): Strengthen field
25088         "x_stack_check_probe_note" from rtx to rtx_note *.
25089
25090         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
25091         from rtx to rtx_note *.
25092         * cfgrtl.c (create_basic_block_structure): Strengthen third param
25093         "bb_note" from rtx to rtx_note *.
25094         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
25095         when calling emit_note_copy.
25096         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
25097         rtx_note *.
25098         (emit_note_after): Likewise.
25099         (emit_note_before): Likewise.
25100         (emit_note_copy): Likewise.  Also, strengthen param similarly.
25101         (emit_note): Likewise.
25102         * except.c (emit_note_eh_region_end): Likewise for return type.
25103         Strengthen local "next" from rtx to rtx_insn *.
25104         (convert_to_eh_region_ranges): Strengthen local "note"
25105         from rtx to rtx_note *.
25106         * final.c (change_scope): Likewise.
25107         (reemit_insn_block_notes): Likewise, for both locals named "note".
25108         Also, strengthen local "insn" from rtx to rtx_insn *.
25109         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
25110         rtx to rtx_note *.
25111         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
25112         strengthen local "seq" from rtx to rtx_insn *.
25113         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
25114         to rtx_note *.
25115         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
25116         vec<rtx_note *>.
25117         (get_bb_note_from_pool): Strengthen return type from rtx to
25118         rtx_note *.
25119         (sel_create_basic_block): Strengthen local "new_bb_note" from
25120         insn_t to rtx_note *.
25121         * var-tracking.c (emit_note_insn_var_location): Strengthen local
25122         "note" from rtx to rtx_note *.
25123         (emit_notes_in_bb): Likewise.
25124
25125 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25126
25127         * function.h (struct rtl_data): Strengthen field
25128         "x_parm_birth_insn" from rtx to rtx_insn *.
25129         * function.c (struct assign_parm_data_all): Strengthen fields
25130         "first_conversion_insn" and "last_conversion_insn" from rtx to
25131         rtx_insn *.
25132
25133 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25134
25135         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
25136         to rtx_insn *; also for local "var_end_seq".
25137         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
25138         (maybe_cleanup_end_of_block): Likewise for param "last" and local
25139         "insn".
25140         (expand_gimple_cond): Likewise for locals "last2" and "last".
25141         (mark_transaction_restart_calls): Likewise for local "insn".
25142         (expand_gimple_stmt): Likewise for return type and locals "last"
25143         and "insn".
25144         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
25145         (avoid_complex_debug_insns): Likewise for param "insn".
25146         (expand_debug_locations): Likewise for locals "insn", "last",
25147         "prev_insn" and "insn2".
25148         (expand_gimple_basic_block): Likewise for local "last".
25149         (construct_exit_block): Likewise for locals "head", "end",
25150         "orig_end".
25151         (pass_expand::execute): Likewise for locals "var_seq",
25152         "var_ret_seq", "next".
25153
25154 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25155
25156         * asan.h (asan_emit_stack_protection): Strengthen return type from
25157         rtx to rtx_insn *.
25158         * asan.c (asan_emit_stack_protection): Likewise.  Add local
25159         "insns" to hold the return value.
25160
25161 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25162
25163         * basic-block.h (bb_note): Strengthen return type from rtx to
25164         rtx_note *.
25165         * sched-int.h (bb_note): Likewise.
25166         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
25167
25168 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25169
25170         * rtl.h (make_insn_raw): Strengthen return type from rtx to
25171         rtx_insn *.
25172
25173         * emit-rtl.c (make_insn_raw): Strengthen return type and local
25174         "insn" from rtx to rtx_insn *.
25175         (make_debug_insn_raw): Strengthen return type from rtx to
25176         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
25177         (make_jump_insn_raw):  Strengthen return type from rtx to
25178         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
25179         (make_call_insn_raw):  Strengthen return type from rtx to
25180         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
25181         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
25182         callback from rtx to rtx_insn *; likewise for local "insn" and
25183         "next", adding a checked cast to rtx_insn in the relevant cases of
25184         the switch statement.
25185         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
25186         callback from rtx to rtx_insn *.
25187         (emit_pattern_after_setloc): Likewise.
25188         (emit_pattern_after): Likewise.
25189         (emit_pattern_before_setloc): Likewise.
25190         (emit_pattern_before): Likewise.
25191
25192 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25193
25194         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
25195         rtx_call_insn *.
25196         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
25197         accepting an rtx_insn *.
25198         (last_call_insn): Strengthen return type from rtx to
25199         rtx_call_insn *.
25200
25201 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25202
25203         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
25204         "insns" from rtx to rtx_insn *.
25205         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
25206         locals "insn" and "prev".
25207
25208 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25209
25210         * rtl.h (tablejump_p): Strengthen third param from rtx * to
25211         rtx_jump_table_data **.
25212
25213         * cfgbuild.c (make_edges): Introduce local "table", using it in
25214         place of "tmp" for jump table data.
25215         (find_bb_boundaries): Strengthen local "table" from rtx to
25216         rtx_jump_table_data *.
25217         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
25218         (outgoing_edges_match): Likewise for locals "table1" and "table2".
25219         (try_crossjump_to_edge): Likewise.
25220         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
25221         "table".
25222         (patch_jump_insn): Introduce local "table", using it in place of
25223         "tmp" for jump table data.
25224         (force_nonfallthru_and_redirect): Introduce local "table", so that
25225         call to tablejump_p can receive an rtx_jump_table_data **.  Update
25226         logic around the call to overwrite "note" appropriately if
25227         tablejump_p returns non-zero.
25228         (get_last_bb_insn): Introduce local "table", using it in place of
25229         "tmp" for jump table data.
25230         * dwarf2cfi.c (create_trace_edges): Likewise.
25231
25232         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
25233         from rtx to rtx_jump_table_data *.
25234         (create_fix_barrier): Strengthen local "tmp" from rtx to
25235         rtx_jump_table_data *.
25236         (arm_reorg): Likewise for local "table".
25237
25238         * config/s390/s390.c (s390_chunkify_start): Likewise.
25239
25240         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
25241
25242         * jump.c (delete_related_insns): Strengthen local "lab_next" from
25243         rtx to rtx_jump_table_data *.
25244
25245         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
25246         rtx_jump_table_data **.  Add a checked cast when writing through
25247         the pointer: we know there that local "table" is non-NULL and that
25248         JUMP_TABLE_DATA_P (table) holds.
25249         (label_is_jump_target_p): Introduce local "table", using it in
25250         place of "tmp" for jump table data.
25251
25252 2014-08-19  Marek Polacek  <polacek@redhat.com>
25253
25254         PR c++/62153
25255         * doc/invoke.texi: Document -Wbool-compare.
25256
25257 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25258
25259         * rtl.h (entry_of_function): Strengthen return type from rtx to
25260         rtx_insn *.
25261         * cfgrtl.c (entry_of_function): Likewise.
25262
25263 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25264
25265         * emit-rtl.h (get_insns): Strengthen return type from rtx to
25266         rtx_insn *, adding a checked cast for now.
25267         (get_last_insn): Likewise.
25268
25269 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25270
25271         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
25272         rtx_code_label *.
25273
25274         * emit-rtl.c (gen_label_rtx): Likewise.
25275
25276 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25277
25278         * rtl.h (previous_insn): Strengthen return type from rtx to
25279         rtx_insn *.
25280         (next_insn): Likewise.
25281         (prev_nonnote_insn): Likewise.
25282         (prev_nonnote_insn_bb): Likewise.
25283         (next_nonnote_insn): Likewise.
25284         (next_nonnote_insn_bb): Likewise.
25285         (prev_nondebug_insn): Likewise.
25286         (next_nondebug_insn): Likewise.
25287         (prev_nonnote_nondebug_insn): Likewise.
25288         (next_nonnote_nondebug_insn): Likewise.
25289         (prev_real_insn): Likewise.
25290         (next_real_insn): Likewise.
25291         (prev_active_insn): Likewise.
25292         (next_active_insn): Likewise.
25293
25294         * emit-rtl.c (next_insn): Strengthen return type from rtx to
25295         rtx_insn *, adding a checked cast.
25296         (previous_insn): Likewise.
25297         (next_nonnote_insn): Likewise.
25298         (next_nonnote_insn_bb): Likewise.
25299         (prev_nonnote_insn): Likewise.
25300         (prev_nonnote_insn_bb): Likewise.
25301         (next_nondebug_insn): Likewise.
25302         (prev_nondebug_insn): Likewise.
25303         (next_nonnote_nondebug_insn): Likewise.
25304         (prev_nonnote_nondebug_insn): Likewise.
25305         (next_real_insn): Likewise.
25306         (prev_real_insn): Likewise.
25307         (next_active_insn): Likewise.
25308         (prev_active_insn): Likewise.
25309
25310         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
25311         param "stepfunc" so that it returns an rtx_insn * rather than an
25312         rtx, to track the change to prev_nonnote_insn_bb, which is the
25313         only function this is called with.
25314         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
25315
25316 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
25317
25318         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
25319         assert.
25320
25321 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25322
25323         * coretypes.h (class rtx_debug_insn): Add forward declaration.
25324         (class rtx_nonjump_insn): Likewise.
25325         (class rtx_jump_insn): Likewise.
25326         (class rtx_call_insn): Likewise.
25327         (class rtx_jump_table_data): Likewise.
25328         (class rtx_barrier): Likewise.
25329         (class rtx_code_label): Likewise.
25330         (class rtx_note): Likewise.
25331
25332         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
25333         adding the invariant DEBUG_INSN_P (X).
25334         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
25335         the invariant NONJUMP_INSN_P (X).
25336         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
25337         the invariant JUMP_P (X).
25338         (class rtx_call_insn): New, a subclass of rtx_insn, adding
25339         the invariant CALL_P (X).
25340         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
25341         invariant JUMP_TABLE_DATA_P (X).
25342         (class rtx_barrier): New, a subclass of rtx_insn, adding the
25343         invariant BARRIER_P (X).
25344         (class rtx_code_label): New, a subclass of rtx_insn, adding
25345         the invariant LABEL_P (X).
25346         (class rtx_note): New, a subclass of rtx_insn, adding
25347         the invariant NOTE_P(X).
25348         (is_a_helper <rtx_debug_insn *>::test): New.
25349         (is_a_helper <rtx_nonjump_insn *>::test): New.
25350         (is_a_helper <rtx_jump_insn *>::test): New.
25351         (is_a_helper <rtx_call_insn *>::test): New.
25352         (is_a_helper <rtx_jump_table_data *>::test): New functions,
25353         overloaded for both rtx and rtx_insn *.
25354         (is_a_helper <rtx_barrier *>::test): New.
25355         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
25356         for both rtx and rtx_insn *.
25357         (is_a_helper <rtx_note *>::test): New.
25358
25359 2014-08-19  Marek Polacek  <polacek@redhat.com>
25360
25361         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
25362         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
25363         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
25364         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
25365
25366 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25367
25368         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
25369         rtx_insn *.  To help with transition, for now, convert from an
25370         access macro into a pair of functions: BND_TO, returning an
25371         rtx_insn *, and...
25372         (SET_BND_TO): New function, for use where BND_TO is used as an
25373         lvalue.
25374
25375         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
25376         SET_BND_TO.
25377         (BND_TO): New function, adding a checked cast.
25378         (SET_BND_TO): New function.
25379
25380         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
25381         SET_BND_TO.
25382         (compute_av_set_on_boundaries): Likewise.
25383
25384 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
25385
25386         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
25387         destination if it is used in source.
25388         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
25389         (*popcount<mode>2_falsedep_1): Likewise.
25390
25391 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
25392
25393         PR other/62168
25394         * configure.ac: Set install_gold_as_default to no first.
25395         * configure: Regenerated.
25396
25397 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25398
25399         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
25400         "note_list" field will eventually be an rtx_insn *.  To help with
25401         transition, for now, convert from an access macro into a pair of
25402         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
25403         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
25404         used as an lvalue.
25405
25406         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
25407         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
25408
25409         * sel-sched-ir.c (init_bb): Likewise.
25410         (sel_restore_notes): Likewise.
25411         (move_bb_info): Likewise.
25412         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
25413         (SET_BB_NOTE_LIST): New function.
25414
25415 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25416
25417         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
25418         field will eventually be an rtx_insn *.  To help with transition,
25419         for now, convert from an access macro into a pair of functions:
25420         VINSN_INSN_RTX, returning an rtx_insn *, and...
25421         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
25422         is used as an lvalue.
25423
25424         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
25425         SET_VINSN_INSN_RTX where it's used as an lvalue.
25426         (VINSN_INSN_RTX): New function.
25427         (SET_VINSN_INSN_RTX): New function.
25428
25429 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25430
25431         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
25432         eventually be rtx_insn *, but to help with transition, for now,
25433         convert from an access macro into a pair of functions: DEP_PRO
25434         returning an rtx_insn * and...
25435         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
25436         lvalue, returning an rtx&.
25437         (DEP_CON): Analogous changes to DEP_PRO above.
25438         (SET_DEP_CON): Likewise.
25439
25440         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
25441         an lvalue to SET_DEP_CON.
25442         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
25443         (sd_copy_back_deps): Likewise for DEP_CON.
25444         (DEP_PRO): New function, adding a checked cast for now.
25445         (DEP_CON): Likewise.
25446         (SET_DEP_PRO): New function.
25447         (SET_DEP_CON): Likewise.
25448
25449 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
25450
25451         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
25452         (extra_options): Add i386/cygwin.opt.
25453         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
25454         (CPP_SPEC): Accept -pthread.
25455         (LINK_SPEC): Ditto.
25456         (GOMP_SELF_SPECS): Update comment.
25457         * config/i386/cygwin.opt: New file for -pthread flag.
25458
25459 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25460
25461         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
25462         * df.h (DF_REF_INSN): Convert from a macro to a function, so
25463         that we can return an rtx_insn *.
25464
25465 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
25466
25467         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
25468         when building executables, not DLLs.  Add --large-address-aware
25469         under the same conditions.
25470         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
25471         when building executables, not DLLs.  Add --large-address-aware
25472         under the same conditions when using -m32.
25473
25474         * config/i386/cygwin-stdint.h: Throughout, make type
25475         definitions dependent on target architecture, not host.
25476
25477 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25478
25479         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
25480         the return type from rtx to rtx_insn *,  which will enable various
25481         conversions in followup patches.  For now this is is done by a
25482         checked cast.
25483         (NEXT_INSN): Likewise.
25484         (SET_PREV_INSN): Convert to an inline function.  This is intended
25485         for use as an lvalue, and so returns an rtx& to allow in-place
25486         modification.
25487         (SET_NEXT_INSN): Likewise.
25488
25489 2014-07-08  Mark Wielaard  <mjw@redhat.com>
25490
25491         PR debug/59051
25492         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
25493
25494 2014-08-19  Marek Polacek  <polacek@redhat.com>
25495
25496         PR c/61271
25497         * cgraphunit.c (handle_alias_pairs): Fix condition.
25498
25499 2014-08-19  Richard Biener  <rguenther@suse.de>
25500
25501         * gimple-fold.c (fold_gimple_assign): Properly build a
25502         null-pointer constant when devirtualizing addresses.
25503
25504 2014-07-07  Mark Wielaard  <mjw@redhat.com>
25505
25506         * dwarf2out.c (decl_quals): New function.
25507         (modified_type_die): Take one cv_quals argument instead of two,
25508         one for const and one for volatile.
25509         (add_type_attribute): Likewise.
25510         (generic_parameter_die): Call add_type_attribute with one modifier
25511         argument.
25512         (base_type_for_mode): Likewise.
25513         (add_bounds_info): Likewise.
25514         (add_subscript_info): Likewise.
25515         (gen_array_type_die): Likewise.
25516         (gen_descr_array_type_die): Likewise.
25517         (gen_entry_point_die): Likewise.
25518         (gen_enumeration_type_die): Likewise.
25519         (gen_formal_parameter_die): Likewise.
25520         (gen_subprogram_die): Likewise.
25521         (gen_variable_die): Likewise.
25522         (gen_const_die): Likewise.
25523         (gen_field_die): Likewise.
25524         (gen_pointer_type_die): Likewise.
25525         (gen_reference_type_die): Likewise.
25526         (gen_ptr_to_mbr_type_die): Likewise.
25527         (gen_inheritance_die): Likewise.
25528         (gen_subroutine_type_die): Likewise.
25529         (gen_typedef_die): Likewise.
25530         (force_type_die): Likewise.
25531
25532 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25533
25534         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
25535         if unset.
25536         * configure: Regenerate.
25537
25538 2014-08-19  Richard Biener  <rguenther@suse.de>
25539
25540         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
25541         DECL_EXTERNALs in BLOCKs as non-references.
25542         * tree-streamer-out.c (streamer_write_chain): Likewise.
25543
25544 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25545             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25546             Anna Tikhonova  <anna.tikhonova@intel.com>
25547             Ilya Tocar  <ilya.tocar@intel.com>
25548             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25549             Ilya Verbin  <ilya.verbin@intel.com>
25550             Kirill Yukhin  <kirill.yukhin@intel.com>
25551             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25552
25553         * config/i386/sse.md
25554         (define_mode_iterator VI48_AVX512F): Delete.
25555         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
25556         (define_mode_iterator VI2_AVX512VL): Ditto.
25557         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
25558         Delete.
25559         (define_insn
25560         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
25561         New.
25562         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
25563         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
25564         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
25565         with VI48_AVX512F_AVX512VL): New.
25566         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
25567         with VI2_AVX512VL): Ditto.
25568
25569 2014-08-19  Marek Polacek  <polacek@redhat.com>
25570
25571         * doc/invoke.texi: Document -Wc99-c11-compat.
25572
25573 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25574
25575         * rtl.h (PREV_INSN): Split macro in two: the existing one,
25576         for rvalues, and...
25577         (SET_PREV_INSN): New macro, for use as an lvalue.
25578         (NEXT_INSN, SET_NEXT_INSN): Likewise.
25579
25580         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
25581         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
25582         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
25583         (fixup_abnormal_edges): Likewise.
25584         (unlink_insn_chain): Likewise.
25585         (fixup_reorder_chain): Likewise.
25586         (cfg_layout_delete_block): Likewise.
25587         (cfg_layout_merge_blocks): Likewise.
25588         * combine.c (update_cfg_for_uncondjump): Likewise.
25589         * emit-rtl.c (link_insn_into_chain): Likewise.
25590         (remove_insn): Likewise.
25591         (delete_insns_since): Likewise.
25592         (reorder_insns_nobb): Likewise.
25593         (emit_insn_after_1): Likewise.
25594         * final.c (rest_of_clean_state): Likewise.
25595         (final_scan_insn): Likewise.
25596         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
25597         * haifa-sched.c (concat_note_lists): Likewise.
25598         (remove_notes): Likewise.
25599         (restore_other_notes): Likewise.
25600         (move_insn): Likewise.
25601         (unlink_bb_notes): Likewise.
25602         (restore_bb_notes): Likewise.
25603         * jump.c (delete_for_peephole): Likewise.
25604         * optabs.c (emit_libcall_block_1): Likewise.
25605         * reorg.c (emit_delay_sequence): Likewise.
25606         (fill_simple_delay_slots): Likewise.
25607         * sel-sched-ir.c (sel_move_insn): Likewise.
25608         (sel_remove_insn): Likewise.
25609         (get_bb_note_from_pool): Likewise.
25610         * sel-sched.c (move_nop_to_previous_block): Likewise.
25611
25612         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
25613         * config/c6x/c6x.c (gen_one_bundle): Likewise.
25614         (c6x_gen_bundles): Likewise.
25615         (hwloop_optimize): Likewise.
25616         * config/frv/frv.c (frv_function_prologue): Likewise.
25617         (frv_register_nop): Likewise.
25618         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
25619         (ia64_reorg): Likewise.
25620         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
25621         (mep_make_bundle): Likewise.
25622         (mep_bundle_insns): Likewise.
25623         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
25624         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
25625         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
25626
25627 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
25628
25629         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
25630         return type from rtx to rtx_insn *.
25631         (BB_END): Likewise.
25632         (BB_HEADER): Likewise.
25633         (BB_FOOTER): Likewise.
25634         (SET_BB_HEAD): Convert to a function.
25635         (SET_BB_END): Likewise.
25636         (SET_BB_HEADER): Likewise.
25637         (SET_BB_FOOTER): Likewise.
25638
25639         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
25640         Strengthen the return type from rtx to rtx_insn *.  For now, this
25641         is done by adding a checked cast, but this will eventually
25642         become a field lookup.
25643         (BB_END): Likewise.
25644         (BB_HEADER): Likewise.
25645         (BB_FOOTER): Likewise.
25646         (SET_BB_HEAD): New function, from macro of same name.  This is
25647         intended for use as an lvalue, and so returns an rtx& to allow
25648         in-place modification.
25649         (SET_BB_END): Likewise.
25650         (SET_BB_HEADER): Likewise.
25651         (SET_BB_FOOTER): Likewise.
25652
25653 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
25654
25655         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
25656         for rvalues, and...
25657         (SET_BB_HEAD): New macro, for use as a lvalue.
25658         (BB_END, SET_BB_END): Likewise.
25659         (BB_HEADER, SET_BB_HEADER): Likewise.
25660         (BB_FOOTER, SET_BB_FOOTER): Likewise.
25661
25662         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
25663         of BB_* macros into SET_BB_* macros.
25664         (fix_crossing_unconditional_branches): Likewise.
25665         * caller-save.c (save_call_clobbered_regs): Likewise.
25666         (insert_one_insn): Likewise.
25667         * cfgbuild.c (find_bb_boundaries): Likewise.
25668         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
25669         (outgoing_edges_match): Likewise.
25670         (try_optimize_cfg): Likewise.
25671         * cfgexpand.c (expand_gimple_cond): Likewise.
25672         (expand_gimple_tailcall): Likewise.
25673         (expand_gimple_basic_block): Likewise.
25674         (construct_exit_block): Likewise.
25675         * cfgrtl.c (delete_insn): Likewise.
25676         (create_basic_block_structure): Likewise.
25677         (rtl_delete_block): Likewise.
25678         (rtl_split_block): Likewise.
25679         (emit_nop_for_unique_locus_between): Likewise.
25680         (rtl_merge_blocks): Likewise.
25681         (block_label): Likewise.
25682         (try_redirect_by_replacing_jump): Likewise.
25683         (emit_barrier_after_bb): Likewise.
25684         (fixup_abnormal_edges): Likewise.
25685         (record_effective_endpoints): Likewise.
25686         (relink_block_chain): Likewise.
25687         (fixup_reorder_chain): Likewise.
25688         (fixup_fallthru_exit_predecessor): Likewise.
25689         (cfg_layout_duplicate_bb): Likewise.
25690         (cfg_layout_split_block): Likewise.
25691         (cfg_layout_delete_block): Likewise.
25692         (cfg_layout_merge_blocks): Likewise.
25693         * combine.c (update_cfg_for_uncondjump): Likewise.
25694         * emit-rtl.c (add_insn_after): Likewise.
25695         (remove_insn): Likewise.
25696         (reorder_insns): Likewise.
25697         (emit_insn_after_1): Likewise.
25698         * haifa-sched.c (get_ebb_head_tail): Likewise.
25699         (restore_other_notes): Likewise.
25700         (move_insn): Likewise.
25701         (sched_extend_bb): Likewise.
25702         (fix_jump_move): Likewise.
25703         * ifcvt.c (noce_process_if_block): Likewise.
25704         (dead_or_predicable): Likewise.
25705         * ira.c (update_equiv_regs): Likewise.
25706         * reg-stack.c (change_stack): Likewise.
25707         * sel-sched-ir.c (sel_move_insn): Likewise.
25708         * sel-sched.c (move_nop_to_previous_block): Likewise.
25709
25710         * config/c6x/c6x.c (hwloop_optimize): Likewise.
25711         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
25712
25713 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
25714
25715         * rtl.h (for_each_rtx_in_insn): New function.
25716         * rtlanal.c (for_each_rtx_in_insn): Likewise.
25717
25718 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
25719
25720         * coretypes.h (class rtx_insn): Add forward declaration.
25721
25722         * rtl.h: Include is-a.h.
25723         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
25724         workaround to ensure gengtype knows inheritance is occurring,
25725         whilst continuing to use the pre-existing special-casing for
25726         rtx_def.
25727         (class rtx_insn): New subclass of rtx_def, adding the
25728         invariant that we're dealing with something we can sanely use
25729         INSN_UID, NEXT_INSN, PREV_INSN on.
25730         (is_a_helper <rtx_insn *>::test): New.
25731         (is_a_helper <const rtx_insn *>::test): New.
25732
25733 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
25734
25735         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
25736
25737 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
25738
25739         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
25740         comdats as extern.
25741
25742 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
25743
25744         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
25745         to BUILT_IN_UNREACHABLE.
25746
25747 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
25748
25749         PR target/62011
25750         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
25751         New tune flag.
25752         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
25753         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
25754         (ffs<mode>2): Do not expand with tzcnt for
25755         TARGET_AVOID_FALSE_DEP_FOR_BMI.
25756         (ffssi2_no_cmove): Ditto.
25757         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
25758         (ctz<mode>2): New expander.
25759         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
25760         (*ctz<mode>2_falsedep): New insn.
25761         (*ctz<mode>2): Rename from ctz<mode>2.
25762         (clz<mode>2_lzcnt): New expander.
25763         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
25764         (*clz<mode>2_lzcnt_falsedep): New insn.
25765         (*clz<mode>2): Rename from ctz<mode>2.
25766         (popcount<mode>2): New expander.
25767         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
25768         (*popcount<mode>2_falsedep): New insn.
25769         (*popcount<mode>2): Rename from ctz<mode>2.
25770         (*popcount<mode>2_cmp): Remove.
25771         (*popcountsi2_cmp_zext): Ditto.
25772
25773 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
25774
25775         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
25776         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
25777         * config/microblaze/microblaze.h
25778         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
25779
25780 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
25781
25782         PR other/62168
25783         * configure.ac: Set install_gold_as_default to no for
25784         --enable-gold=no.
25785         * configure: Regenerated.
25786
25787 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
25788
25789         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
25790         * config.in: Add undef of HAVE_isl.
25791         * configure: Regenerate.
25792         * configure.ac: Add definition of HAVE_isl.
25793         * graphite-blocking.c: Add checking of HAVE_isl.
25794         * graphite-dependences.c: Likewise.
25795         * graphite-interchange.c: Likewise.
25796         * graphite-isl-ast-to-gimple.c: Likewise.
25797         * graphite-optimize-isl.c: Likewise.
25798         * graphite-poly.c: Likewise.
25799         * graphite-scop-detection.c: Likewise.
25800         * graphite-sese-to-poly.c: Likewise.
25801         * graphite.c: Likewise.
25802         * toplev.c: Replace the checking of HAVE_cloog with the checking
25803         of HAVE_isl.
25804
25805 2014-08-18  Richard Biener  <rguenther@suse.de>
25806
25807         PR tree-optimization/62090
25808         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
25809         (fold_builtin_3): Do not fold snprintf.
25810         (fold_builtin_4): Likewise.
25811         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
25812         moved from builtins.c.
25813         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
25814         (gimple_fold_builtin): Do not fold sprintf here.
25815
25816 2014-08-18  Richard Biener  <rguenther@suse.de>
25817
25818         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
25819         code to ...
25820         (maybe_canonicalize_mem_ref_addr): ... this function.
25821         (fold_stmt_1): Apply it here before all simplification.
25822
25823 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
25824
25825         PR ipa/61800
25826         * cgraph.h (cgraph_node::create_indirect_edge): Add
25827         compute_indirect_info param.
25828         * cgraph.c (cgraph_node::create_indirect_edge): Compute
25829         indirect_info only when it is required.
25830         * cgraphclones.c (cgraph_clone_edge): Do not recompute
25831         indirect_info fore cloned indirect edge.
25832
25833 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25834             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25835             Anna Tikhonova  <anna.tikhonova@intel.com>
25836             Ilya Tocar  <ilya.tocar@intel.com>
25837             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25838             Ilya Verbin  <ilya.verbin@intel.com>
25839             Kirill Yukhin  <kirill.yukhin@intel.com>
25840             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25841
25842         * config/i386/sse.md
25843         (define_mode_iterator VI8_AVX2_AVX512BW): New.
25844         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
25845
25846 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25847             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25848             Anna Tikhonova  <anna.tikhonova@intel.com>
25849             Ilya Tocar  <ilya.tocar@intel.com>
25850             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25851             Ilya Verbin  <ilya.verbin@intel.com>
25852             Kirill Yukhin  <kirill.yukhin@intel.com>
25853             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25854
25855         * config/i386/sse.md
25856         (define_mode_iterator VF1_AVX512VL): New.
25857         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
25858         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
25859         New.
25860
25861 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25862             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25863             Anna Tikhonova  <anna.tikhonova@intel.com>
25864             Ilya Tocar  <ilya.tocar@intel.com>
25865             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25866             Ilya Verbin  <ilya.verbin@intel.com>
25867             Kirill Yukhin  <kirill.yukhin@intel.com>
25868             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25869
25870         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
25871         * config/i386/i386.md
25872         (define_code_iterator any_float): New.
25873         (define_code_attr floatsuffix): New.
25874         * config/i386/sse.md
25875         (define_mode_iterator VF1_128_256VL): New.
25876         (define_mode_iterator VF2_512_256VL): New.
25877         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
25878         TARGET check.
25879         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
25880         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
25881         New.
25882         (define_mode_attr qq2pssuff): New.
25883         (define_mode_attr sselongvecmode): New.
25884         (define_mode_attr sselongvecmodelower): New.
25885         (define_mode_attr sseintvecmode3): New.
25886         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
25887         New.
25888         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
25889         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
25890         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
25891         (define_insn "ufloatv2siv2df2<mask_name>"): New.
25892
25893 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25894             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25895             Anna Tikhonova  <anna.tikhonova@intel.com>
25896             Ilya Tocar  <ilya.tocar@intel.com>
25897             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25898             Ilya Verbin  <ilya.verbin@intel.com>
25899             Kirill Yukhin  <kirill.yukhin@intel.com>
25900             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25901
25902         * config/i386/sse.md
25903         (define_mode_iterator VF2_AVX512VL): New.
25904         (define_mode_attr sseintvecmode2): New.
25905         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
25906         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
25907         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
25908         (define_insn
25909         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
25910         Ditto.
25911         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
25912         Ditto.
25913         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
25914         Ditto.
25915
25916 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25917             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25918             Anna Tikhonova  <anna.tikhonova@intel.com>
25919             Ilya Tocar  <ilya.tocar@intel.com>
25920             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25921             Ilya Verbin  <ilya.verbin@intel.com>
25922             Kirill Yukhin  <kirill.yukhin@intel.com>
25923             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25924
25925         * config/i386/i386.md
25926         (define_insn "*movoi_internal_avx"): Add evex version.
25927         (define_insn "*movti_internal"): Ditto.
25928
25929 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25930             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25931             Anna Tikhonova  <anna.tikhonova@intel.com>
25932             Ilya Tocar  <ilya.tocar@intel.com>
25933             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25934             Ilya Verbin  <ilya.verbin@intel.com>
25935             Kirill Yukhin  <kirill.yukhin@intel.com>
25936             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25937
25938         * config/i386/i386.md
25939         (define_attr "isa"): Add avx512dq, noavx512dq.
25940         (define_attr "enabled"): Ditto.
25941         * config/i386/sse.md
25942         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
25943
25944 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25945             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25946             Anna Tikhonova  <anna.tikhonova@intel.com>
25947             Ilya Tocar  <ilya.tocar@intel.com>
25948             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25949             Ilya Verbin  <ilya.verbin@intel.com>
25950             Kirill Yukhin  <kirill.yukhin@intel.com>
25951             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25952
25953         * config/i386/i386.c
25954         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
25955         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
25956         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
25957         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
25958         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
25959         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
25960         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
25961         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
25962         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
25963         * config/i386/sse.md
25964         (define_mode_iterator VMOVE): Allow V4TI mode.
25965         (define_mode_iterator V_AVX512VL): New.
25966         (define_mode_iterator V): New handling for AVX512VL.
25967         (define_insn "avx512f_load<mode>_mask"): Delete.
25968         (define_insn "<avx512>_load<mode>_mask"): New.
25969         (define_insn "avx512f_store<mode>_mask"): Delete.
25970         (define_insn "<avx512>_store<mode>_mask"): New.
25971
25972
25973 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
25974
25975         PR sanitizer/62089
25976         * asan.c (instrument_derefs): Fix bitfield check.
25977
25978 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
25979
25980         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
25981         * config/rs6000/htm.md (ttest): Remove clobber.
25982         * config/rs6000/predicates.md (any_mask_operand): New predicate.
25983         (and_operand): Reformat.
25984         (and_2rld_operand): New predicate.
25985         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
25986         parameter.
25987         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
25988         parameter.  Handle AND directly.
25989         (rs6000_split_logical_di): Remove last parameter.
25990         (rs6000_split_logical): Remove last parameter.  Remove obsolete
25991         comment.
25992         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
25993         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
25994         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
25995         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
25996         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
25997         and 5 anonymous splitters):  Delete.
25998         (and<mode>3): New expander.
25999         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
26000         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
26001         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
26002         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
26003         (floatdisf2_internal1): Remove clobbers.
26004         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
26005         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
26006         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
26007         (and<mode>3 for BOOL_128): Remove clobber.
26008         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
26009         rs6000_split_logical.
26010         (*bool<mode>3_internal for BOOL_128): Adjust call of
26011         rs6000_split_logical.
26012         (*boolc<mode>3_internal1 for BOOL_128,
26013         *boolc<mode>3_internal2 for BOOL_128,
26014         *boolcc<mode>3_internal1 for BOOL_128,
26015         *boolcc<mode>3_internal2 for BOOL_128,
26016         *eqv<mode>3_internal1 for BOOL_128,
26017         *eqv<mode>3_internal2 for BOOL_128,
26018         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
26019         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
26020         clobber.
26021         (*vec_reload_and_reg_<mptrsize>): Delete.
26022
26023 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26024
26025         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
26026         and split, *boolccsi3_internal3 and split): Delete.
26027         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
26028         *boolccdi3_internal3 and split): Delete.
26029         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
26030         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
26031
26032 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26033
26034         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
26035         and split, *boolcsi3_internal3 and split): Delete.
26036         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
26037         *boolcdi3_internal3 and split): Delete.
26038         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
26039
26040 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
26041
26042         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
26043         <'u'>: Also support printing the low-order 16 bits.
26044         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
26045         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
26046         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
26047         *booldi3_internal3 and split): Delete.
26048         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
26049         *bool<mode>3_dot2): New.
26050         (two anonymous define_splits for non_logical_cint_operand): Merge.
26051
26052 2014-08-17  Marek Polacek  <polacek@redhat.com>
26053             Manuel López-Ibáñez  <manu@gcc.gnu.org>
26054
26055         PR c/62059
26056         * diagnostic.c (adjust_line): Add gcc_checking_assert.
26057         (diagnostic_show_locus): Don't print caret diagnostic
26058         if a column is larger than the line_width.
26059
26060 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
26061
26062         * common.opt: Make the ISL AST generator to be the main code generator
26063         of Graphite.
26064
26065 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
26066
26067         * wide-int.h (generic_wide_int): Declare as class instead of struct.
26068
26069 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
26070
26071         PR target/61641
26072         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
26073         Declare.
26074         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
26075         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
26076         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
26077         Define.
26078         * config/pa/pa.md (begin_brtab): Delete insn.
26079         (end_brtab): Likewise.
26080
26081 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26082
26083         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
26084
26085 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
26086
26087         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
26088         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
26089         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
26090         (get_dynamic_type): Remove.
26091         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
26092         (clear_speculation): Bring to ipa-deivrt.h
26093         (get_class_context): Rename to ...
26094         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
26095         (contains_type_p): Update.
26096         (get_dynamic_type): Rename to ...
26097         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
26098         (possible_polymorphic_call_targets): UPdate.
26099         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
26100         * ipa-prop.c (ipa_analyze_call_uses): Update.
26101
26102 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
26103
26104         * doc/invoke.texi (SH options): Document missing processor variant
26105         options.  Remove references to Hitachi.  Undocument deprecated mspace
26106         option.
26107
26108 2014-08-15  Jason Merrill  <jason@redhat.com>
26109
26110         * tree.c (type_hash_canon): Uncomment assert.
26111
26112 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26113
26114         * input.h (in_system_header_at): Add comment.
26115
26116 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26117
26118         PR fortran/44054
26119         * diagnostic.c (build_message_string): Make it extern.
26120         * diagnostic.h (build_message_string): Make it extern.
26121
26122 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
26123
26124         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
26125         load/store from/to non-floating class pseudo.
26126
26127 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26128
26129         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
26130
26131 2014-08-15  Richard Biener  <rguenther@suse.de>
26132
26133         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
26134         (get_constraint_for_ssa_var): Remove dead code.
26135         (get_constraint_for_1): Adjust.
26136         (find_what_var_points_to): Likewise.
26137         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
26138
26139 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
26140
26141         PR target/61878
26142         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
26143         (_mm512_mask_cmpge_epu32_mask): Ditto.
26144         (_mm512_cmpge_epu32_mask): Ditto.
26145         (_mm512_mask_cmpge_epi64_mask): Ditto.
26146         (_mm512_cmpge_epi64_mask): Ditto.
26147         (_mm512_mask_cmpge_epu64_mask): Ditto.
26148         (_mm512_cmpge_epu64_mask): Ditto.
26149         (_mm512_mask_cmple_epi32_mask): Ditto.
26150         (_mm512_cmple_epi32_mask): Ditto.
26151         (_mm512_mask_cmple_epu32_mask): Ditto.
26152         (_mm512_cmple_epu32_mask): Ditto.
26153         (_mm512_mask_cmple_epi64_mask): Ditto.
26154         (_mm512_cmple_epi64_mask): Ditto.
26155         (_mm512_mask_cmple_epu64_mask): Ditto.
26156         (_mm512_cmple_epu64_mask): Ditto.
26157         (_mm512_mask_cmplt_epi32_mask): Ditto.
26158         (_mm512_cmplt_epi32_mask): Ditto.
26159         (_mm512_mask_cmplt_epu32_mask): Ditto.
26160         (_mm512_cmplt_epu32_mask): Ditto.
26161         (_mm512_mask_cmplt_epi64_mask): Ditto.
26162         (_mm512_cmplt_epi64_mask): Ditto.
26163         (_mm512_mask_cmplt_epu64_mask): Ditto.
26164         (_mm512_cmplt_epu64_mask): Ditto.
26165         (_mm512_mask_cmpneq_epi32_mask): Ditto.
26166         (_mm512_mask_cmpneq_epu32_mask): Ditto.
26167         (_mm512_cmpneq_epu32_mask): Ditto.
26168         (_mm512_mask_cmpneq_epi64_mask): Ditto.
26169         (_mm512_cmpneq_epi64_mask): Ditto.
26170         (_mm512_mask_cmpneq_epu64_mask): Ditto.
26171         (_mm512_cmpneq_epu64_mask): Ditto.
26172         (_mm512_castpd_ps): Ditto.
26173         (_mm512_castpd_si512): Ditto.
26174         (_mm512_castps_pd): Ditto.
26175         (_mm512_castps_si512): Ditto.
26176         (_mm512_castsi512_ps): Ditto.
26177         (_mm512_castsi512_pd): Ditto.
26178         (_mm512_castpd512_pd128): Ditto.
26179         (_mm512_castps512_ps128): Ditto.
26180         (_mm512_castsi512_si128): Ditto.
26181         (_mm512_castpd512_pd256): Ditto.
26182         (_mm512_castps512_ps256): Ditto.
26183         (_mm512_castsi512_si256): Ditto.
26184         (_mm512_castpd128_pd512): Ditto.
26185         (_mm512_castps128_ps512): Ditto.
26186         (_mm512_castsi128_si512): Ditto.
26187         (_mm512_castpd256_pd512): Ditto.
26188         (_mm512_castps256_ps512): Ditto.
26189         (_mm512_castsi256_si512): Ditto.
26190         (_mm512_cmpeq_epu32_mask): Ditto.
26191         (_mm512_mask_cmpeq_epu32_mask): Ditto.
26192         (_mm512_mask_cmpeq_epu64_mask): Ditto.
26193         (_mm512_cmpeq_epu64_mask): Ditto.
26194         (_mm512_cmpgt_epu32_mask): Ditto.
26195         (_mm512_mask_cmpgt_epu32_mask): Ditto.
26196         (_mm512_mask_cmpgt_epu64_mask): Ditto.
26197         (_mm512_cmpgt_epu64_mask): Ditto.
26198         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
26199         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
26200         * config/i386/i386.c (enum ix86_builtins): Add
26201         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
26202         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
26203         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
26204         (bdesc_args): Add __builtin_ia32_si512_256si,
26205         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
26206         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
26207         __builtin_ia32_pd512_pd.
26208         (ix86_expand_args_builtin): Handle new FTYPEs.
26209         * config/i386/sse.md (castmode): Add 512-bit modes.
26210         (AVX512MODE2P): New.
26211         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
26212         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
26213
26214 2014-08-15  Richard Biener  <rguenther@suse.de>
26215
26216         * fold-const.c (tree_swap_operands_p): Put all constants
26217         last, also strip sign-changing NOPs when considering further
26218         canonicalization.  Canonicalize also when optimizing for size.
26219
26220 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26221
26222         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
26223         one_match > zero_match case to just before simple_sequence.
26224
26225 2014-08-15  Richard Biener  <rguenther@suse.de>
26226
26227         * data-streamer.h (streamer_string_index, string_for_index):
26228         Remove.
26229         * data-streamer-out.c (streamer_string_index): Make static.
26230         * data-streamer-in.c (string_for_index): Likewise.
26231         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
26232         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
26233
26234 2014-08-15  Richard Biener  <rguenther@suse.de>
26235
26236         PR tree-optimization/62031
26237         * tree-data-ref.c (dr_analyze_indices): Do not set
26238         DR_UNCONSTRAINED_BASE.
26239         (dr_may_alias_p): All indirect accesses have to go the
26240         formerly DR_UNCONSTRAINED_BASE path.
26241         * tree-data-ref.h (struct indices): Remove
26242         unconstrained_base member.
26243         (DR_UNCONSTRAINED_BASE): Remove.
26244
26245 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
26246
26247         PR middle-end/62092
26248         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
26249         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
26250         in OMP_CLAUSE_MAP in some outer target region.
26251
26252 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
26253
26254         * tree-ssa-loop-ivopts.c (ivopts_data): New field
26255         name_expansion_cache.
26256         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
26257         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
26258         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
26259         (difference_cannot_overflow_p): New parameter.  Use affine
26260         expansion for equality check.
26261         (iv_elimination_compare_lt): Pass new argument.
26262
26263 2014-08-14  DJ Delorie  <dj@redhat.com>
26264
26265         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
26266         variables to the accumulator.
26267
26268         * config/rl78/predicates.md (rl78_near_mem_operand): New.
26269         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
26270         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
26271         with far-far moves.
26272
26273         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
26274         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
26275         (umulqihi3_virt): Likewise.
26276         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
26277         (umulqihi3_real): Likewise.
26278
26279         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
26280
26281 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
26282
26283         PR tree-optimization/62091
26284         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
26285         function_entry_reached.
26286         (walk_aliased_vdefs): Clear it here.
26287         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
26288
26289 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
26290
26291         * ipa-utils.h (compare_virtual_tables): Declare.
26292         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
26293
26294 2014-08-14  Marek Polacek  <polacek@redhat.com>
26295
26296         DR 458
26297         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
26298         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
26299
26300 2014-08-14  Tom de Vries  <tom@codesourcery.com>
26301
26302         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
26303
26304 2014-08-14  Tom de Vries  <tom@codesourcery.com>
26305
26306         PR rtl-optimization/62004
26307         PR rtl-optimization/62030
26308         * ifcvt.c (rtx_interchangeable_p): New function.
26309         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
26310         * emit-rtl.h (mem_attrs_eq_p): Declare.
26311
26312 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
26313
26314         * graphite-scop-detection.c:
26315         Add inclusion of cp-tree.h.
26316         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
26317         in case they are pointers to object types
26318
26319 2014-08-14  Richard Biener  <rguenther@suse.de>
26320
26321         * BASE-VER: Change to 5.0.0
26322
26323 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26324             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26325             Anna Tikhonova  <anna.tikhonova@intel.com>
26326             Ilya Tocar  <ilya.tocar@intel.com>
26327             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26328             Ilya Verbin  <ilya.verbin@intel.com>
26329             Kirill Yukhin  <kirill.yukhin@intel.com>
26330             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26331
26332         * config/i386/sse.md (define_mode_attr avx512): New.
26333         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
26334         V4DI modes.
26335         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
26336         (define_mode_attr ssse3_avx2): Ditto.
26337         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
26338         (define_mode_attr avx2_avx512bw): New.
26339         (define_mode_attr ssedoublemodelower): New.
26340         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
26341         V32HI, V64QI modes.
26342         (define_mode_attr ssebytemode): Allow V8DI modes.
26343         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
26344         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
26345         (define_mode_attr ssePSmode2): New.
26346         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
26347         V16HI, V32HI modes.
26348         (define_mode_attr dbpsadbwmode): New.
26349         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
26350         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
26351         (vi8_sse4_1_avx2_avx512): New.
26352         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
26353         mode attribute.
26354         (define_mode_attr blendbits): Move before its immediate use.
26355
26356 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26357             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26358             Anna Tikhonova  <anna.tikhonova@intel.com>
26359             Ilya Tocar  <ilya.tocar@intel.com>
26360             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26361             Ilya Verbin  <ilya.verbin@intel.com>
26362             Kirill Yukhin  <kirill.yukhin@intel.com>
26363             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26364
26365         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
26366         * config/i386/subst.md
26367         (define_mode_iterator SUBST_V): Update.
26368         (define_mode_iterator SUBST_A): Ditto.
26369         (define_subst_attr "mask_operand7"): New.
26370         (define_subst_attr "mask_operand10"): New.
26371         (define_subst_attr "mask_operand_arg34") : New.
26372         (define_subst_attr "mask_expand_op3"): New.
26373         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
26374         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
26375         (define_subst_attr "mask_avx512vl_condition"): New.
26376         (define_subst_attr "round_mask_operand4"): Ditto.
26377         (define_subst_attr "round_mask_scalar_op3"): Delete.
26378         (define_subst_attr "round_mask_op4"): New.
26379         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
26380         V16SImode.
26381         (define_subst_attr "round_modev8sf_condition"): New.
26382         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
26383         <MODE>mode.
26384         (define_subst_attr "round_saeonly_mask_operand4"): New.
26385         (define_subst_attr "round_saeonly_mask_op4"): New.
26386         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
26387         V8DImode, V16SImode.
26388         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
26389         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
26390         (define_subst_attr "mask_expand4_args"): New.
26391         (define_subst "mask_expand4"): New.
26392
26393 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26394             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26395             Anna Tikhonova  <anna.tikhonova@intel.com>
26396             Ilya Tocar  <ilya.tocar@intel.com>
26397             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26398             Ilya Verbin  <ilya.verbin@intel.com>
26399             Kirill Yukhin  <kirill.yukhin@intel.com>
26400             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26401
26402         * config/i386/i386.md
26403         (define_attr "isa"): Add avx512bw,noavx512bw.
26404         (define_attr "enabled"): Ditto.
26405         (define_split): Add 32/64-bit mask logic.
26406         (define_insn "*k<logic>qi"): New.
26407         (define_insn "*k<logic>hi"): New.
26408         (define_insn "*anddi_1"): Add mask version.
26409         (define_insn "*andsi_1"): Ditto.
26410         (define_insn "*<code><mode>_1"): Ditto.
26411         (define_insn "*<code>hi_1"): Ditto.
26412         (define_insn "kxnor<mode>"): New.
26413         (define_insn "kunpcksi"): New.
26414         (define_insn "kunpckdi"): New.
26415         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
26416         (define_insn "*one_cmplhi2_1"): Ditto.
26417
26418 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26419             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26420             Anna Tikhonova  <anna.tikhonova@intel.com>
26421             Ilya Tocar  <ilya.tocar@intel.com>
26422             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26423             Ilya Verbin  <ilya.verbin@intel.com>
26424             Kirill Yukhin  <kirill.yukhin@intel.com>
26425             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26426
26427         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
26428         V32HImode.
26429
26430 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26431             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26432             Anna Tikhonova  <anna.tikhonova@intel.com>
26433             Ilya Tocar  <ilya.tocar@intel.com>
26434             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26435             Ilya Verbin  <ilya.verbin@intel.com>
26436             Kirill Yukhin  <kirill.yukhin@intel.com>
26437             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26438
26439         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
26440         registers.
26441         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
26442         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
26443         xmm/ymm16+ when availble.
26444         * config/i386/i386.h
26445         (HARD_REGNO_NREGS): Add mask regs.
26446         (VALID_AVX512F_REG_MODE): Ditto.
26447         (VALID_AVX512F_REG_MODE) : Define.
26448         (VALID_MASK_AVX512BW_MODE): Ditto.
26449         (reg_class) (MASK_REG_P(X)): Define.
26450         * config/i386/i386.md: Do not split long moves with mask register,
26451         use kmovb if avx512bw is availible.
26452         (movdi_internal): Handle mask registers.
26453
26454 2014-08-14  Richard Biener  <rguenther@suse.de>
26455
26456         PR tree-optimization/62081
26457         * tree-ssa-loop.c (pass_fix_loops): New pass.
26458         (pass_tree_loop::gate):  Do not fixup loops here.
26459         * tree-pass.h (make_pass_fix_loops): Declare.
26460         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
26461
26462 2014-08-14  Richard Biener  <rguenther@suse.de>
26463
26464         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
26465         (type_hash_canon): ... this and avoid 2nd lookup for the add.
26466
26467 2014-08-14  Richard Biener  <rguenther@suse.de>
26468
26469         PR tree-optimization/62090
26470         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
26471         (fold_builtin_2): Do not fold sprintf.
26472         (fold_builtin_3): Likewise.
26473         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
26474         moved from builtins.c.
26475         (gimple_fold_builtin): Fold sprintf.
26476
26477 2014-08-14  Richard Biener  <rguenther@suse.de>
26478
26479         PR rtl-optimization/62079
26480         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
26481         run cleanup_cfg.
26482
26483 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
26484
26485         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
26486         current_function_decl.
26487
26488 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
26489
26490         * cgraph.c (cgraph_node::function_symbol): Fix wrong
26491         cgraph_function_node to cgraph_node::function_symbol
26492         refactoring.
26493
26494 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
26495
26496         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
26497         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
26498
26499 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
26500
26501         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
26502         warning.
26503
26504 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
26505
26506         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
26507         generator.
26508
26509 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
26510
26511         PR target/62025
26512         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
26513         any registers that are used in mem_insn.
26514
26515 2014-08-12  Steve Ellcey  <sellcey@mips.com>
26516
26517         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
26518
26519 2014-08-12  Steve Ellcey  <sellcey@mips.com>
26520
26521         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
26522         (MULTILIB_DIRNAMES): Ditto.
26523         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
26524         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
26525         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
26526         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
26527         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
26528         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
26529
26530 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26531
26532         PR target/61413
26533         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
26534         of __ARM_SIZEOF_WCHAR_T.
26535
26536 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26537
26538         PR target/62098
26539         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
26540         Remove unnecessary attributes.
26541
26542 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
26543
26544         * internal-fn.c (init_internal_fns): Fix off-by-one.
26545
26546 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26547             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26548             Anna Tikhonova  <anna.tikhonova@intel.com>
26549             Ilya Tocar  <ilya.tocar@intel.com>
26550             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26551             Ilya Verbin  <ilya.verbin@intel.com>
26552             Kirill Yukhin  <kirill.yukhin@intel.com>
26553             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26554
26555         * config/i386/i386.c (standard_sse_constant_opcode): Use
26556         vpxord/vpternlog if avx512 is availible.
26557
26558 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26559
26560         PR middle-end/62103
26561         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
26562         bitfields, that is when size doesn't match the size of type or the
26563         size of the constructor.
26564
26565 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
26566
26567         * config/rs6000/constraints.md (wh constraint): New constraint,
26568         for FP registers if direct move is available.
26569         (wi constraint): New constraint, for VSX/FP registers that can
26570         handle 64-bit integers.
26571         (wj constraint): New constraint for VSX/FP registers that can
26572         handle 64-bit integers for direct moves.
26573         (wk constraint): New constraint for VSX/FP registers that can
26574         handle 64-bit doubles for direct moves.
26575         (wy constraint): Make documentation match implementation.
26576
26577         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
26578         scalar_in_vmx_p field to simplify tests of whether SFmode or
26579         DFmode can go in the Altivec registers.
26580         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
26581         (rs6000_setup_reg_addr_masks): Likewise.
26582         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
26583         field, and wh/wi/wj/wk constraints.
26584         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
26585         the wh/wi/wj/wk constraints.
26586         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
26587         upper registers, prefer VSX registers unless the operation is a
26588         memory operation with REG+OFFSET addressing.
26589
26590         * config/rs6000/vsx.md (VSr mode attribute): Add support for
26591         DImode.  Change SFmode to use ww constraint instead of d to allow
26592         SF registers in the upper registers.
26593         (VSr2): Likewise.
26594         (VSr3): Likewise.
26595         (VSr5): Fix thinko in comment.
26596         (VSa): New mode attribute that is an alternative to wa, that
26597         returns the VSX register class that a mode can go in, but may not
26598         be the preferred register class.
26599         (VS_64dm): New mode attribute for appropriate register classes for
26600         referencing 64-bit elements of vectors for direct moves and normal
26601         moves.
26602         (VS_64reg): Likewise.
26603         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
26604         register allocator to only registers the data type can handle.
26605         (vsx_le_perm_load_<mode>): Likewise.
26606         (vsx_le_perm_store_<mode>): Likewise.
26607         (vsx_xxpermdi2_le_<mode>): Likewise.
26608         (vsx_xxpermdi4_le_<mode>): Likewise.
26609         (vsx_lxvd2x2_le_<mode>): Likewise.
26610         (vsx_lxvd2x4_le_<mode>): Likewise.
26611         (vsx_stxvd2x2_le_<mode>): Likewise.
26612         (vsx_add<mode>3): Likewise.
26613         (vsx_sub<mode>3): Likewise.
26614         (vsx_mul<mode>3): Likewise.
26615         (vsx_div<mode>3): Likewise.
26616         (vsx_tdiv<mode>3_internal): Likewise.
26617         (vsx_fre<mode>2): Likewise.
26618         (vsx_neg<mode>2): Likewise.
26619         (vsx_abs<mode>2): Likewise.
26620         (vsx_nabs<mode>2): Likewise.
26621         (vsx_smax<mode>3): Likewise.
26622         (vsx_smin<mode>3): Likewise.
26623         (vsx_sqrt<mode>2): Likewise.
26624         (vsx_rsqrte<mode>2): Likewise.
26625         (vsx_tsqrt<mode>2_internal): Likewise.
26626         (vsx_fms<mode>4): Likewise.
26627         (vsx_nfma<mode>4): Likewise.
26628         (vsx_eq<mode>): Likewise.
26629         (vsx_gt<mode>): Likewise.
26630         (vsx_ge<mode>): Likewise.
26631         (vsx_eq<mode>_p): Likewise.
26632         (vsx_gt<mode>_p): Likewise.
26633         (vsx_ge<mode>_p): Likewise.
26634         (vsx_xxsel<mode>): Likewise.
26635         (vsx_xxsel<mode>_uns): Likewise.
26636         (vsx_copysign<mode>3): Likewise.
26637         (vsx_float<VSi><mode>2): Likewise.
26638         (vsx_floatuns<VSi><mode>2): Likewise.
26639         (vsx_fix_trunc<mode><VSi>2): Likewise.
26640         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
26641         (vsx_x<VSv>r<VSs>i): Likewise.
26642         (vsx_x<VSv>r<VSs>ic): Likewise.
26643         (vsx_btrunc<mode>2): Likewise.
26644         (vsx_b2trunc<mode>2): Likewise.
26645         (vsx_floor<mode>2): Likewise.
26646         (vsx_ceil<mode>2): Likewise.
26647         (vsx_<VS_spdp_insn>): Likewise.
26648         (vsx_xscvspdp): Likewise.
26649         (vsx_xvcvspuxds): Likewise.
26650         (vsx_float_fix_<mode>2): Likewise.
26651         (vsx_set_<mode>): Likewise.
26652         (vsx_extract_<mode>_internal1): Likewise.
26653         (vsx_extract_<mode>_internal2): Likewise.
26654         (vsx_extract_<mode>_load): Likewise.
26655         (vsx_extract_<mode>_store): Likewise.
26656         (vsx_splat_<mode>): Likewise.
26657         (vsx_xxspltw_<mode>): Likewise.
26658         (vsx_xxspltw_<mode>_direct): Likewise.
26659         (vsx_xxmrghw_<mode>): Likewise.
26660         (vsx_xxmrglw_<mode>): Likewise.
26661         (vsx_xxsldwi_<mode>): Likewise.
26662         (vsx_xscvdpspn): Tighten constraints to only use register classes
26663         the types use.
26664         (vsx_xscvspdpn): Likewise.
26665         (vsx_xscvdpspn_scalar): Likewise.
26666
26667         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
26668         wj, and wk constraints.
26669         (GPR_REG_CLASS_P): New helper macro for register classes targeting
26670         general purpose registers.
26671
26672         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
26673         direct moves.
26674         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
26675         DImode instead of wm.  Use wk constraint for direct move of DFmode
26676         instead of wm.
26677         (extendsidi2_lfiwax): Likewise.
26678         (lfiwax): Likewise.
26679         (lfiwzx): Likewise.
26680         (movdi_internal64): Likewise.
26681
26682         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
26683         wk constraints. Make the wy constraint documentation match them
26684         implementation.
26685
26686 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
26687
26688         Replacement of isl_int by isl_val
26689         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
26690         (compute_bounds_for_param): use isl_val instead of isl_int
26691         (compute_bounds_for_loop): likewise
26692         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
26693         (build_linearized_memory_access): use isl_val instead of isl_int
26694         (pdr_stride_in_loop): likewise
26695         * graphite-optimize-isl.c:
26696         (getPrevectorMap): use isl_val instead of isl_int
26697         * graphite-poly.c:
26698         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
26699         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
26700         (extern the_isl_ctx): declare
26701         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
26702         (extract_affine_gmp): likewise
26703         (wrap): likewise
26704         (build_loop_iteration_domains): likewise
26705         (add_param_constraints): likewise
26706
26707 2014-08-11  Richard Biener  <rguenther@suse.de>
26708
26709         PR tree-optimization/62075
26710         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
26711         handle uses in patterns.
26712
26713 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26714             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26715             Anna Tikhonova  <anna.tikhonova@intel.com>
26716             Ilya Tocar  <ilya.tocar@intel.com>
26717             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26718             Ilya Verbin  <ilya.verbin@intel.com>
26719             Kirill Yukhin  <kirill.yukhin@intel.com>
26720             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26721
26722         * common/config/i386/i386-common.c
26723         (OPTION_MASK_ISA_AVX512VL_SET): Define.
26724         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
26725         (ix86_handle_option): Handle OPT_mavx512vl.
26726         * config/i386/cpuid.h (bit_AVX512VL): Define.
26727         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
26728         set -mavx512vl accordingly.
26729         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
26730         OPTION_MASK_ISA_AVX512VL.
26731         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
26732         (ix86_option_override_internal): Define PTA_AVX512VL, handle
26733         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
26734         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
26735         * config/i386/i386.h (TARGET_AVX512VL): Define.
26736         (TARGET_AVX512VL_P(x)): Ditto.
26737         * config/i386/i386.opt: Add mavx512vl.
26738
26739 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
26740
26741         PR tree-optimization/62073
26742         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
26743         a basic block.
26744
26745 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26746             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26747             Anna Tikhonova  <anna.tikhonova@intel.com>
26748             Ilya Tocar  <ilya.tocar@intel.com>
26749             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26750             Ilya Verbin  <ilya.verbin@intel.com>
26751             Kirill Yukhin  <kirill.yukhin@intel.com>
26752             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26753
26754         * common/config/i386/i386-common.c
26755         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
26756         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
26757         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
26758         (ix86_handle_option): Handle OPT_mavx512bw.
26759         * config/i386/cpuid.h (bit_AVX512BW): Define.
26760         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
26761         set -mavx512bw accordingly.
26762         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
26763         OPTION_MASK_ISA_AVX512BW.
26764         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
26765         (ix86_option_override_internal): Define PTA_AVX512BW, handle
26766         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
26767         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
26768         * config/i386/i386.h (TARGET_AVX512BW): Define.
26769         (TARGET_AVX512BW_P(x)): Ditto.
26770         * config/i386/i386.opt: Add mavx512bw.
26771
26772 2014-08-11  Richard Biener  <rguenther@suse.de>
26773
26774         PR tree-optimization/62070
26775         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
26776         Remove SSA checking.
26777
26778 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
26779
26780         * asan.c (asan_check_flags): New enum.
26781         (build_check_stmt_with_calls): Removed function.
26782         (build_check_stmt): Split inlining logic to
26783         asan_expand_check_ifn.
26784         (instrument_derefs): Rename parameter.
26785         (instrument_mem_region_access): Rename parameter.
26786         (instrument_strlen_call): Likewise.
26787         (asan_expand_check_ifn): New function.
26788         (asan_instrument): Remove old code.
26789         (pass_sanopt::execute): Change handling of
26790         asan-instrumentation-with-call-threshold.
26791         (asan_clear_shadow): Fix formatting.
26792         (asan_function_start): Likewise.
26793         (asan_emit_stack_protection): Likewise.
26794         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
26795         Update description.
26796         * internal-fn.c (expand_ASAN_CHECK): New function.
26797         * internal-fn.def (ASAN_CHECK): New internal function.
26798         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
26799         Update description.
26800         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
26801         * tree.c: Small comment fix.
26802
26803 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
26804
26805         * gimple.c (gimple_call_fnspec): Support internal functions.
26806         (gimple_call_return_flags): Use const.
26807         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
26808         * internal-fn.def: Add fnspec information.
26809         * internal-fn.h (internal_fn_fnspec): New function.
26810         (init_internal_fns): Declare new function.
26811         * internal-fn.c (internal_fn_fnspec_array): New global variable.
26812         (init_internal_fns): New function.
26813         * tree-core.h: Update macro call.
26814         * tree.c (build_common_builtin_nodes): Initialize internal fns.
26815
26816 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
26817
26818         * lto-streamer.h (struct output_block::symbol): Change from
26819         struct symtab_node to plain symtab_node.
26820         (referenced_from_this_partition_p): Change first parameter
26821         from struct symtab_node to plain symtab_node.
26822
26823 2014-08-10  Marek Polacek  <polacek@redhat.com>
26824
26825         PR c/51849
26826         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
26827
26828 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
26829
26830         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
26831         DECL correctly; do not give up on types in static storage.
26832
26833 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
26834
26835         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
26836
26837 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
26838
26839         * graphite-isl-ast-to-gimple.c:
26840         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
26841
26842         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
26843
26844 2014-08-08  Guozhi Wei  <carrot@google.com>
26845
26846         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
26847
26848 2014-08-08  Cary Coutant  <ccoutant@google.com>
26849
26850         * dwarf2out.c (get_skeleton_type_unit): Remove.
26851         (output_skeleton_debug_sections): Remove skeleton type units.
26852         (output_comdat_type_unit): Likewise.
26853         (dwarf2out_finish): Likewise.
26854
26855 2014-08-07  Yi Yang  <ahyangyi@google.com>
26856
26857         * predict.c (expr_expected_value_1): Remove the redundant assignment.
26858
26859 2014-08-08  Richard Biener  <rguenther@suse.de>
26860
26861         * lto-streamer.h (struct lto_input_block): Make it a class
26862         with a constructor.
26863         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
26864         (struct lto_function_header, struct lto_simple_header,
26865         struct lto_simple_header_with_strings,
26866         struct lto_decl_header, struct lto_function_header): Make
26867         a simple inheritance hieararchy.  Remove unused fields.
26868         (struct lto_asm_header): Remove.
26869         * lto-streamer-out.c (produce_asm): Adjust.
26870         (lto_output_toplevel_asms): Likewise.
26871         (produce_asm_for_decls): Likewise.
26872         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
26873         * data-streamer-in.c (string_for_index): Likewise.
26874         * ipa-inline-analysis.c (inline_read_section): Likewise.
26875         * ipa-prop.c (ipa_prop_read_section): Likewise.
26876         (read_replacements_section): Likewise.
26877         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
26878         * lto-section-in.c (lto_create_simple_input_block): Likewise.
26879         (lto_destroy_simple_input_block): Likewise.
26880         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
26881         (lto_input_toplevel_asms): Likewise.
26882
26883 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26884             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26885             Anna Tikhonova  <anna.tikhonova@intel.com>
26886             Ilya Tocar  <ilya.tocar@intel.com>
26887             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26888             Ilya Verbin  <ilya.verbin@intel.com>
26889             Kirill Yukhin  <kirill.yukhin@intel.com>
26890             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26891
26892         * common/config/i386/i386-common.c
26893         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
26894         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
26895         (ix86_handle_option): Handle OPT_mavx512dq.
26896         * config/i386/cpuid.h (bit_AVX512DQ): Define.
26897         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
26898         set -mavx512dq accordingly.
26899         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
26900         OPTION_MASK_ISA_AVX512DQ.
26901         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
26902         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
26903         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
26904         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
26905         * config/i386/i386.h (TARGET_AVX512DQ): Define.
26906         (TARGET_AVX512DQ_P(x)): Ditto.
26907         * config/i386/i386.opt: Add mavx512dq.
26908
26909 2014-08-08  Richard Biener  <rguenther@suse.de>
26910
26911         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
26912         target_percent, target_percent_s): Export.
26913         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
26914         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
26915         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
26916         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
26917         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
26918         Move to gimple-fold.c.
26919         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
26920         strcat and strcpy.
26921         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
26922         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
26923         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
26924         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
26925         (rewrite_call_expr_array): Remove.
26926         (fold_builtin_sprintf_chk): Likewise.
26927         (fold_builtin_snprintf_chk): Likewise.
26928         (fold_builtin_varargs): Remove handling of sprintf_chk,
26929         vsprintf_chk, snprintf_chk and vsnprintf_chk.
26930         (gimple_fold_builtin_sprintf_chk): Remove.
26931         (gimple_fold_builtin_snprintf_chk): Likewise.
26932         (gimple_fold_builtin_varargs): Likewise.
26933         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
26934         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
26935         * gimple.c (gimple_seq_add_seq_without_update): New function.
26936         * gimple.h (gimple_seq_add_seq_without_update): Declare.
26937         * gimple-fold.c: Include output.h.
26938         (gsi_replace_with_seq_vops): New function, split out from ...
26939         (gimplify_and_update_call_from_tree): ... here.
26940         (replace_call_with_value): New function.
26941         (replace_call_with_call_and_fold): Likewise.
26942         (var_decl_component_p): Moved from builtins.c.
26943         (gimple_fold_builtin_memory_op): Moved from builtins.c
26944         fold_builtin_memory_op and rewritten to GIMPLE.
26945         (gimple_fold_builtin_memset): Likewise.
26946         (gimple_fold_builtin_strcpy): Likewise.
26947         (gimple_fold_builtin_strncpy): Likewise.
26948         (gimple_fold_builtin_strcat): Likewise.
26949         (gimple_fold_builtin_fputs): Likewise.
26950         (gimple_fold_builtin_memory_chk): Likewise.
26951         (gimple_fold_builtin_stxcpy_chk): Likewise.
26952         (gimple_fold_builtin_stxncpy_chk): Likewise.
26953         (gimple_fold_builtin_snprintf_chk): Likewise.
26954         (gimple_fold_builtin_sprintf_chk): Likewise.
26955         (gimple_fold_builtin_strlen): New function.
26956         (gimple_fold_builtin_with_strlen): New function split out from
26957         gimple_fold_builtin.
26958         (gimple_fold_builtin): Change signature and handle
26959         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
26960         here.  Call gimple_fold_builtin_with_strlen.
26961         (gimple_fold_call): Adjust.
26962
26963 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
26964
26965         * calls.c (precompute_arguments): Check
26966         promoted_for_signed_and_unsigned_p and set the promoted mode.
26967         (promoted_for_signed_and_unsigned_p): New function.
26968         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
26969         and set the promoted mode.
26970         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
26971         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
26972         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
26973
26974
26975 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
26976
26977         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
26978         instead of SUBREG_PROMOTED_UNSIGNED_SET.
26979         (expand_call): Likewise.
26980         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
26981         to get promoted mode.
26982         * combine.c (record_promoted_value): Skip > 0 comparison with
26983         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
26984         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
26985         of SUBREG_PROMOTED_UNSIGNED_P.
26986         (convert_modes): Likewise.
26987         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
26988         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
26989         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
26990         SUBREG_PROMOTED_UNSIGNED_SET.
26991         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
26992         instead of SUBREG_PROMOTED_UNSIGNED_SET.
26993         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
26994         SUBREG_PROMOTED_SET.
26995         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
26996         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
26997         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
26998         of SUBREG_PROMOTED_UNSIGNED_P.
26999         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
27000         (SUBREG_PROMOTED_SET): New define.
27001         (SUBREG_PROMOTED_GET): Likewise.
27002         (SUBREG_PROMOTED_SIGN): Likewise.
27003         (SUBREG_PROMOTED_SIGNED_P): Likewise.
27004         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
27005         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
27006         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
27007         instead of SUBREG_PROMOTED_UNSIGNED_GET.
27008         (nonzero_bits1): Skip > 0 comparison with the results as
27009         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
27010         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
27011         of !SUBREG_PROMOTED_UNSIGNED_P.
27012         * simplify-rtx.c (simplify_unary_operation_1): Use new
27013         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
27014         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
27015         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
27016         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
27017
27018 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
27019
27020         * ipa-devirt.c: Include gimple-pretty-print.h
27021         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
27022         further tests.
27023         (decl_maybe_in_construction_p): Fix conditional on cdtor check
27024         (get_polymorphic_call_info): Fix return value
27025         (type_change_info): New sturcture based on ipa-prop
27026         variant.
27027         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
27028         based on ipa-prop variant.
27029         (extr_type_from_vtbl_ptr_store): New function
27030         based on ipa-prop variant.
27031         (record_known_type): New function.
27032         (check_stmt_for_type_change): New function.
27033         (get_dynamic_type): New function.
27034         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
27035         * tree-ssa-pre.c: ipa-utils.h
27036         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
27037         machinery; sanity check with ipa-prop devirtualization.
27038         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
27039         polymorphic flag.
27040
27041 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
27042
27043         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
27044         * alias.c, cfgexpand.c, cgraphbuild.c,
27045         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
27046         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
27047         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
27048         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
27049         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
27050         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
27051         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
27052         dse.c, except.c, gengtype.c, gimple-expr.c,
27053         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
27054         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
27055         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
27056         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
27057         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
27058         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
27059         pointer-set.h.
27060         * pointer-set.c: Remove file.
27061         * pointer-set.h: Remove file.
27062
27063 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27064
27065         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
27066         * config/arm/types.md (f_sels, f_seld): Delete.
27067
27068 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27069
27070         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
27071         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
27072         (aarch64_movdi_<mode>high): Likewise.
27073         (aarch64_mov<mode>high_di): Likewise.
27074         (aarch64_movdi_<mode>low): Likewise.
27075         (aarch64_mov<mode>low_di): Likewise.
27076         (aarch64_movtilow_tilow): Likewise.
27077         Add comment explaining usage of fp,simd attributes and of
27078         TARGET_FLOAT and TARGET_SIMD.
27079
27080 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
27081             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27082
27083         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
27084         Use MOVN when one of the half-words is 0xffff.
27085
27086 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
27087
27088         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
27089
27090 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27091
27092         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
27093         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
27094         (rfs_str): String corresponding to RFS_* constants.
27095         (rank_for_schedule_stats_t): New typedef.
27096         (rank_for_schedule_stats): New static variable.
27097         (rfs_result): New static function.
27098         (rank_for_schedule): Track statistics for deciding heuristics.
27099         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
27100         static functions.
27101         (ready_sort): Use them for debug printouts.
27102         (schedule_block): Init statistics state.  Print statistics on
27103         rank_for_schedule decisions.
27104
27105 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27106
27107         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
27108
27109 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
27110
27111         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
27112         constraint.
27113
27114 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
27115
27116         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
27117         function to not conflict.
27118         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
27119         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
27120         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
27121         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
27122         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
27123         of pointer_map.
27124
27125 2014-08-07  Marek Polacek  <polacek@redhat.com>
27126
27127         * fold-const.c (fold_binary_loc): Add folding of
27128         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
27129
27130 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
27131
27132         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
27133         instead of type size.
27134         (ASM_FINISH_DECLARE_OBJECT): Likewise.
27135
27136 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
27137
27138         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
27139         (*thumb1_movqi_insn): Likewise.
27140         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
27141
27142 2014-08-07  Tom de Vries  <tom@codesourcery.com>
27143
27144         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
27145         (glibc_2_11_or_earlier): Remove effective-target keywords.
27146
27147 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
27148
27149         * config/arm/arm.c (bdesc_2arg): Fix typo.
27150         (arm_atomic_assign_expand_fenv): Remove The default implementation.
27151
27152 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
27153
27154         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
27155
27156 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
27157
27158         PR debug/61923
27159         * haifa-sched.c (advance_one_cycle): Fix dump.
27160         (schedule_block): Don't advance cycle if we are already at the
27161         beginning of the cycle.
27162
27163 2014-08-06  Martin Jambor  <mjambor@suse.cz>
27164
27165         PR ipa/61393
27166         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
27167
27168 2014-08-06  Richard Biener  <rguenther@suse.de>
27169
27170         PR lto/62034
27171         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
27172         SCCs here.
27173         (lto_input_tree): Pop SCCs here.
27174
27175 2014-08-06  Richard Biener  <rguenther@suse.de>
27176
27177         PR tree-optimization/61320
27178         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
27179         handle misaligned loads.
27180
27181 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
27182
27183         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
27184         (aarch64_expand_vec_perm_const): Check for dup before zip.
27185
27186 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27187
27188         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
27189         CONST_INT_P instead of GET_CODE and compare.
27190         (aarch64_select_cc_mode): Likewise.
27191         (aarch64_print_operand): Likewise.
27192         (aarch64_rtx_costs): Likewise.
27193         (aarch64_simd_valid_immediate): Likewise.
27194         (aarch64_simd_check_vect_par_cnst_half): Likewise.
27195         (aarch64_simd_emit_pair_result_insn): Likewise.
27196
27197 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
27198
27199         * gdbhooks.py (find_gcc_source_dir): New helper function.
27200         (class PassNames): New class, locating and parsing passes.def.
27201         (class BreakOnPass): New command "break-on-pass".
27202
27203 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
27204
27205         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
27206         getting olde.
27207
27208 2014-08-05  Richard Biener  <rguenther@suse.de>
27209
27210         PR rtl-optimization/61672
27211         * emit-rtl.h (mem_attrs_eq_p): Declare.
27212         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
27213         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
27214         * cfgcleanup.c (merge_memattrs): Likewise.
27215         Include emit-rtl.h.
27216
27217 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27218
27219         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
27220         rather than singleton vectors.
27221         (vqdmlsls_lane_s32): Likewise.
27222
27223 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27224
27225         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
27226         Use VSDQ_HSI mode iterator.
27227         (aarch64_sqrdmulh_laneq<mode>): Likewise.
27228         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
27229         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
27230         Use BUILTIN_VDQHS macro.
27231         (sqrdmulh_laneq): Likewise.
27232         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
27233         (vqdmlals_laneq_s32): Likewise.
27234         (vqdmlslh_laneq_s16): Likewise.
27235         (vqdmlsls_laneq_s32): Likewise.
27236         (vqdmulhh_laneq_s16): Likewise.
27237         (vqdmulhs_laneq_s32): Likewise.
27238         (vqrdmulhh_laneq_s16): Likewise.
27239         (vqrdmulhs_laneq_s32): Likewise.
27240
27241 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27242
27243         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
27244         (vmuld_laneq_f64): Likewise.
27245         (vmuls_laneq_f32): Likewise.
27246         (vmul_n_f64): Likewise.
27247         (vmuld_lane_f64): Reimplement in C.
27248         (vmuls_lane_f32): Likewise.
27249
27250 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27251
27252         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
27253         to reservation.
27254         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
27255
27256 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27257
27258         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
27259         (rbitsi2): Likewise.
27260         (*arm_rev): Set predicable and predicable_short_it attributes.
27261
27262 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27263
27264         * convert.c (convert_to_integer): Guard transformation to lrint by
27265         -fno-math-errno.
27266
27267 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
27268
27269         * config/aarch64/aarch64-builtins.c
27270         (aarch64_simd_builtin_type_mode): Delete.
27271         (v8qi_UP): Remap to V8QImode.
27272         (v4hi_UP): Remap to V4HImode.
27273         (v2si_UP): Remap to V2SImode.
27274         (v2sf_UP): Remap to V2SFmode.
27275         (v1df_UP): Remap to V1DFmode.
27276         (di_UP): Remap to DImode.
27277         (df_UP): Remap to DFmode.
27278         (v16qi_UP):V16QImode.
27279         (v8hi_UP): Remap to V8HImode.
27280         (v4si_UP): Remap to V4SImode.
27281         (v4sf_UP): Remap to V4SFmode.
27282         (v2di_UP): Remap to V2DImode.
27283         (v2df_UP): Remap to V2DFmode.
27284         (ti_UP): Remap to TImode.
27285         (ei_UP): Remap to EImode.
27286         (oi_UP): Remap to OImode.
27287         (ci_UP): Map to CImode.
27288         (xi_UP): Remap to XImode.
27289         (si_UP): Remap to SImode.
27290         (sf_UP): Remap to SFmode.
27291         (hi_UP): Remap to HImode.
27292         (qi_UP): Remap to QImode.
27293         (aarch64_simd_builtin_datum): Make mode a machine_mode.
27294         (VAR1): Build builtin name.
27295         (aarch64_init_simd_builtins): Remove dead code.
27296
27297 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
27298
27299         * graphite-isl-ast-to-gimple.c:
27300         (set_options): New function.
27301         (scop_to_isl_ast): Add calling of set_options.
27302
27303 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
27304
27305         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
27306         (analyze_iv_to_split_insn): Don't initialize them.
27307         (get_ivts_expr): Removed.
27308         (allocate_basic_variable, insert_base_initialization): Use
27309         SET_SRC instead of *get_ivts_expr.
27310         (split_iv): Use &SET_SRC instead of get_ivts_expr.
27311
27312 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
27313
27314         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
27315         (translate_isl_ast_for_loop): Add checking of the
27316         flag_loop_parallelize_all.
27317         (ast_build_before_for): New function.
27318         (scop_to_isl_ast): Add checking of the
27319         flag_loop_parallelize_all.
27320         * graphite-dependences.c: Move the defenition of the
27321         scop_get_dependences from graphite-optimize-isl.c to this file.
27322         (apply_schedule_on_deps): Add checking of the ux's emptiness.
27323         (carries_deps): Add checking of the x's value.
27324         * graphite-optimize-isl.c: Move the defenition of the
27325         scop_get_dependences to graphite-dependences.c.
27326         * graphite-poly.h: Add declarations of scop_get_dependences
27327         and carries_deps.
27328
27329 2014-08-04  Rohit  <rohitarulraj@freescale.com>
27330
27331         PR target/60102
27332         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
27333         names.
27334         (alt_reg_names): Likewise.
27335         (rs6000_dwarf_register_span): For SPE high registers, replace
27336         dwarf register numbers with GCC hard register numbers.
27337         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
27338         (rs6000_dbx_register_number): For SPE high registers, return dwarf
27339         register number for the corresponding GCC hard register number.
27340         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
27341         newly added GCC hard register numbers for SPE high registers.
27342         (DWARF_FRAME_REGISTERS):  Likewise.
27343         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
27344         (DWARF_FRAME_REGNUM): Likewise.
27345         (FIXED_REGISTERS): Likewise.
27346         (CALL_USED_REGISTERS): Likewise.
27347         (CALL_REALLY_USED_REGISTERS): Likewise.
27348         (REG_ALLOC_ORDER): Likewise.
27349         (enum reg_class): Likewise.
27350         (REG_CLASS_NAMES): Likewise.
27351         (REG_CLASS_CONTENTS): Likewise.
27352         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
27353
27354 2014-08-04  Richard Biener  <rguenther@suse.de>
27355
27356         * gimple-fold.h (gimple_fold_builtin): Remove.
27357         * gimple-fold.c (gimple_fold_builtin): Make static.
27358         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
27359         fold_stmt, not gimple_fold_builtin.
27360
27361 2014-08-04  Martin Liska <mliska@suse.cz>
27362
27363         * cgraph.h (csi_end_p): Removed.
27364         (csi_next): Likewise.
27365         (csi_node): Likewise.
27366         (csi_start): Likewise.
27367         (cgraph_node_in_set_p): Likewise.
27368         (cgraph_node_set_size): Likewise.
27369         (vsi_end_p): Likewise.
27370         (vsi_next): Likewise.
27371         (vsi_node): Likewise.
27372         (vsi_start): Likewise.
27373         (varpool_node_set_size): Likewise.
27374         (cgraph_node_set_nonempty_p): Likewise.
27375         (varpool_node_set_nonempty_p): Likewise.
27376         * cgraphunit.c (cgraph_process_new_functions): vec replaces
27377         cgraph_node_set.
27378         * ipa-inline-transform.c: Likewise.
27379         * ipa-utils.c (cgraph_node_set_new): Removed.
27380         (cgraph_node_set_add): Likewise.
27381         (cgraph_node_set_remove): Likewise.
27382         (cgraph_node_set_find): Likewise.
27383         (dump_cgraph_node_set): Likewise.
27384         (debug_cgraph_node_set): Likewise.
27385         (free_cgraph_node_set): Likewise.
27386         (varpool_node_set_new): Likewise.
27387         (varpool_node_set_add): Likewise.
27388         (varpool_node_set_remove): Likewise.
27389         (varpool_node_set_find): Likewise.
27390         (dump_varpool_node_set): Likewise.
27391         (free_varpool_node_set): Likewise.
27392         (debug_varpool_node_set): Likewise.
27393         * tree-emutls.c (struct tls_var_data):
27394         (emutls_index): Removed.
27395         (emutls_decl): Likewise.
27396         (gen_emutls_addr): Function implementation uses newly added
27397         hash_map<varpool_node *, tls_var_data>.
27398         (clear_access_vars): Likewise.
27399         (create_emultls_var): Likewise.
27400         (ipa_lower_emutls): Likewise.
27401         (reset_access): New function.
27402
27403 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
27404
27405         * config/i386/i386.c (ix86_option_override_internal): Add
27406         PTA_RDRND and PTA_MOVBE for bdver4.
27407
27408 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27409             James Greenhalgh  <james.greenhalgh@arm.com>
27410
27411         * doc/md.texi (clrsb): Document.
27412         (clz): Change reference to x into operand 1.
27413         (ctz): Likewise.
27414         (popcount): Likewise.
27415
27416 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27417
27418         PR target/61713
27419         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
27420         move to subtarget in serial version if result is ignored.
27421
27422 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27423             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27424
27425         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
27426         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
27427         (sched_analyze_insn): Update use of try_group_insn to
27428         sched_macro_fuse_insns.
27429         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
27430         arguments that are not conditional jumps.
27431
27432 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
27433
27434         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
27435         family information. Handle BTVER2 cpu with cpuid family value.
27436
27437 2014-08-04  Tom de Vries  <tom@codesourcery.com>
27438
27439         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
27440         (glibc_2_11_or_earlier): Document effective-target keywords.
27441
27442 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
27443
27444         * ipa-devirt.c (odr_type_warn_count): Add type.
27445         (possible_polymorphic_call_targets): Set it.
27446         (ipa_devirt): Use it.
27447
27448 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
27449
27450         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
27451         Document.
27452         * ipa-devirt.c: Include hash-map.h
27453         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
27454         (clear_speculation): Break out of ...
27455         (get_class_context): ... here; speed up handling obviously useless
27456         speculations.
27457         (odr_type_warn_count, decl_warn_count): New structures.
27458         (final_warning_record): New structure.
27459         (final_warning_records): New static variable.
27460         (possible_polymorphic_call_targets): Cleanup handling of
27461         speculative info; do not build speculation when user do not care;
27462         record info about warnings when asked for.
27463         (add_decl_warning): New function.
27464         (type_warning_cmp): New function.
27465         (decl_warning_cmp): New function.
27466         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
27467         (gate): Enable pass when warnings are requested.
27468         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
27469         options.
27470
27471 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
27472
27473         * hash-map.h (default_hashmap_traits::mark_key_deleted):
27474         Fix cast.
27475         (hash_map::remove): New method.
27476         (hash_map::traverse): New method.
27477         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
27478         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
27479         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
27480         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
27481         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
27482         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
27483         pointer_map.
27484
27485 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
27486
27487         * hash-set.h: new File.
27488         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
27489         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
27490         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
27491         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
27492         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
27493         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
27494         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
27495         varpool.c: Use hash_set instead of pointer_set.
27496
27497 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
27498
27499         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
27500
27501 2014-08-01  Jiong Wang <jiong.wang@arm.com>
27502
27503         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
27504         for frame access when strict_p is false.
27505
27506 2014-08-01  Renlin Li <renlin.li@arm.com>
27507 2014-08-01  Jiong Wang <jiong.wang@arm.com>
27508
27509         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
27510         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
27511         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
27512         Declaration.
27513         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
27514         predicate.
27515         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
27516         aarch64_mem_pair_offset.
27517
27518 2014-08-01  Jiong Wang <jiong.wang@arm.com>
27519
27520         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
27521         offset.
27522         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
27523         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
27524
27525 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
27526
27527         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
27528
27529 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
27530
27531         PR regression/61510
27532         * cgraphunit.c (analyze_functions): Use get_create rather than get
27533         for decls which are clones of abstract functions.
27534
27535 2014-08-01  Martin Liska  <mliska@suse.cz>
27536
27537         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
27538         * ipa-prop.h (count_formal_params): Global function created from static.
27539         * ipa-prop.c (count_formal_params): Likewise.
27540         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
27541         profiles for semantically equivalent functions.
27542         * passes.c (do_per_function): If we load body of a function
27543         during WPA, this condition should behave same.
27544         * varpool.c (ctor_for_folding): More tolerant assert for variable
27545         aliases created during WPA.
27546
27547 2014-08-01  Martin Liska  <mliska@suse.cz>
27548
27549         * doc/invoke.texi (Options That Control Optimization): Documentation
27550         for -foptimize-strlen introduced. Optimization levels default options
27551         fixed.
27552
27553 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
27554
27555         * opts.c (common_handle_option): Handle -fsanitize=alignment.
27556         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
27557         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
27558         type to bool.
27559         * stor-layout.h (min_align_of_type): New prototype.
27560         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
27561         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
27562         check.
27563         * ubsan.c: Include builtins.h.
27564         (ubsan_expand_bounds_ifn): Change return type to bool,
27565         always return true.
27566         (ubsan_expand_null_ifn): Change return type to bool, change
27567         argument to gimple_stmt_iterator *.  Handle both null and alignment
27568         sanitization, take type from ckind argument's type rather than
27569         first argument.
27570         (instrument_member_call): Removed.
27571         (instrument_mem_ref): Remove t argument, add mem and base arguments.
27572         Handle both null and alignment sanitization, don't say whole
27573         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
27574         call instead of 2 argument.
27575         (instrument_null): Adjust instrument_mem_ref caller.  Don't
27576         instrument calls here.
27577         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
27578         like SANITIZE_NULL.
27579         * stor-layout.c (min_align_of_type): New function.
27580         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
27581         Or it into SANITIZE_UNDEFINED.
27582         * doc/invoke.texi (-fsanitize=alignment): Document.
27583
27584 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27585
27586         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
27587
27588 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27589
27590         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
27591         inchash.
27592         (vn_reference_compute_hash): Dito.
27593         (vn_nary_op_compute_hash): Dito.
27594         (vn_phi_compute_hash): Dito.
27595         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
27596
27597 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27598
27599         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
27600         Rename to inchash:add_expr_commutative. Convert to inchash.
27601         (iterative_hash_hashable_expr): Rename to
27602         inchash:add_hashable_expr. Convert to inchash.
27603         (avail_expr_hash): Dito.
27604
27605 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27606
27607         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
27608         Convert to inchash.
27609
27610 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27611
27612         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
27613
27614 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27615
27616         * Makefile.in (OBJS): Add rtlhash.o
27617         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
27618         (loc_checksum): Dito.
27619         (loc_checksum_ordered): Dito.
27620         (hash_loc_operands): Dito.
27621         (hash_locs): Dito.
27622         (hash_loc_list): Dito.
27623         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
27624         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
27625         * rtlhash.c: New file.
27626         * rtlhash.h: New file.
27627
27628 2014-07-31  Andi Kleen  <ak@linux.intel.com>
27629
27630         * inchash.h (inchash): Change inchash class to namespace.
27631         (class hash): ... Rename from inchash.
27632         (add_object): Move from macro to class template.
27633         * lto-streamer-out.c (hash_tree): Change inchash
27634         to inchash::hash.
27635         * tree.c (build_type_attribute_qual_variant): Dito.
27636         (type_hash_list): Dito.
27637         (attribute_hash_list): Dito.
27638         (iterative_hstate_expr): Rename to inchash::add_expr
27639         (build_range_type_1): Change inchash to inchash::hash
27640         and use hash::add_expr.
27641         (build_array_type_1): Dito.
27642         (build_function_type): Dito
27643         (build_method_type_directly): Dito.
27644         (build_offset_type): Dito.
27645         (build_complex_type): Dito.
27646         (make_vector_type): Dito.
27647         * tree.h (iterative_hash_expr): Dito.
27648
27649 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
27650
27651         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
27652
27653 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
27654
27655         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
27656         correct alphabetical position.
27657         (vpaddd_f64): Rewrite using builtins.
27658         (vpaddd_s64): Move to correct alphabetical position.
27659         (vpaddd_u64): New.
27660
27661 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
27662
27663         PR target/61844
27664         * config/sh/sh.c (sh_legitimate_address_p,
27665         sh_legitimize_reload_address): Handle reg+reg address modes when
27666         ALLOW_INDEXED_ADDRESS is false.
27667         * config/sh/predicates.md (general_movsrc_operand,
27668         general_movdst_operand): Likewise.
27669
27670 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
27671
27672         * config/aarch64/aarch64-builtins.c
27673         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
27674         BYTES_BIG_ENDIAN.
27675
27676 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
27677
27678         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
27679         the generated mask based on BYTES_BIG_ENDIAN.
27680         (aarch64_simd_check_vect_par_cnst_half): New.
27681         * config/aarch64/aarch64-protos.h
27682         (aarch64_simd_check_vect_par_cnst_half): New.
27683         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
27684         the check out to aarch64_simd_check_vect_par_cnst_half.
27685         (vect_par_cnst_lo_half): Likewise.
27686         * config/aarch64/aarch64-simd.md
27687         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
27688         (move_hi_quad_<mode>): Always generate a low mask.
27689
27690 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
27691
27692         * doc/invoke.texi (AVR Options): Add documentation about
27693         __AVR_DEVICE_NAME__ built-in macro.
27694
27695 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
27696
27697         PR target/61948
27698         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
27699         constraints are satisfied.
27700         (<shift>di3_neon): Likewise.
27701
27702 2014-07-31  Richard Biener  <rguenther@suse.de>
27703
27704         PR tree-optimization/61964
27705         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
27706         by structural equality.
27707
27708 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
27709
27710         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
27711         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
27712         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
27713         New enums.
27714         * gcc.c (sanitize_spec_function): Support new option.
27715         (SANITIZER_SPEC): Remove now redundant check.
27716         * opts.c (common_handle_option): Support new option.
27717         (finish_options): Check for incompatibilities.
27718         * toplev.c (process_options): Split userspace-specific checks.
27719
27720 2014-07-31  Richard Biener  <rguenther@suse.de>
27721
27722         * lto-streamer.h (struct output_block): Remove global.
27723         (struct data_in): Remove labels, num_named_labels and
27724         num_unnamed_labels.
27725         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
27726         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
27727
27728 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
27729
27730         PR c++/60517
27731         * common.opt (-Wreturn-local-addr): Moved from c.opt.
27732         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
27733         (isolate_path): New argument to avoid inserting a trap.
27734         (find_implicit_erroneous_behaviour): Handle returning the address
27735         of a local variable.
27736         (find_explicit_erroneous_behaviour): Likewise.
27737
27738 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
27739
27740         PR lto/61868
27741         * toplev.c (init_random_seed): Move piece of code never called to
27742         set_random_seed.
27743         (set_random_seed): see above.
27744
27745 2014-07-31  Tom de Vries  <tom@codesourcery.com>
27746
27747         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
27748
27749 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
27750
27751         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
27752         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
27753
27754 2014-07-31  Richard Biener  <rguenther@suse.de>
27755
27756         * data-streamer.h (streamer_write_data_stream): Declare here,
27757         renamed from ...
27758         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
27759         * lto-cgraph.c (lto_output_node): Adjust.
27760         (lto_output_varpool_node): Likewise.
27761         * data-streamer-out.c (streamer_string_index): Likewise.
27762         (streamer_write_data_stream, lto_append_block): Move from ...
27763         * lto-section-out.c (lto_output_data_stream,
27764         lto_append_block): ... here.
27765
27766 2014-07-30  Mike Stump  <mikestump@comcast.net>
27767
27768         * configure.ac: Also check for popen.
27769         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
27770         * configure: Regenerate.
27771         * config.in:  Regenerate.
27772
27773 2014-07-30  Martin Jambor  <mjambor@suse.cz>
27774
27775         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
27776         parameter to gimple.
27777
27778 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27779
27780         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
27781         address as second parameter to __tpf_eh_return routine.
27782
27783 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
27784
27785         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
27786         Thumb2.
27787
27788 2014-07-30  Tom Tromey  <tromey@redhat.com>
27789
27790         PR c/59855
27791         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
27792         * doc/extend.texi (Type Attributes): Document designated_init
27793         attribute.
27794
27795 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
27796
27797         * graphite-isl-ast-to-gimple.c:
27798         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
27799         (gcc_expression_from_isl_expression): Pass type to
27800         gcc_expression_from_isl_ast_expr_id.
27801
27802 2014-07-30  Richard Biener  <rguenther@suse.de>
27803
27804         * lto-streamer.h (lto_write_data): New function.
27805         * langhooks.c (lhd_append_data): Do not free block.
27806         * lto-section-out.c (lto_write_data): New function writing
27807         raw data to the current section.
27808         (lto_write_stream): Adjust for langhook semantic change.
27809         (lto_destroy_simple_output_block): Write header directly.
27810         * lto-opts.c (lto_write_options): Write options directly.
27811         * lto-streamer-out.c (produce_asm): Write heaeder directly.
27812         (lto_output_toplevel_asms): Likewise.
27813         (copy_function_or_variable): Copy data directly.
27814         (write_global_references): Output index table directly.
27815         (lto_output_decl_state_refs): Likewise.
27816         (write_symbol): Write data directly.
27817         (produce_symtab): Adjust.
27818         (produce_asm_for_decls): Output header and refs directly.
27819
27820 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
27821
27822         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
27823         to speculative_targets
27824         (get_class_context): Fix handling of contextes without outer type;
27825         avoid matching non-polymorphic types in LTO.
27826         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
27827         parameter to speculative_targetsp; handle speculation.
27828         (dump_possible_polymorphic_call_targets): Update dumping.
27829
27830 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
27831
27832         * common.opt (Wodr): Enable by default.
27833
27834 2014-07-29  Olivier Hainque  <hainque@adacore.com>
27835
27836         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
27837
27838 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
27839
27840         PR bootstrap/61914
27841         * gengtype.c (strtoken): New function.
27842         (create_user_defined_type): Replace strtok with strtoken.
27843
27844 2014-07-29  Nathan Sidwell  <nathan@acm.org>
27845
27846         * gcov-io.c (gcov_var): Make hidden.
27847         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
27848         (gcov_do_dump): Declare.
27849         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
27850
27851 2014-07-29  Martin Jambor  <mjambor@suse.cz>
27852
27853         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
27854         parameter to gimple.
27855         (sra_modify_assign): Likewise.
27856
27857 2014-07-29  Richard Biener  <rguenther@suse.de>
27858
27859         PR middle-end/52478
27860         * expr.c (expand_expr_real_2): Revert last change.
27861
27862 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
27863
27864         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
27865         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
27866         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
27867         call.
27868         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
27869         (contains_type_p): Forward declare.
27870         (polymorphic_call_target_hasher::hash): Hash speculative info.
27871         (polymorphic_call_target_hasher::equal): Compare speculative info.
27872         (get_class_context): Handle speuclation.
27873         (contains_type_p): Update.
27874         (get_polymorphic_call_info_for_decl): Update.
27875         (walk_ssa_copies): Break out from ...
27876         (get_polymorphic_call_info): ... here; set speculative context
27877         before giving up.
27878         * ipa-prop.c (ipa_write_indirect_edge_info,
27879         ipa_read_indirect_edge_info): Stream speculative context.
27880         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
27881         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
27882         SPECULATIVE_MAYBE_DERIVED_TYPE).
27883         (possible_polymorphic_call_targets overriders): Update.
27884         (dump_possible_polymorphic_call_targets overriders): Update.
27885         (dump_possible_polymorphic_call_target_p overriders): Update.
27886
27887 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
27888
27889         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
27890         ipa-devirt path; fix thinko there.
27891
27892 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
27893
27894         * config/i386/i386.c (ix86_return_in_memory): Replace one
27895         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
27896
27897 2014-07-28  Marek Polacek  <polacek@redhat.com>
27898
27899         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
27900
27901 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
27902
27903         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
27904         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
27905         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
27906         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
27907         (USE_LD_AS_NEEDED): Likewise.
27908         (ASM_APP_ON): Likewise.
27909         (ASM_APP_OFF): Likewise.
27910         (TARGET_POSIX_IO): Likewise.
27911         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
27912         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
27913         (USE_LD_AS_NEEDED): Likewise.
27914         (ASM_APP_ON): Likewise.
27915         (ASM_APP_OFF): Likewise.
27916         (TARGET_POSIX_IO): Likewise.
27917
27918 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
27919
27920         PR middle-end/61734
27921         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
27922         operators other than the equality operators.
27923
27924 2014-07-28  Richard Biener  <rguenther@suse.de>
27925
27926         PR middle-end/52478
27927         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
27928         sure to register SImode ones, not only >= word_mode ones.
27929         * expr.c (expand_expr_real_2): When expanding -ftrapv
27930         binops do not use OPTAB_LIB_WIDEN.
27931
27932 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
27933
27934         PR middle-end/61919
27935         * tree-outof-ssa.c (insert_partition_copy_on_edge)
27936         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
27937         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
27938         inserting them in the insn stream.
27939
27940 2014-07-28  Marek Polacek  <polacek@redhat.com>
27941
27942         PR middle-end/61913
27943         * common.opt (Wodr): Add Var.
27944
27945 2014-07-28  Richard Biener  <rguenther@suse.de>
27946
27947         PR tree-optimization/61921
27948         * tree-ssa-structalias.c (create_variable_info_for_1): Check
27949         if there is a varpool node before dereferencing it.
27950
27951 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
27952
27953         * graphite-sese-to-poly.c:
27954         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
27955         id of the pbb), which contains pointer to the pbb1.
27956
27957         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
27958
27959 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
27960
27961         * graphite-isl-ast-to-gimple.c:
27962         (graphite_create_new_guard): New function.
27963         (translate_isl_ast_node_if): New function.
27964         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
27965
27966         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
27967
27968 2014-07-27  Anthony Green  <green@moxielogic.com>
27969
27970         * config.gcc: Add moxie-*-moxiebox* configuration.
27971         * config/moxie/moxiebox.h: New file.
27972
27973 2014-07-26  Andrew Pinski  <apinski@cavium.com>
27974
27975         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
27976         from the read only register.
27977
27978 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
27979
27980         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
27981         as the allocation class if it isn't likely to be spilled.
27982
27983 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
27984
27985         * rtl.h (tls_referenced_p): Declare.
27986         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
27987         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
27988         (mips_cannot_force_const_mem): Use tls_referenced_p.
27989         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
27990         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
27991         instead of pa_tls_referenced_p.
27992         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
27993         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
27994         (pa_legitimate_constant_p): Likewise.
27995         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
27996         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
27997         (rs6000_cannot_force_const_mem, rs6000_emit_move)
27998         (rs6000_address_for_altivec): Use tls_referenced_p instead of
27999         rs6000_tls_referenced_p.
28000         (rs6000_tls_symbol_ref_1): Delete.
28001
28002 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
28003
28004         PR target/44551
28005         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
28006         Optimize inverse of a VEC_CONCAT.
28007
28008 2014-07-25  Xinliang David Li  <davidxl@google.com>
28009
28010         * params.def: New parameter.
28011         * coverage.c (get_coverage_counts): Check new flag.
28012         (coverage_compute_profile_id): Check new flag.
28013         (coverage_begin_function): Check new flag.
28014         (coverage_end_function): Check new flag.
28015         * value-prof.c (coverage_node_map_initialized_p): New function.
28016         (init_node_map): Populate map with all functions.
28017         * doc/invoke.texi: Document new parameter.
28018
28019 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
28020             Richard Biener <rguenther@suse.de>
28021
28022         * lto-streamer-out.c (struct sccs): Turn to ...
28023         (class DFS): ... this one; refactor the DFS walk so it can
28024         be re-done on per-SCC basis.
28025         (DFS::DFS): New constructor.
28026         (DFS::~DFS): New destructor.
28027         (hash_tree): Add new MAP argument holding in-SCC hash values;
28028         remove POINTER_TYPE hashing hack.
28029         (scc_entry_compare): Rename to ...
28030         (DFS::scc_entry_compare): ... this one.
28031         (hash_scc): Rename to ...
28032         (DFS::hash_scc): ... this one; pass output_block instead
28033         of streamer_cache; work harder to get unique and stable SCC
28034         hashes.
28035         (DFS_write_tree): Rename to ...
28036         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
28037         (lto_output_tree): Update.
28038
28039 2014-07-25  Andi Kleen  <ak@linux.intel.com>
28040
28041         * lto-streamer-out.c (hash_tree): Convert to inchash.
28042
28043 2014-07-25  Andi Kleen  <ak@linux.intel.com>
28044
28045         * tree.c (build_type_attribute_qual_variant): Use inchash.
28046         (type_hash_list): Dito.
28047         (attribute_hash_list): Dito
28048         (iterative_hstate_expr): Dito.
28049         (iterative_hash_expr): Dito.
28050         (build_range_type_1): Dito.
28051         (build_array_type_1): Dito.
28052         (build_function_type): Dito.
28053         (build_method_type_directly): Dito.
28054         (build_offset_type): Dito.
28055         (build_complex_type): Dito.
28056         (make_vector_type): Dito.
28057         * tree.h (iterative_hash_expr): Add compat wrapper.
28058         (iterative_hstate_expr): Add.
28059
28060 2014-07-25  Andi Kleen  <ak@linux.intel.com>
28061
28062         * Makefile.in (OBJS): Add inchash.o.
28063         (PLUGIN_HEADERS): Add inchash.h.
28064         * ipa-devirt.c: Include inchash.h.
28065         * lto-streamer-out.c: Dito.
28066         * tree-ssa-dom.c: Dito.
28067         * tree-ssa-pre.c: Dito.
28068         * tree-ssa-sccvn.c: Dito.
28069         * tree-ssa-tail-merge.c: Dito.
28070         * asan.c: Dito.
28071         * tree.c (iterative_hash_hashval_t): Move to ...
28072         (iterative_hash_host_wide_int): Move to ...
28073         * inchash.c: Here. New file.
28074         * tree.h (iterative_hash_hashval_t): Move to ...
28075         (iterative_hash_host_wide_int): Move to ...
28076         * inchash.h: Here. New file.
28077
28078 2014-07-25  Richard Biener  <rguenther@suse.de>
28079
28080         PR middle-end/61762
28081         PR middle-end/61894
28082         * fold-const.c (native_encode_int): Add and handle offset
28083         parameter to do partial encodings of expr.
28084         (native_encode_fixed): Likewise.
28085         (native_encode_real): Likewise.
28086         (native_encode_complex): Likewise.
28087         (native_encode_vector): Likewise.
28088         (native_encode_string): Likewise.
28089         (native_encode_expr): Likewise.
28090         * fold-const.c (native_encode_expr): Add offset parameter
28091         defaulting to -1.
28092         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
28093         (fold_ctor_reference): Handle all reads from tcc_constant
28094         ctors.
28095
28096 2014-07-25  Richard Biener  <rguenther@suse.de>
28097
28098         * tree-inline.c (estimate_move_cost): Mark speed_p argument
28099         as possibly unused.
28100
28101 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28102
28103         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
28104
28105 2014-07-24  Kyle McMartin  <kyle@redhat.com>
28106
28107         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
28108
28109 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28110
28111         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
28112         Add prototype.
28113         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
28114         function.
28115         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
28116         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
28117         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
28118
28119 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28120
28121         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
28122         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
28123         aggregate types.  Instead, *all* aggregate types, except for single-
28124         element or homogeneous float/vector aggregates, are quadword-aligned
28125         if required by their type alignment.  Issue -Wpsabi note when a type
28126         is now treated differently than before.
28127
28128 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28129
28130         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
28131         does not fit fully into floating-point registers, and there is still
28132         space in the register parameter area, use GPRs to pass those parts
28133         of the argument.  Issue -Wpsabi note if any parameter is now treated
28134         differently than before.
28135         (rs6000_arg_partial_bytes): Update.
28136
28137 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
28138
28139         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
28140
28141 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
28142
28143         * rtl.h (target_rtl): Remove lang_dependent_initialized.
28144         * toplev.c (initialize_rtl): Don't use it.  Move previously
28145         "language-dependent" calls to...
28146         (backend_init): ...here.
28147         (lang_dependent_init_target): Don't set lang_dependent_initialized.
28148         Assert that RTL initialization hasn't happend yet.
28149
28150 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
28151
28152         PR rtl-optimization/61629
28153         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
28154         they have already been initialized.
28155
28156 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
28157
28158         PR middle-end/61268
28159         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
28160         DECL_INCOMING_RTL and entry_parm.
28161         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
28162         * calls.c (load_register_parameters): Likewise argument values.
28163         (emit_library_call_value_1, store_one_arg): Likewise argument
28164         save areas.
28165         * config/i386/i386.c (assign_386_stack_local): Likewise the local
28166         stack slot.
28167         * explow.c (validize_mem): Modify the argument in-place.
28168
28169 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
28170
28171         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
28172         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
28173
28174 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
28175
28176         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
28177         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
28178
28179 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
28180
28181         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
28182         (aarch64_save_callee_saves): New parameter "skip_wb".
28183         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
28184
28185 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
28186
28187         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
28188         "wb_candidate2".
28189         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
28190
28191 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
28192
28193         * graphite-isl-ast-to-gimple.c:
28194         (graphite_create_new_loop): Add calling of isl_id_free to properly
28195         decrement reference counts.
28196
28197         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
28198
28199 2014-07-24  Martin Liska  <mliska@suse.cz>
28200         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
28201         function used.
28202         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
28203         (rs6000_code_end): Likewise.
28204
28205 2014-07-24  Martin Liska  <mliska@suse.cz>
28206
28207         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
28208         symtab_node funtion used.
28209         (rs6000_xcoff_declare_object_name): Likewise.
28210
28211 2014-07-24  Martin Liska  <mliska@suse.cz>
28212
28213         * cgraphunit.c (compile): Correct function used.
28214
28215 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
28216
28217         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
28218         as non-indexable.
28219
28220 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
28221
28222         PR lto/61802
28223         * varasm.c (bss_initializer_p): Handle offlined ctors.
28224         (align_variable, get_variable_align): Likewise.
28225         (make_decl_one_only): Likewise.
28226         (default_binds_local_p_1): Likewise.
28227         (decl_binds_to_current_def_p): Likewise.
28228         (get_variable_section): Get constructor if it is offlined.
28229         (assemble_variable_contents): Sanity check that the caller
28230         streamed in the ctor in LTO.
28231
28232 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
28233
28234         * graphite-isl-ast-to-gimple.c:
28235         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
28236         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
28237         isl_ast_op_pdiv_r to the different case.
28238
28239         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
28240
28241 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28242
28243         PR middle-end/61876
28244         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
28245         when flag_errno_math is on.
28246
28247 2014-07-24  Martin Liska  <mliska@suse.cz>
28248
28249         * cgraph.h (varpool_node):
28250         (availability get_availability (void)):
28251         created from cgraph_variable_initializer_availability
28252         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
28253         created from: cgraph_variable_initializer_availability
28254         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
28255         (void finalize_named_section_flags (void)):
28256         created from varpool_finalize_named_section_flags
28257         (bool assemble_decl (void)): created from varpool_assemble_decl
28258         (void analyze (void)): created from varpool_analyze_node
28259         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
28260         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
28261         (void remove_initializer (void)): created from varpool_remove_initializer
28262         (tree get_constructor (void)): created from varpool_get_constructor
28263         (bool externally_visible_p (void)): created from varpool_externally_visible_p
28264         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
28265         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
28266         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
28267         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
28268         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
28269         (static bool output_variables (void)): created from varpool_output_variables
28270         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
28271         created from varpool_extra_name_alias
28272         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
28273         (static void dump_varpool (FILE *f)): created from dump_varpool
28274         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
28275         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
28276         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
28277         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
28278         (void assemble_aliases (void)): created from assemble_aliases
28279
28280 2014-07-24  Martin Liska  <mliska@suse.cz>
28281
28282         * cgraph.h (symtab_node):
28283         (void register_symbol (void)): created from symtab_register_node
28284         (void remove (void)): created from symtab_remove_node
28285         (void dump (FILE *f)): created from dump_symtab_node
28286         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
28287         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
28288         (struct ipa_ref *add_reference (symtab_node *referred_node,
28289         enum ipa_ref_use use_type)): created from add_reference
28290         (struct ipa_ref *add_reference (symtab_node *referred_node,
28291         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
28292         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
28293         gimple stmt)): created from maybe_add_reference
28294         (bool semantically_equivalent_p (symtab_node *target)): created from
28295         symtab_semantically_equivalent_p
28296         (void remove_from_same_comdat_group (void)): created from
28297         remove_from_same_comdat_group
28298         (void add_to_same_comdat_group (symtab_node *old_node)): created from
28299         symtab_add_to_same_comdat_group
28300         (void dissolve_same_comdat_group_list (void)): created from
28301         symtab_dissolve_same_comdat_group_list
28302         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
28303         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
28304         created from symtab_alias_ultimate_target
28305         (inline symtab_node *next_defined_symbol (void)): created from
28306         symtab_next_defined_symbol
28307         (bool resolve_alias (symtab_node *target)): created from
28308         symtab_resolve_alias
28309         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
28310         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
28311         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
28312         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
28313         (void set_section (const char *section)): created from set_section_1
28314         (enum availability get_availability (void)): created from symtab_node_availability
28315         (void make_decl_local (void)): created from symtab_make_decl_local
28316         (bool real_symbol_p (void)): created from symtab_read_node
28317         (can_be_discarded_p (void)): created from symtab_can_be_discarded
28318         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
28319         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
28320         symtab_in_same_comdat_p;
28321         (bool address_taken_from_non_vtable_p (void)): created from
28322         address_taken_from_non_vtable_p
28323         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
28324         (static void dump_table (FILE *)): created from dump_symtab
28325         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
28326         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
28327         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
28328         symtab_used_from_object_file_p
28329         (void dump_base (FILE *)): created from dump_symtab_base
28330         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
28331         (void unregister (void)): created from symtab_unregister_node
28332         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
28333         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
28334         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
28335         symtab_nonoverwritable_alias_1
28336         * cgraph.h (cgraph_node):
28337         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
28338         created from cgraph_remove_node_and_inline_clones
28339         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
28340         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
28341         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
28342         (cgraph_node *function_symbol (enum availability *avail = NULL)):
28343         created from cgraph_function_node
28344         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
28345         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
28346         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
28347         created from cgraph_create_clone
28348         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
28349         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
28350         created from cgraph_create_virtual_clone
28351         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
28352         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
28353         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
28354         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
28355         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
28356         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
28357         created from cgraph_function_version_info
28358         (struct cgraph_function_version_info *insert_new_function_version (void)):
28359         created from insert_new_cgraph_node_version
28360         (struct cgraph_function_version_info *function_version (void)): created from
28361         get_cgraph_node_version
28362         (void analyze (void)): created from analyze_function
28363         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
28364         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
28365         tree real_alias) cgraph_add_thunk
28366         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
28367         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
28368         created from cgraph_function_or_thunk_node
28369         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
28370         created from expand_thunk
28371         (void reset (void)): created from cgraph_reset_node
28372         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
28373         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
28374         (void remove (void)): created from cgraph_remove_node
28375         (void dump (FILE *f)): created from dump_cgraph_node
28376         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
28377         (bool get_body (void)): created from cgraph_get_body
28378         (void release_body (void)): created from cgraph_release_function_body
28379         (void unnest (void)): created from cgraph_unnest_node
28380         (void make_local (void)): created from cgraph_make_node_local
28381         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
28382         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
28383         gcov_type count, int freq)): created from cgraph_create_edge
28384         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
28385         gcov_type count, int freq)): created from cgraph_create_indirect_edge
28386         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
28387         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
28388         created from cgraph_create_edge_including_clones
28389         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
28390         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
28391         (void remove_callers (void)): created from cgraph_node_remove_callers
28392         (void remove_callees (void)): created from cgraph_node_remove_callees
28393         (enum availability get_availability (void)): created from cgraph_function_body_availability
28394         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
28395         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
28396         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
28397         (void call_duplication_hooks (cgraph_node *node2)): created from
28398         cgraph_call_node_duplication_hooks
28399         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
28400         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
28401         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
28402         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
28403         (void call_function_insertion_hooks (void)):
28404         created from cgraph_call_function_insertion_hooks
28405         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
28406         (bool local_p (void)): created from cgraph_local_node
28407         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
28408         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
28409         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
28410         (inline bool only_called_directly_or_aliased_p (void)):
28411         created from cgraph_only_called_directly_or_aliased_p
28412         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
28413         created from cgraph_will_be_removed_from_program_if_no_direct_calls
28414         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
28415         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
28416         (bool can_remove_if_no_direct_calls_p (void)):
28417         created from cgraph_can_remove_if_no_direct_calls_p
28418         (inline bool has_gimple_body_p (void)):
28419         created from cgraph_function_with_gimple_body_p
28420         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
28421         (static void dump_cgraph (FILE *f)): created from dump_cgraph
28422         (static inline void debug_cgraph (void)): created from debug_cgraph
28423         (static void record_function_versions (tree decl1, tree decl2)):
28424         created from record_function_versions
28425         (static void delete_function_version (tree decl)):
28426         created from delete_function_version
28427         (static void add_new_function (tree fndecl, bool lowered)):
28428         created from cgraph_add_new_function
28429         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
28430         (static cgraph_node * create (tree decl)): created from cgraph_create_node
28431         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
28432         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
28433         (static cgraph_node *get_for_asmname (tree asmname)):
28434         created from cgraph_node_for_asm
28435         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
28436         created from cgraph_same_body_alias
28437         (static bool used_from_object_file_p_worker (cgraph_node *node,
28438         void *): new function
28439         (static bool non_local_p (cgraph_node *node, void *)):
28440         created from cgraph_non_local_node_p_1
28441         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
28442         created from verify_cgraph
28443         (static bool make_local (cgraph_node *node, void *)):
28444         created from cgraph_make_node_local
28445         (static cgraph_node *create_alias (tree alias, tree target)):
28446         created from cgraph_create_function_alias
28447         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
28448         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
28449         created from cgraph_create_edge_1
28450         * cgraph.h (varpool_node):
28451         (void remove (void)): created from varpool_remove_node
28452         (void dump (FILE *f)): created from dump_varpool_node
28453
28454 2014-07-24  Richard Biener  <rguenther@suse.de>
28455
28456         PR ipa/61823
28457         * tree-ssa-structalias.c (create_variable_info_for_1):
28458         Use varpool_get_constructor.
28459         (create_variable_info_for): Likewise.
28460
28461 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
28462
28463         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
28464         subtract outgoing area size when restoring stack_pointer_rtx.
28465
28466 2014-07-24  Nick Clifton  <nickc@redhat.com>
28467
28468         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
28469         that operations are taking place in parallel.
28470         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
28471
28472 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
28473
28474         * omp-low.c (extract_omp_for_data): Add missing break statement.
28475
28476 2014-07-24  Richard Biener  <rguenther@suse.de>
28477
28478         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
28479         * tree-inline.c (estimate_move_cost): Add speed_p parameter
28480         and adjust MOVE_RATIO query accordingly.
28481         (estimate_num_insns): Adjust callers.
28482         * ipa-prop.c (ipa_populate_param_decls): Likewise.
28483         * ipa-cp.c (gather_context_independent_values,
28484         estimate_local_effects): Likewise.
28485         * ipa-split.c (consider_split): Likewise.
28486
28487 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
28488
28489         * config/i386/driver-i386.c: Remove names of unused arguments and
28490         unnecessary unused attributes.
28491         * config/i386/host-mingw32.c: Likewise.
28492         * config/i386/i386.c: Likewise.
28493         * config/i386/winnt-stubs.c: Likewise.
28494         * config/i386/winnt.c: Likewise.
28495
28496 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28497
28498         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
28499         (aarch64_gen_loadwb_pair): New helper function.
28500         (aarch64_expand_epilogue): Simplify code using new helper functions.
28501         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
28502
28503 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28504
28505         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
28506         (aarch64_gen_storewb_pair): New helper function.
28507         (aarch64_expand_prologue): Simplify code using new helper functions.
28508         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
28509
28510 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28511
28512         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
28513         Rename to aarch64_save_callee_saves, remove restore code.
28514         (aarch64_restore_callee_saves): New function.
28515
28516 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28517
28518         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
28519         (aarch64_save_callee_saves): New function to handle reg save
28520         for both core and vectore regs.
28521
28522 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28523
28524         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
28525         (aarch64_gen_store_pair): New helper function.
28526         (aarch64_save_or_restore_callee_save_registers)
28527         (aarch64_save_or_restore_fprs): Use new helper functions.
28528
28529 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28530
28531         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
28532         (aarch64_save_or_restore_callee_save_registers)
28533         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
28534
28535 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28536
28537         * config/aarch64/aarch64.c
28538         (aarch64_save_or_restore_callee_save_registers)
28539         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
28540
28541 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28542
28543         * config/aarch64/aarch64.c
28544         (aarch64_save_or_restore_callee_save_registers)
28545         (aarch64_save_or_restore_fprs): Remove 'increment'.
28546
28547 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28548
28549         * config/aarch64/aarch64.c
28550         (aarch64_save_or_restore_callee_save_registers)
28551         (aarch64_save_or_restore_fprs): Use register offset in
28552         cfun->machine->frame.reg_offset.
28553
28554 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28555
28556         * config/aarch64/aarch64.c
28557         (aarch64_save_or_restore_callee_save_registers)
28558         (aarch64_save_or_restore_fprs): Remove base_rtx.
28559
28560 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28561
28562         * config/aarch64/aarch64.c
28563         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
28564         to 'start_offset'.  Remove local variable 'start_offset'.
28565
28566 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28567
28568         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
28569         type to HOST_WIDE_INT.
28570
28571 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28572
28573         * config/aarch64/aarch64.c (aarch64_expand_prologue)
28574         (aarch64_save_or_restore_fprs)
28575         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
28576
28577 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
28578
28579         * config/arm/t-rtems-eabi: Add
28580         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
28581         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
28582         mbig-endian/mthumb/march=armv7-r, and
28583         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
28584         multilibs.
28585
28586 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
28587             Chris Johns <chrisj@rtems.org>
28588             Joel Sherrill <joel.sherrill@oarcorp.com>
28589
28590         * config.gcc: Add nios2-*-rtems*.
28591         * config/nios2/rtems.h: New file.
28592         * gcc/config/nios2/t-rtems: New file.
28593
28594 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
28595
28596         PR target/61396
28597         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
28598         constant numbers, not general constants.
28599         (rs6000_expand_vector_init): Ditto.
28600
28601 2014-07-23  Nathan Sidwell  <nathan@acm.org>
28602
28603         * gcov-tool.c (gcov_list): Declare here.
28604         (set_gcov_list): Remove.
28605         (gcov_output_files): Set gcov_list directly.
28606
28607 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
28608
28609         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
28610
28611 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
28612
28613         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
28614         callee-saved registers are available for padding purpose
28615         and r3 is not mandatory, then prefer use those callee-saved
28616         instead of r3.
28617
28618 2014-07-23  Richard Biener  <rguenther@suse.de>
28619
28620         * params.def (PARAM_MAX_COMBINE_INSNS): New.
28621         * combine.c: Include statistics.h and params.h.
28622         (combine_instructions): Guard three and four insn combines
28623         with max-combine-insns value.  Record statistics for combines
28624         performed.
28625         * doc/invoke.texi (max-combine-insns): Document new param.
28626
28627 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
28628
28629         * graphite-isl-ast-to-gimple.c:
28630         (translate_isl_ast_node_block): New function.
28631         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
28632
28633         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
28634         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
28635
28636 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
28637
28638         * graphite-isl-ast-to-gimple.c:
28639         (get_max_schedule_dimensions): New function.
28640         (extend_schedule): Likewise.
28641         (generate_isl_schedule): Add calling of extend_schedule and
28642         get_max_schedule_dimensions.
28643
28644 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28645
28646         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
28647         (case UNSPEC): Handle UNSPEC_RBIT.
28648
28649 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28650
28651         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
28652         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
28653
28654 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28655
28656         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
28657
28658 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
28659
28660         * graphite-isl-ast-to-gimple.c:
28661         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
28662         (ivs_params_clear):
28663         (build_iv_mapping): New function.
28664         (translate_isl_ast_node_user): Likewise.
28665         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
28666
28667         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
28668         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
28669         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
28670
28671 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
28672
28673         PR target/55701
28674         * config/arm/arm.md (setmem): New pattern.
28675         * config/arm/arm-protos.h (struct tune_params): New fields.
28676         (arm_gen_setmem): New prototype.
28677         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
28678         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
28679         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
28680         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
28681         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
28682         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
28683         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
28684         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
28685         (arm_const_inline_cost): New function.
28686         (arm_block_set_max_insns): New function.
28687         (arm_block_set_non_vect_profit_p): New function.
28688         (arm_block_set_vect_profit_p): New function.
28689         (arm_block_set_unaligned_vect): New function.
28690         (arm_block_set_aligned_vect): New function.
28691         (arm_block_set_unaligned_non_vect): New function.
28692         (arm_block_set_aligned_non_vect): New function.
28693         (arm_block_set_vect, arm_gen_setmem): New functions.
28694
28695 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
28696
28697         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
28698
28699 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
28700
28701         PR target/61855
28702         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
28703         out of #ifdef __OPTIMIZE__.
28704
28705 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
28706
28707         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
28708         different trapping status if -fnon-call-exceptions is enabled.
28709
28710 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
28711
28712         * expr.c (store_field): Handle VOIDmode for calls that return values
28713         in multiple locations.
28714
28715 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28716
28717         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
28718         (altivec_vsldoi_<mode>): Likewise.
28719
28720 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
28721
28722         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
28723         to the number of characters in the line.
28724
28725 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
28726
28727         * graphite-isl-ast-to-gimple.c: Add using of
28728         build_nonstandard_integer_type instead of int128_integer_type_node.
28729
28730 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
28731
28732         * toplev.c (output_stack_usage): Adjust the location of the warning.
28733
28734 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
28735
28736         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
28737         (*membar_storeload): Disable for LEON3.
28738
28739 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28740
28741         PR rtl-optimization/61461
28742         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
28743
28744 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
28745
28746         PR target/61794
28747         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
28748         Fix instruction constraint.
28749         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
28750
28751 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
28752
28753         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
28754
28755 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
28756
28757         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
28758         GNU coding standards.
28759         (nds32_register_move_cost): Likewise.
28760         (nds32_memory_move_cost): Likewise.
28761         (nds32_address_cost): Likewise.
28762
28763 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
28764
28765         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
28766
28767 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
28768
28769         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
28770         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
28771         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
28772         (HAVE_sync_compare_and_swapqi): Define.
28773         (HAVE_sync_compare_and_swaphi): Likewise.
28774         (HAVE_sync_compare_and_swapsi): Likewise.
28775
28776 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
28777
28778         * config/mips/p5600.md: Add missing cpu tests.
28779
28780 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28781
28782         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
28783         (vmla_f64): Likewise.
28784         (vfms_f64): Likewise.
28785         (vmls_f64): Likewise.
28786
28787 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28788
28789         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
28790         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
28791
28792 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28793
28794         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
28795         (vmlal_high_lane_s32): Likewise.
28796         (vmlal_high_lane_u16): Likewise.
28797         (vmlal_high_lane_u32): Likewise.
28798         (vmlsl_high_lane_s16): Likewise.
28799         (vmlsl_high_lane_s32): Likewise.
28800         (vmlsl_high_lane_u16): Likewise.
28801         (vmlsl_high_lane_u32): Likewise.
28802
28803 2014-07-17  Terry Guo  <terry.guo@arm.com>
28804
28805         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
28806         (alus_reg): Renamed to alus_sreg.
28807         * config/arm/arm-fixed.md: Change type of non-dsp instructions
28808         from alu_reg to alu_sreg.  Change type of dsp instructions from
28809         alu_reg to alu_dsp_reg.
28810         * config/arm/thumb1.md: Likewise.
28811         * config/arm/thumb2.md: Likewise.
28812         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
28813         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
28814         with alu_sreg and alus_sreg.
28815         * config/arm/arm1026ejs.md (alu_op): Likewise.
28816         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
28817         * config/arm/arm926ejs.md (9_alu_op): Likewise.
28818         * config/arm/fa526.md (526_alu_op): Likewise.
28819         * config/arm/fa606te.md (606te_alu_op): Likewise.
28820         * config/arm/fa626te.md (626te_alu_op): Likewise.
28821         * config/arm/fa726te.md (726te_alu_op): Likewise.
28822         * config/arm/fmp626.md (mp626_alu_op): Likewise.
28823         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
28824         alu_sreg, alu_dsp_reg and alus_sreg.
28825         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
28826         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
28827         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
28828         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
28829         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
28830         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
28831         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
28832         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
28833         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
28834         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
28835         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
28836         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
28837         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
28838         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
28839         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
28840         alus_reg to alus_sreg.
28841
28842 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
28843
28844         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
28845         infinity format.
28846
28847 2014-07-17  Richard Biener  <rguenther@suse.de>
28848
28849         PR rtl-optimization/61801
28850         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
28851         don't set reg_pending_barrier if it appears in a debug-insn.
28852
28853 2014-07-16  DJ Delorie  <dj@redhat.com>
28854
28855         * config/rx/rx.c (rx_option_override): Fix alignment values.
28856         (rx_align_for_label): Likewise.
28857
28858 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
28859
28860         PR target/61737.
28861         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
28862         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
28863         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
28864         functions.
28865         (cris_print_index, cris_print_operand, cris_constant_index_p)
28866         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
28867         (cris_address_cost): Ditto last CONSTANT_P.
28868         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
28869         callers changed.  Yield cris_offsettable_symbol for non-PIC
28870         constant symbolic expressions including labels.  Yield cris_unspec
28871         for all unspecs.
28872         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
28873         target to pic_offset_table_rtx for calls that will likely go
28874         through PLT, const0_rtx when they can't.  All callers changed.
28875         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
28876         symbolic expressions to be PICified.  Remove second, redundant,
28877         assert on can_create_pseudo_p returning non-zero.  Use
28878         replace_equiv_address_nv, not replace_equiv_address, for final
28879         operand update.
28880         * config/cris/cris.md ("movsi"): Move variable t to pattern
28881         toplevel. Adjust assert for new cris_symbol_type member.  Use
28882         CONSTANT_P instead of CONSTANT_ADDRESS_P.
28883         ("*movsi_internal") <case 9>: Make check for valid unspec operands
28884         for lapc stricter.
28885         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
28886         ("call", "call_value"): Use second incoming operand as a marker
28887         for pic-offset-table-register being used.
28888         ("*expanded_call_non_v32", "*expanded_call_v32")
28889         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
28890         second incoming operand to CALL, match cris_call_type_marker.
28891         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
28892         ("*expanded_call_side"): Ditto.  Fix typo in comment.
28893         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
28894         CONSTANT_P.
28895         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
28896         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
28897         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
28898         users changed.  Add members cris_offsettable_symbol and cris_unspec.
28899         (cris_symbol_type): Rename from cris_pic_symbol_type.
28900         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
28901         just CONSTANT_P.
28902         * config/cris/cris-protos.h (cris_symbol_type_of,
28903         cris_expand_pic_call_address): Adjust prototypes.
28904         (cris_legitimate_constant_p): New prototype.
28905
28906         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
28907         an existing tmake_file.  Don't add t-slibgcc and t-linux.
28908
28909 2014-07-17  Jason Merrill  <jason@redhat.com>
28910
28911         PR c++/61623
28912         * symtab.c (symtab_remove_from_same_comdat_group): Also
28913         set_comdat_group to NULL_TREE.
28914         (verify_symtab): Fix diagnostic.
28915
28916 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
28917
28918         PR target/61662
28919         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
28920
28921 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
28922
28923         Support location tracking for built-in macro tokens
28924         * input.h (is_location_from_builtin_token): New function declaration.
28925         * input.c (is_location_from_builtin_token): New function definition.
28926         * toplev.c (general_init): Tell libcpp what the pre-defined
28927         spelling location for built-in tokens is.
28928
28929 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
28930
28931         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
28932         on the FUNCTION_DECL.
28933
28934 2014-07-16  Richard Biener  <rguenther@suse.de>
28935
28936         PR other/61782
28937         * doc/extend.texi (always_inline): Clarify.
28938
28939 2014-07-15  Eric Christopher  <echristo@gmail.com>
28940
28941         * doc/invoke.texi (Link Options): Document -z option.
28942
28943 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
28944
28945         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
28946         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
28947
28948 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
28949
28950         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
28951
28952 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
28953
28954         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
28955         varpool_assemble_decl.
28956         * varpool.c (varpool_assemble_decl): Assert that node->definition is
28957         true.
28958
28959 2014-07-15  Michael Matz  <matz@suse.de>
28960
28961         PR rtl-optimization/61772
28962         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
28963
28964 2014-07-15  Richard Biener  <rguenther@suse.de>
28965
28966         * opts.c (default_options_table): Disable bit-ccp at -Og.
28967
28968 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
28969
28970         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
28971
28972 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
28973
28974         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
28975         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
28976         call langhook for unknown declaration.
28977         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
28978         * tree.h (DECL_ARGUMENTS): Update.
28979         * print-tree.c (print_node): Update.
28980         * tree-core.h (tree_decl_non_common): Remove arguments.
28981         (tree_function_decl): Add arguments.
28982
28983 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
28984
28985         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
28986
28987 2014-07-14  Richard Biener  <rguenther@suse.de>
28988
28989         PR tree-optimization/61779
28990         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
28991         simplifying a condition.
28992
28993 2014-07-14  Richard Biener  <rguenther@suse.de>
28994
28995         * builtins.c (c_strlen): Make only_value == 2 really only
28996         affect warning generation.
28997
28998 2014-07-14  Richard Biener  <rguenther@suse.de>
28999
29000         PR tree-optimization/61757
29001         PR tree-optimization/61783
29002         PR tree-optimization/61787
29003         * tree-ssa-dom.c (record_equality): Revert canonicalization
29004         change and add comment.
29005         (propagate_rhs_into_lhs): Revert previous fix, removing
29006         loop depth restriction again.
29007
29008 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29009
29010         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
29011         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
29012         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
29013         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
29014         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
29015         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
29016         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
29017
29018 2014-07-14  Richard Biener  <rguenther@suse.de>
29019
29020         * cgraph.h (decl_in_symtab_p): Make inline.
29021
29022 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
29023
29024         PR middle-end/61294
29025         * doc/invoke.texi (-Wmemset-transposed-args): Document.
29026
29027         PR target/61656
29028         * config/i386/i386.c (classify_argument): Don't merge classes above
29029         number of words.
29030
29031 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
29032
29033         * cgraph.h (symtab_node): Add nonzero_address.
29034         (decl_in_symtab_p): Break out from ...
29035         (symtab_get_node): ... here.
29036         * fold-const.c: Include cgraph.h
29037         (tree_single_nonzero_warnv_p): Use symtab to determine
29038         if symbol is non-zero.
29039         * symtab.c (symtab_node::nonzero_address): New method.
29040
29041 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
29042
29043         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
29044         forgotten in previous commit.
29045
29046 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
29047
29048         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
29049         on builtin types.
29050         * ipa-devirt.c: Include stor-layout.h and intl.h
29051         (odr_subtypes_equivalent_p): New function.
29052         (warn_odr): New function.
29053         (warn_type_mismatch): New function.
29054         (odr_types_equivalent_p): New function.
29055         (add_type_duplicate): Use it.
29056         * common.opt (Wodr): New flag.
29057         * doc/invoke.texi (Wodr): Document new warning.
29058
29059 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
29060
29061         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
29062         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
29063         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
29064         (varpool_get_constructor): Push CTORS_IN timevar.
29065         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
29066
29067 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
29068
29069         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
29070         Remove VOID_FTYPE_PUSHORT.
29071         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
29072         Change code to USHORT_FTYPE_VOID.
29073         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
29074         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
29075         (ix86_atomic_assign_expand_fenv): Update for
29076         __builtin_ia32_fnstsw changes.
29077         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
29078         (fnstsw): Change operand 0 to nonimmediate operand.
29079
29080 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
29081
29082         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
29083         (varpool_get_constructor): New function.
29084         (varpool_ctor_useable_for_folding_p): Break out from ...
29085         (ctor_for_folding): ... here; use varpool_get_constructor.
29086         (varpool_assemble_decl): Likewise.
29087         * lto-streamer.h (struct output_block): Turn cgraph_node
29088         to symbol filed.
29089         (lto_input_variable_constructor): Declare.
29090         * ipa-visibility.c (function_and_variable_visibility): Use
29091         varpool_get_constructor.
29092         * cgraph.h (varpool_get_constructor): Declare.
29093         (varpool_ctor_useable_for_folding_p): New function.
29094         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
29095         parameter; return error_mark_node for non-trivial constructors.
29096         (lto_write_tree_1, DFS_write_tree): Update use of
29097         get_symbol_initial_value.
29098         (output_function): Update initialization of symbol.
29099         (output_constructor): New function.
29100         (copy_function): Rename to ..
29101         (copy_function_or_variable): ... this one; handle vars too.
29102         (lto_output): Output variable sections.
29103         * lto-streamer-in.c (input_constructor): New function.
29104         (lto_read_body): Rename from ...
29105         (lto_read_body_or_constructor): ... this one; handle vars too.
29106         (lto_input_variable_constructor): New function.
29107         * ipa-prop.c (ipa_prop_write_jump_functions,
29108         ipa_prop_write_all_agg_replacement): Update.
29109         * lto-cgraph.c (compute_ltrans_boundary): Use it.
29110         (output_cgraph_opt_summary): Set symbol to NULL.
29111
29112 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
29113
29114         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
29115         non-polymorphic types.
29116         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
29117         * ipa-devirt.c (types_same_for_odr): Do not explode when one
29118         of types is not polymorphic.
29119
29120 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
29121
29122         * lra-constraints.c (remove_inheritance_pseudos): Process
29123         destination pseudo too.
29124
29125 2014-07-11  Rong Xu  <xur@google.com>
29126
29127         * gcov-tool.c (gcov_output_files): Fix build error introduced in
29128         commit r212448.
29129
29130 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
29131
29132         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
29133         * config/avr/avr-devices.c (AVR_MCU): Same.
29134         (avr_mcu_types): add text start value to end of device list.
29135         * config/avr/avr-mcus.def: Add text section start for all devices.
29136         (ata5782): Add new avr5 device.
29137         (ata5831): Same.
29138         * config/avr/avr-tables.opt: Regenerate.
29139         * config/avr/avr.h: Add declaration for text section start handler.
29140         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
29141         SPEC functions.
29142         (LINK_SPEC): Include text section start handler to linker spec.
29143         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
29144         pass -Ttext option to linker if the text section start for the device
29145         is not zero.
29146         * config/avr/t-multilib: Regenerate.
29147         * doc/avr-mmcu.texi: Regenerate.
29148
29149 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
29150
29151         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
29152         * config/rs6000/aix52.h (LINK_SPEC): Same.
29153         * config/rs6000/aix53.h (LINK_SPEC): Same.
29154         * config/rs6000/aix61.h (LINK_SPEC): Same.
29155         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
29156
29157 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
29158
29159         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
29160         (graphite_verify): New function.
29161         (ivs_params_clear): New function.
29162         (gcc_expression_from_isl_ast_expr_id): New function.
29163         (gcc_expression_from_isl_expr_int): New function.
29164         (binary_op_to_tree): New function.
29165         (ternary_op_to_tree): New function.
29166         (unary_op_to_tree): New function.
29167         (nary_op_to_tree): New function.
29168         (gcc_expression_from_isl_expr_op): New function.
29169         (gcc_expression_from_isl_expression): New function.
29170         (graphite_create_new_loop): New function.
29171         (translate_isl_ast_for_loop): New function.
29172         (get_upper_bound): New function.
29173         (graphite_create_new_loop_guard): New function.
29174         (translate_isl_ast_node_for): New function.
29175         (translate_isl_ast): New function.
29176         (add_parameters_to_ivs_params): New function.
29177         (scop_to_isl_ast): New parameter ip.
29178         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
29179
29180 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
29181
29182         * config/xtensa/predicates.md (call expander): Update for
29183         DECL_SECTION_NAME being string.
29184
29185 2014-07-11  Richard Biener  <rguenther@suse.de>
29186
29187         PR middle-end/61473
29188         * builtins.c (fold_builtin_memory_op): Inline memory moves that
29189         can be implemented with a single load followed by a single store.
29190         (c_strlen): Only warn when only_value is not 2.
29191
29192 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
29193
29194         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
29195
29196 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
29197
29198         PR target/61561
29199         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
29200         (*movhi_bytes): Likewise.
29201         (*arm_movqi_insn): Likewise.
29202
29203 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
29204
29205         PR target/56858
29206         * config/alpha/alpha.c: Include tree-pass.h, context.h
29207         and pass_manager.h.
29208         (pass_data_handle_trap_shadows): New pass.
29209         (pass_handle_trap_shadows::gate): New pass gate function.
29210         (make_pass_handle_trap_shadows): New function.
29211         (rest_of_handle_trap_shadows): Ditto.
29212
29213         (alpha_align_insns_1): Rename from alpha_align_insns.
29214         (pass_data_align_insns): New pass.
29215         (pass_align_insns::gate): New pass gate function.
29216         (make_pass_aling_insns): New function.
29217         (rest_of_align_insns): Ditto.
29218         (alpha_align_insns): Ditto.
29219
29220         (alpha_option_override): Declare handle_trap_shadows info
29221         and align_insns_info.  Register handle_trap_shadows and align_insns
29222         passes here.
29223         (alpha_reorg): Do not call alpha_trap_shadows and
29224         alpha_align_insn from here.
29225
29226         (alpha_pad_function_end): Do not skip BARRIERs.
29227
29228 2014-07-10  Rong Xu  <xur@google.com>
29229
29230         Add gcov-tool: an offline gcda profile processing tool support.
29231         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
29232         (gcov_is_error): Ditto.
29233         (gcov_read_string): Ditto.
29234         (gcov_read_sync): Ditto.
29235         * gcov-io.h: Move counter defines to gcov-counter.def.
29236         * gcov-dump.c (tag_counters): Use gcov-counter.def.
29237         * coverage.c: Ditto.
29238         * gcov-tool.c: Offline gcda profile processing tool.
29239         (unlink_gcda_file): Remove one gcda file.
29240         (unlink_profile_dir): Remove gcda files from the profile path.
29241         (gcov_output_files): Output gcda files to an output dir.
29242         (profile_merge): Merge two profiles in directory.
29243         (print_merge_usage_message): Print merge usage.
29244         (merge_usage): Print merge usage and exit.
29245         (do_merge): Driver for profile merge sub-command.
29246         (profile_rewrite): Rewrite profile.
29247         (print_rewrite_usage_message): Print rewrite usage.
29248         (rewrite_usage): Print rewrite usage and exit.
29249         (do_rewrite): Driver for profile rewrite sub-command.
29250         (print_usage): Print gcov-info usage and exit.
29251         (print_version): Print gcov-info version.
29252         (process_args): Process arguments.
29253         (main): Main routine for gcov-tool.
29254         * Makefile.in: Build and install gcov-tool.
29255         * gcov-counter.def: New file split from gcov-io.h.
29256         * doc/gcc.texi: Include gcov-tool.texi.
29257         * doc/gcov-tool.texi: Document for gcov-tool.
29258
29259 2014-07-10  Richard Biener  <rguenther@suse.de>
29260
29261         PR tree-optimization/61757
29262         * tree-ssa-dom.c (loop_depth_of_name): Restore.
29263         (propagate_rhs_into_lhs): Revert part of last change.
29264
29265 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
29266
29267         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
29268         FUNCTION_DECLs.
29269
29270 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
29271
29272         PR middle-end/53590
29273         * function.c (allocate_struct_function): Revert r188667 change.
29274
29275         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
29276
29277 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
29278
29279         * doc/install.texi: Remove links to defunct package providers for
29280         Solaris.
29281
29282 2014-07-09  Tom de Vries  <tom@codesourcery.com>
29283
29284         * final.c (get_call_fndecl): Declare.
29285         (self_recursive_call_p): New function.
29286         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
29287
29288 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29289
29290         * ipa-devirt.c (record_node): Walk through aliases.
29291
29292 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29293
29294         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
29295
29296 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29297
29298         Revert:
29299         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
29300
29301 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29302
29303         * ipa-visibility.c (function_and_variable_visibility): Remove
29304         temporary hack disabling local aliases on AIX.
29305
29306 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29307
29308         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
29309         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
29310
29311 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29312
29313         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
29314         * rs6000/rs6000.c: Inline output of .set instruction.
29315         (declare_alias_data): New struct.
29316         (rs6000_declare_alias): New function.
29317         (rs6000_xcoff_declare_function_name): Use it.
29318         (rs6000_xcoff_declare_object_name): New function.
29319         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
29320         (ASM_OUTPUT_DEF): Turn to empty definition.
29321
29322 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
29323
29324         PR bootstrap/61679
29325         * hash-table.h: use hash_table::value_type instead of
29326         Descriptor::value_type in the return types of several methods.
29327
29328 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
29329
29330         * tree-pass.h (pass_data): Remove has_execute member.
29331         * passes.c (execute_one_pass): Don't check pass->has_execute.
29332         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29333         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29334         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29335         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29336         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29337         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29338         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29339         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29340         gimple-low.c, gimple-ssa-isolate-paths.c,
29341         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29342         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
29343         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
29344         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
29345         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
29346         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29347         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
29348         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
29349         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
29350         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
29351         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
29352         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
29353         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29354         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29355         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29356         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29357         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29358         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29359         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29360         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29361         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29362         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29363         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
29364         web.c: Remove initializer for pass_data::has_execute.
29365
29366 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
29367
29368         * graphite-htab.h: Use hash_map instead of hash_table.
29369         * graphite-clast-to-gimple.c: Adjust.
29370         * passes.c: Use hash_map instead of hash_table.
29371         * sese.c: Likewise.
29372         * sese.h: Remove now unused code.
29373
29374 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
29375
29376         PR target/61599
29377         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
29378         than zero.
29379
29380 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
29381
29382         PR rtl-optimization/61673
29383         * combine.c (simplify_comparison): Test just mode's sign bit
29384         in tmode rather than the sign bit and any bits above it.
29385
29386 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
29387
29388         * graphite-isl-ast-to-gimple.c (generate_isl_context):
29389         Add __isl_give to the declaration.
29390         (generate_isl_schedule): Likewise.
29391         (scop_to_isl_ast): Likewise.
29392
29393 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29394
29395         * config/arm/arm.c (cortexa5_extra_costs): New table.
29396         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
29397
29398 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
29399
29400         PR tree-optimization/61725
29401         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
29402         range, use range_includes_zerop_p instead of integer_zerop on
29403         vr0->min, only use log2 of max if min is not negative.
29404
29405 2014-07-08  Richard Biener  <rguenther@suse.de>
29406
29407         * tree-ssa-dom.h (loop_depth_of_name): Remove.
29408         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
29409         restriction on loop depth difference.
29410         (record_equality): Likewise.
29411         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
29412         (loop_depth_of_name): Remove.
29413         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
29414         restriction on loop depth difference.
29415         (init_copy_prop): Likewise.
29416
29417 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
29418
29419         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
29420         parameter.
29421         (walk_aliased_vdefs): Likewise.
29422         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
29423         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
29424         (detect_type_change_from_memory_writes): Check if entry was reached.
29425
29426 2014-07-08  Richard Biener  <rguenther@suse.de>
29427
29428         PR tree-optimization/61681
29429         * tree-ssa-structalias.c (find_what_var_points_to): Expand
29430         NONLOCAL inside ESCAPED.
29431
29432 2014-07-08  Richard Biener  <rguenther@suse.de>
29433
29434         PR tree-optimization/61680
29435         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29436         Handle properly all read-write dependences with group accesses.
29437
29438 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
29439
29440         PR tree-optimization/61576
29441         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
29442         block containing reduction statement is predecessor of phi basi block.
29443
29444 2014-07-08  Marek Polacek  <polacek@redhat.com>
29445
29446         PR c/60226
29447         * fold-const.c (round_up_loc): Change the parameter type.
29448         Remove assert.
29449         * fold-const.h (round_up_loc): Adjust declaration.
29450         * stor-layout.c (finalize_record_size): Check for too large types.
29451
29452 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
29453
29454         * symtab.c: Include calls.h.
29455         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
29456
29457 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
29458
29459         * config/rs6000/rs6000.c (output_vec_const_move): Handle
29460         little-endian code generation.
29461         * config/rs6000/spe.md (spe_evmergehi): Rename to...
29462         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
29463         (spe_evmergehilo): Rename to...
29464         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
29465         (spe_evmergelo): Rename to...
29466         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
29467         (spe_evmergelohi): Rename to...
29468         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
29469         (spe_evmergehi, spe_evmergehilo): New expanders.
29470         (spe_evmergelo, spe_evmergelohi): Likewise.
29471         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
29472         (*frob_tf_ti): Likewise.
29473         (*frob_<mode>_di_2): Likewise.
29474         (*frob_tf_di_8_2): Likewise.
29475         (*frob_di_<mode>): Likewise.
29476         (*frob_ti_tf): Likewise.
29477         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
29478         (*frob_ti_<mode>_8_2): Likewise.
29479         (*frob_ti_tf_2): Likewise.
29480         (mov_si<mode>_e500_subreg0): Rename to...
29481         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
29482         endianness only.
29483         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
29484         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
29485         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
29486         the big endianness only.
29487         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
29488         (*mov_si<mode>_e500_subreg0_2): Rename to...
29489         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
29490         big big endianness only.
29491         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
29492         (*mov_si<mode>_e500_subreg4): Rename to...
29493         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
29494         endianness only.
29495         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
29496         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
29497         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
29498         the big endianness only.
29499         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
29500         pattern.
29501         (*mov_si<mode>_e500_subreg4_2): Rename to...
29502         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
29503         endianness only.
29504         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
29505         (*mov_sitf_e500_subreg8): Rename to...
29506         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
29507         endianness only.
29508         (*mov_sitf_e500_subreg8_le): New instruction pattern.
29509         (*mov_sitf_e500_subreg8_2): Rename to...
29510         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
29511         endianness only.
29512         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
29513         (*mov_sitf_e500_subreg12): Rename to...
29514         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
29515         endianness only.
29516         (*mov_sitf_e500_subreg12_le): New instruction pattern.
29517         (*mov_sitf_e500_subreg12_2): Rename to...
29518         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
29519         endianness only.
29520         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
29521
29522 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
29523
29524         * asan.c (instrument_strlen_call): Do not instrument first byte
29525         in strlen if already instrumented.
29526
29527 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29528
29529         * config/arm/arm.opt (mwords-little-endian): Delete.
29530         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
29531         of TARGET_LITTLE_WORDS.
29532         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
29533         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
29534         warning.
29535         * doc/invoke.texi: Remove references to -mwords-little-endian.
29536
29537 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
29538
29539         * expmed.c (struct init_expmed_rtl): Change all fields but
29540         pow2 and cint from struct rtx_def to rtx.
29541         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
29542         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
29543         at the end again.
29544
29545 2014-07-06  Marek Polacek  <polacek@redhat.com>
29546
29547         PR c/6940
29548         * doc/invoke.texi: Document -Wsizeof-array-argument.
29549
29550 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
29551
29552         * wide-int.h (wide_int_storage): Change declaration from struct
29553         to class.
29554
29555 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
29556
29557         * cgraph.c (cgraph_create_indirect_edge): Update call of
29558         get_polymorphic_call_info.
29559         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
29560         (possible_polymorphic_call_targets): Add parameter call.
29561         (decl_maybe_in_construction_p): New predicate.
29562         (get_polymorphic_call_info): Add parameter call;
29563         use decl_maybe_in_construction_p.
29564         * gimple-fold.c (fold_gimple_assign): Update use of
29565         possible_polymorphic_call_targets.
29566         (gimple_fold_call): Likewise.
29567         * ipa-prop.c: Inlcude calls.h
29568         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
29569         (param_type_may_change_p): New predicate.
29570         (detect_type_change_from_memory_writes): Break out from ...
29571         (detect_type_change): ... this one; use param_type_may_change_p.
29572         (detect_type_change_ssa): Use param_type_may_change_p.
29573         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
29574
29575 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
29576
29577         PR target/49423
29578         * config/arm/arm-protos.h (arm_legitimate_address_p,
29579         arm_is_constant_pool_ref): Add prototypes.
29580         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
29581         (arm_is_constant_pool_ref) New function.
29582         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
29583         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
29584         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
29585         operand. Remove pool_range and neg_pool_range attributes.
29586         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
29587         pool_range and neg_pool_range attributes.
29588         * config/arm/constraints.md (Uh): New constraint.
29589         (Uq): Don't allow constant pool references.
29590
29591 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
29592
29593         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
29594         (move_lo_quad_internal_be_<mode>): Likewise.
29595         (move_lo_quad_<mode>): Convert to define_expand.
29596         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
29597         (aarch64_simd_move_hi_quad_be_<mode>): New.
29598         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
29599         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
29600         (aarch64_combinez_be<mode>): New.
29601         (aarch64_combine<mode>): Convert to define_expand.
29602         (aarch64_combine_internal<mode>): New.
29603         (aarch64_simd_combine<mode>): Remove bogus RTL description.
29604
29605 2014-07-04  Tom de Vries  <tom@codesourcery.com>
29606
29607         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
29608         combination of earlyclobber and read/write modifiers.
29609
29610 2014-07-04  Tom de Vries  <tom@codesourcery.com>
29611
29612         * config/aarch64/aarch64-simd.md
29613         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
29614
29615 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
29616
29617         PR target/61714
29618         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
29619
29620 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
29621
29622         PR middle-end/61654
29623         * cgraphunit.c (expand_thunk): Call free_dominance_info.
29624
29625         PR tree-optimization/61684
29626         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
29627         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
29628
29629 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29630             Kito Cheng  <kito@0xlab.org>
29631             Monk Chiang  <sh.chiang04@gmail.com>
29632
29633         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
29634         (nds32_symbol_load_store_p): Move to ...
29635         (nds32_fp_as_gp_check_available): Move to ...
29636         * config/nds32/nds32-fp-as-gp.c: ... here.
29637         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
29638         extern declaration.
29639
29640 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29641             Kito Cheng  <kito@0xlab.org>
29642             Monk Chiang  <sh.chiang04@gmail.com>
29643
29644         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
29645         (nds32_expand_store_multiple): Move to ...
29646         (nds32_expand_movmemqi): Move to ...
29647         * config/nds32/nds32-memory-manipulation.c: ... here.
29648
29649 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29650             Kito Cheng  <kito@0xlab.org>
29651             Monk Chiang  <sh.chiang04@gmail.com>
29652
29653         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
29654         (nds32_output_casesi_pc_relative): Move to ...
29655         (nds32_output_casesi): Move to ...
29656         (nds32_mem_format): Move to ...
29657         (nds32_output_16bit_store): Move to ...
29658         (nds32_output_16bit_load): Move to ...
29659         (nds32_output_32bit_store): Move to ...
29660         (nds32_output_32bit_load): Move to ...
29661         (nds32_output_32bit_load_s): Move to ...
29662         (nds32_output_stack_push): Move to ...
29663         (nds32_output_stack_pop): Move to ...
29664         * config/nds32/nds32-md-auxiliary.c: ... here.
29665
29666 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29667             Ling-Hua Tseng  <uranus@tinlans.org>
29668
29669         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
29670         the purpose of this file.
29671
29672 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29673             Kito Cheng  <kito@0xlab.org>
29674             Monk Chiang  <sh.chiang04@gmail.com>
29675
29676         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
29677         (nds32_address_cost): Move implementation to ...
29678         * config/nds32/nds32-cost.c: ... here.
29679         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
29680         (nds32_address_cost_impl): Declare.
29681
29682 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29683             Kito Cheng  <kito@0xlab.org>
29684             Monk Chiang  <sh.chiang04@gmail.com>
29685
29686         * config/nds32/nds32.c
29687         (nds32_consecutive_registers_load_store_p): Move to ...
29688         (nds32_valid_multiple_load_store): Move to ...
29689         (nds32_valid_stack_push_pop): Move to ...
29690         (nds32_can_use_bclr_p): Move to ...
29691         (nds32_can_use_bset_p): Move to ...
29692         (nds32_can_use_btgl_p): Move to ...
29693         (nds32_can_use_bitci_p): Move to ...
29694         * config/nds32/nds32-predicates.c: ... here.
29695
29696 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29697             Kito Cheng  <kito@0xlab.org>
29698             Monk Chiang  <sh.chiang04@gmail.com>
29699
29700         * config/nds32/nds32.c
29701         (nds32_expand_builtin_null_ftype_reg): Move to ...
29702         (nds32_expand_builtin_reg_ftype_imm): Move to ...
29703         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
29704         (nds32_init_builtins): Move implementation to ...
29705         (nds32_expand_builtin): Move implementation to ...
29706         * config/nds32/nds32-intrinsic.c: ... here.
29707         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
29708         (nds32_expand_builtin_impl): Declare.
29709
29710 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29711             Kito Cheng  <kito@0xlab.org>
29712             Monk Chiang  <sh.chiang04@gmail.com>
29713
29714         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
29715         (nds32_emit_section_tail_template): Move to ...
29716         (nds32_emit_isr_jmptbl_section): Move to ...
29717         (nds32_emit_isr_vector_section): Move to ...
29718         (nds32_emit_isr_reset_conten): Move to ...
29719         (nds32_check_isr_attrs_conflict): Move to ...
29720         (nds32_construct_isr_vectors_information): Move to ...
29721         (nds32_asm_file_start): Move implementation to ...
29722         (nds32_asm_file_end): Move implementation to ...
29723         * config/nds32/nds32-isr.c: ... here.
29724         * config/nds32/nds32-protos.h
29725         (nds32_check_isr_attrs_conflict): Declare.
29726         (nds32_construct_isr_vectors_information): Declare.
29727         (nds32_asm_file_start_for_isr): Declare.
29728         (nds32_asm_file_end_for_isr): Declare.
29729
29730 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29731             Kito Cheng  <kito@0xlab.org>
29732             Monk Chiang  <sh.chiang04@gmail.com>
29733
29734         * config.gcc (nds32*): Add new modules to extra_objs.
29735         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
29736         (nds32be-*-*): Likewise.
29737         * config/nds32/nds32-cost.c: New file.
29738         * config/nds32/nds32-fp-as-gp.c: New file.
29739         * config/nds32/nds32-intrinsic.c: New file.
29740         * config/nds32/nds32-isr.c: New file.
29741         * config/nds32/nds32-md-auxiliary.c: New file.
29742         * config/nds32/nds32-memory-manipulation.c: New file.
29743         * config/nds32/nds32-pipelines-auxiliary.c: New file.
29744         * config/nds32/nds32-predicates.c: New file.
29745         * config/nds32/t-nds32: New file.
29746
29747 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
29748
29749         PR tree-optimization/61682
29750         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
29751         using cases and when one of the operands is equal to 1.
29752
29753 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
29754
29755         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
29756         ashr<mode>3): Correct mode of operands[2].
29757         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
29758         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
29759         Correct mode of operands[2].  Fix split condition.
29760
29761 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
29762
29763         * arm.md (arch): Add armv6_or_vfpv3.
29764         (arch_enabled): Add test for the above.
29765         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
29766         on VFP9.
29767         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
29768
29769 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
29770
29771         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
29772         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
29773         HWI 1 and negate the unsigned value.
29774         * expmed.c (expand_sdiv_pow2): For modes wider than word always
29775         use AND instead of shift.
29776         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
29777
29778 2014-07-03  Marek Polacek  <polacek@redhat.com>
29779
29780         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
29781         (-fsanitize=float-divide-by-zero): Move to the table with
29782         -fsanitize=undefined suboptions.
29783         (-fsanitize=float-cast-overflow): Likewise.
29784
29785 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
29786
29787         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
29788         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
29789         endianness.
29790
29791 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29792
29793         * loop-invariant.c (struct invariant): Add a new member: eqno;
29794         (find_identical_invariants): Update eqno;
29795         (create_new_invariant): Init eqno;
29796         (get_inv_cost): Compute comp_cost with eqno;
29797
29798 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
29799
29800         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
29801         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
29802         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
29803         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
29804         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
29805
29806 2014-07-02  Christian Bruel  <christian.bruel@st.com>
29807
29808         PR target/29349
29809         PR target/53513
29810         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
29811         (make_preds_opaque): Delete.
29812         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
29813         (commit_mode_sets): New function.
29814         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
29815         Process all modes at once.
29816         * basic-block.h (pre_edge_lcm_avs): Declare.
29817         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
29818         Call clear_aux_for_edges. Fix comments.
29819         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
29820         (pre_edge_rev_lcm): Idem.
29821         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
29822         parameter.
29823         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
29824         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
29825         Idem.
29826         * config/i386/i386.c (x96_emit_mode_set): Idem.
29827         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
29828         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
29829         (fpscr_toggle) Disallow from delay slot.
29830         * target.def (emit_mode_set): Add prev_mode parameter.
29831         * doc/tm.texi: Regenerate.
29832
29833 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29834
29835         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
29836         variable i.
29837
29838 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
29839
29840         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
29841         vtable_pointer_value_to_vtable): Constify.
29842         (contains_polymorphic_type_p): Declare.
29843         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
29844         vtable_pointer_value_to_vtable): Constify.
29845         (contains_polymorphic_type_p): New predicate.
29846         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
29847         polymorphic types.
29848         (ipa_set_ancestor_jf): Likewise.
29849         (detect_type_change): Return false in easy cases.
29850         (compute_complex_assign_jump_func): Require type to contain
29851         polymorphic type.
29852         (compute_known_type_jump_func): Likewise.
29853
29854 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
29855
29856         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
29857         Remove.
29858         (type_in_anonymous_namespace_p): Constify argument.
29859         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
29860         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
29861         (main_odr_variant): New function.
29862         (hash_type_name): Make static; update assert; do not ICE on
29863         non-records.
29864         (types_same_for_odr): Bring here from tree.c; simplify and remove
29865         old structural comparing code that doesn't work for templates.
29866         (odr_hasher::equal): Update assert.
29867         (add_type_duplicate): Return true when bases should be computed;
29868         replace incomplete loader by complete; do not output duplicated
29869         warnings; do not ICE on non-records; set odr_violated flag.
29870         (get_odr_type): Be ready to replace incomplete type by complete
29871         one; work on ODR variants instead of main variants; reorder item
29872         in array so bases have still smaller indexes.
29873         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
29874         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
29875
29876 2014-07-01  Cary Coutant  <ccoutant@google.com>
29877
29878         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
29879         lookup.
29880         (resolve_addr_in_expr): When replacing the rtx in a location list
29881         entry, get a new address table entry.
29882         (dwarf2out_finish): Call index_location_lists even if there are no
29883         addr_index_table entries yet.
29884
29885 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
29886
29887         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
29888         change for not being obvious.
29889
29890 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
29891
29892         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
29893         unused argument.
29894
29895 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29896
29897         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
29898         (vcagt_f64): Likewise.
29899         (vcale_f64): Likewise.
29900         (vcaled_f64): Likewise.
29901         (vcales_f32): Likewise.
29902         (vcalt_f64): Likewise.
29903         (vcaltd_f64): Likewise.
29904         (vcalts_f32): Likewise.
29905
29906 2014-07-01  Marek Polacek  <polacek@redhat.com>
29907
29908         * doc/invoke.texi: Document -Wint-conversion.
29909
29910 2014-07-01  Marek Polacek  <polacek@redhat.com>
29911
29912         PR c/58286
29913         * doc/invoke.texi: Document -Wincompatible-pointer-types.
29914
29915 2014-07-01  Martin Liska  <mliska@suse.cz>
29916
29917         IPA REF alias refactoring
29918         * cgraph.h (iterate_direct_aliases): New function.
29919         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
29920         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
29921         FOR_EACH_ALIAS added.
29922         (cgraph_for_node_and_aliases): Likewise.
29923         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
29924         * ipa-inline.c (reset_edge_caches): Likewise.
29925         (update_caller_keys): Likewise.
29926         * trans-mem.c (ipa_tm_execute): Likewise.
29927         *varpool.c (varpool_analyze_node): Likewise.
29928         (varpool_for_node_and_aliases): Likewise.
29929         * ipa-ref.h (first_alias): New function.
29930         (last_alias): Likewise.
29931         (has_aliases_p): Likewise.
29932         * ipa-ref.c (ipa_ref::remove_reference): Removal function
29933         is sensitive to IPA_REF_ALIASes.
29934         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
29935         are put at the beginning of the list.
29936         (symtab_node::iterate_direct_aliases): New function.
29937
29938 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
29939
29940         Revert:
29941         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
29942         type is complete.
29943         (write_ts_type_common_tree_pointers): Do not stream fields not set
29944         for incomplete types; do not stream duplicated fields for variants;
29945         sanity check that variant and type match.
29946         (write_ts_type_non_common_tree_pointers): Likewise.
29947         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
29948         TYPE_SIZE whether type is complete.
29949         (lto_input_ts_type_common_tree_pointers): Do same changes as in
29950         write_ts_type_common_tree_pointers
29951         (lto_input_ts_type_non_common_tree_pointers): Likewise.
29952
29953 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
29954
29955         * var-tracking.c (add_stores): Return instead of asserting if old
29956         and new values for conditional store are the same.
29957
29958 2014-06-30  Richard Henderson  <rth@redhat.com>
29959
29960         PR rtl-opt/61608
29961         PR target/39284
29962         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
29963         the cfg if there were any changes.
29964         * passes.def: Revert move of peephole2 after reorder_blocks;
29965         move duplicate_computed_gotos before peephole2.
29966
29967 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
29968
29969         * except.c (emit_note_eh_region_end): New helper function.
29970         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
29971         emit EH_REGION_END note.
29972         * jump.c (cleanup_barriers): Do not split a call and its
29973         corresponding CALL_ARG_LOCATION note.
29974
29975 2014-06-30  Jeff Law  <law@redhat.com>
29976
29977         PR tree-optimization/61607
29978         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
29979         deeper into the SSA_NAME_VALUE chain.
29980
29981 2014-06-30  Marek Polacek  <polacek@redhat.com>
29982
29983         * convert.c (convert_to_integer): Don't instrument conversions if the
29984         function has no_sanitize_undefined attribute.
29985         * ubsan.c: Don't run the ubsan pass if the function has
29986         no_sanitize_undefined attribute.
29987
29988 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
29989
29990         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
29991         -fsanitize=undefined suboptions.
29992
29993 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
29994
29995         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
29996         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
29997         against bigendian and adjust indices.
29998
29999 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
30000
30001         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
30002
30003 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30004
30005         PR target/61633
30006         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
30007         Add alternative; make early clobber.  Adjust both split patterns
30008         to use operand 0 as the working register.
30009
30010 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
30011
30012         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
30013         as ira_object_id_map might be NULL, or 1.
30014
30015 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30016
30017         * loop-invariant.c (get_inv_cost): Handle register class.
30018         (gain_for_invariant): Check the register pressure of the inv
30019         and its overlapped register class, other than all.
30020
30021 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
30022
30023         * doc/invoke.texi (Optimize Options): Fix descriptions of
30024         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
30025
30026 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
30027
30028         * doc/extend.texi (Function Attributes): Update 'naked' attribute
30029         documentation.
30030
30031 2014-06-29  Tobias Grosser <tobias@grosser.es>
30032
30033         PR bootstrap/61650
30034         * graphite-isl-ast-to-gimple.c: Add missing guards.
30035
30036 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
30037
30038         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
30039         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
30040         * flag-types.h: Add new enum fgraphite_generator.
30041         * graphite-isl-ast-to-gimple.c: New.
30042         * graphite-isl-ast-to-gimple.h: New.
30043         * graphite.c (graphite_transform_loops): Add choice of Graphite
30044         code generator, which depends on flag_graphite_code_gen.
30045
30046 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
30047
30048         * graphite-dependences.c (subtract_commutative_associative_deps):
30049         Add NULL checking of the following variables: must_raw_no_source,
30050         may_raw_no_source, must_war_no_source, may_war_no_source,
30051         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
30052         must_war, may_war, must_waw, may_waw.
30053
30054 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
30055
30056         * graphite-clast-to-gimple.c: gloog is renamed to
30057         graphite_regenerate_ast_cloog.  gloog_error is renamed to
30058         graphite_regenerate_error.
30059         * graphite-clast-to-gimple.h: The definition of the struct
30060         bb_pbb_def is moved to graphite-htab.h.
30061         Add inclusion of the hash-table.h.
30062         * graphite-htab.h: The declaration of the function gloog is moved
30063         to graphite-clast-to-gimple.h and renamed to
30064         graphite_regenerate_ast_cloog.
30065         * graphite.c (graphite_transform_loops): gloog is renamed
30066         to graphite_regenerate_ast_cloog.
30067
30068 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30069
30070         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
30071         type is complete.
30072         (write_ts_type_common_tree_pointers): Do not stream fields not set
30073         for incomplete types; do not stream duplicated fields for variants;
30074         sanity check that variant and type match.
30075         (write_ts_type_non_common_tree_pointers): Likewise.
30076         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
30077         TYPE_SIZE whether type is complete.
30078         (lto_input_ts_type_common_tree_pointers): Do same changes as in
30079         write_ts_type_common_tree_pointers
30080         (lto_input_ts_type_non_common_tree_pointers): Likewise.
30081
30082 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30083
30084         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
30085
30086 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30087
30088         * tree-inline.c (remap_type_1): Do not duplicate fields
30089         that are shared in between type and its main variant.
30090
30091 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30092
30093         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
30094         of the type.
30095         (ipa_set_ancestor_jf) Likewise.
30096         (check_stmt_for_type_change): Check that we work on main variant.
30097         (detect_type_change): Look into main variant.
30098         (compute_known_type_jump_func): Check that main variant has BINFO.
30099
30100 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30101
30102         * ipa-devirt.c (set_type_binfo): New function.
30103         (add_type_duplicate): Use it.
30104         (get_odr_type): Sanity check that binfos points to main variants.
30105         (get_class_context): Be sure the context's outer_type is main variant.
30106         (contains_type_p): Walk main variant.
30107         (get_polymorphic_call_info_for_decl): Set outer_type to be
30108         main variant.
30109         (get_polymorphic_call_info): Likewise.
30110         (possible_polymorphic_call_targets): Sanity check that we operate
30111         on main variant.
30112
30113 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
30114
30115         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
30116
30117 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30118
30119         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
30120         accidental change due to wide-int branch merge.
30121
30122 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30123
30124         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
30125         compressed debug support.
30126         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
30127         * configure: Regenerate.
30128         * config.in: Regenerate.
30129         * common.opt (compressed_debug_sections): New enum.
30130         (gz, gz=): New options.
30131         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
30132         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
30133         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
30134         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
30135         LINK_COMPRESS_DEBUG_SPEC.
30136         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
30137         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
30138         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
30139         (Debugging Options): Document -gz[=type].
30140
30141 2014-06-27  Martin Jambor  <mjambor@suse.cz>
30142
30143         PR ipa/61160
30144         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
30145         args_to_skip, use those from node instead.  Copy args_to_skip and
30146         combined_args_to_skip from node to the new thunk.
30147         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
30148         (cgraph_create_virtual_clone): Moved computation of
30149         combined_args_to_skip...
30150         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
30151
30152 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
30153
30154         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
30155         redundant diagnostic machinary.
30156
30157 2014-06-27  Richard Biener  <rguenther@suse.de>
30158
30159         * tree-ssa-math-opts.c (bswap_replace): Fix
30160         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
30161
30162 2014-06-27  Martin Liska  <mliska@suse.cz>
30163
30164         * gimple.h (gimple_location_safe): New function introduced.
30165         * cgraphunit.c (walk_polymorphic_call_targets): Usage
30166         of gimple_location_safe replaces gimple_location.
30167         (gimple_fold_call): Likewise.
30168         * ipa-devirt.c (ipa_devirt): Likewise.
30169         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
30170         * ipa.c (walk_polymorphic_call_targets): Likewise.
30171         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
30172
30173 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
30174
30175         PR tree-optimization/57233
30176         PR tree-optimization/61299
30177         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
30178         functions.
30179         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
30180         would be lowered to scalar shifts, check if corresponding
30181         shifts and vector BIT_IOR_EXPR are supported and don't lower
30182         or lower just to narrower vector type in that case.
30183         * expmed.c (expand_shift_1): Fix up handling of vector
30184         shifts and rotates.
30185
30186 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
30187
30188         PR target/61586
30189         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
30190
30191 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
30192
30193         * doc/invoke.texi (-fsemantic-interposition): Document.
30194         * common.opt (fsemantic-interposition): New flag.
30195         * varasm.c (decl_replaceable_p): Use it.
30196
30197 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30198
30199         PR target/61542
30200         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
30201         extraction other than index 3.
30202
30203 2014-06-26  Teresa Johnson  <tejohnson@google.com>
30204
30205         * doc/invoke.texi: Fix typo.
30206         * dumpfile.c: Add support for documented -fdump-* options
30207         optimized/missed/note/optall.
30208
30209 2014-06-26  Martin Jambor  <mjambor@suse.cz>
30210
30211         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
30212         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
30213         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
30214         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
30215         * opts.c (default_options_optimization): Set
30216         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
30217         * doc/invoke.texi (allow-load-data-races)
30218         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
30219         (allow-store-data-races): Document the new default.
30220
30221 2014-06-26  Martin Jambor  <mjambor@suse.cz>
30222
30223         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
30224         renamed to ipa_impossible_devirt_target.  Fix typo.
30225         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
30226         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
30227         ipa_impossible_devirt_target.
30228
30229 2014-06-26  Richard Biener  <rguenther@suse.de>
30230
30231         PR tree-optimization/61607
30232         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
30233         explaining why we restrict copies on loop depth.
30234         * tree-ssa-dom.c (cprop_operand): Remove restriction on
30235         on loop depth.
30236         (record_equivalences_from_phis): Instead add it here.
30237
30238 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
30239
30240         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
30241         (LTO_WRAPPER_OBJS): New variable.
30242         (lto-wrapper$(exeext)): Use it.
30243         * collect2.c: Include "collect-utils.h".
30244         (verbose, debug): Remove variables.
30245         (at_file_supplied): No longer static.
30246         (tool_name): New variable.
30247         (do_wait, fork_execute, maybe_unlink): Don't declare.
30248         (tool_cleanup): No longer static.
30249         (notice): Remove function.
30250         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
30251         fork_execute calls.
30252         (collect_wait, do_wait, collect_execute): Remove functions.
30253         (maybe_unlink): No longer static.
30254         * collect2.h (verbose, debug): Don't declare.
30255         (at_file_supplied): Declare.
30256         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
30257         changed.
30258         (collect_execute): Replace with implementation from collect2, plus a
30259         new arg use_atfile.  All callers changed.
30260         (collect_wait): Replace with implementation from collect2.
30261         (maybe_unlink_file): Remove function.
30262         (fork_execute): Replace with implementation from collect2, plus a
30263         new arg use_atfile.  All callers changed.
30264         (do_wait): Add call to utils_cleanup to the error path.
30265         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
30266         (tool_cleanup): Adjust declarations.
30267         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
30268         * tlink.c: Include "collect-utils.h".
30269         (tlink_execute): New arg use_atfile.  All callers changed.
30270         (tlink_init, tlink_execute): Remove declarations.
30271
30272         * collect-utils.c (save_temps): New variable.
30273         (do_wait): Use it instead of debug.  Use fatal_error.
30274         * collect-utils.h (save_temps): Declare.
30275         * collect2.c (verbose): Rename from vflag.  All uses changed.
30276         (tool_cleanup): New function, copied from collect_atexit.
30277         (collect_atexit, handler): Just call it.
30278         * collect2.h (verbose): Declaration renamed from vflag.
30279         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
30280         debug.
30281
30282         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
30283         (lto-wrapper$(exeext)): Link with collect-utils.o.
30284         * collect-utils.c: New file.
30285         * collect-utils.h: New file.
30286         * lto-wrapper.c: Include "collect-utils.h".
30287         (args_name): Delete variable.
30288         (tool_name): New variable.
30289         (tool_cleanup): New function.
30290         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
30291         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
30292         (fork_execute): Remove functions.
30293
30294 2014-06-26  Nick Clifton  <nickc@redhat.com>
30295
30296         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
30297
30298         * doc/extend.texi (Function Attributes): Fix typo in description
30299         of RX vector attribute.
30300
30301 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
30302
30303         * config.gcc (supported_defaults): Error when passing either
30304         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
30305
30306 2014-06-26  Richard Biener  <rguenther@suse.de>
30307
30308         * tree-ssa-dom.c (cprop_operand): Remove restriction on
30309         propagating volatile pointers.
30310
30311 2014-06-26  Richard Biener  <rguenther@suse.de>
30312
30313         PR tree-optimization/61607
30314         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
30315         loop if we redirected its latch edge.
30316         (thread_block_1): Do not cancel loops prematurely.
30317
30318 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
30319
30320         * toplev.c (backend_init_target): Move init_emit_regs and
30321         init_regs to...
30322         (backend_init) ... here; skip ira_init_once and backend_init_target.
30323         (target_reinit) ... and here; clear
30324         this_target_rtl->lang_dependent_initialized.
30325         (lang_dependent_init_target): Clear
30326         this_target_rtl->lang_dependent_initialized;
30327         break out rtl initialization to ...
30328         (initialize_rtl): ... here; call also backend_init_target
30329         and ira_init_once.
30330         * toplev.h (initialize_rtl): New function.
30331         * function.c: Include toplev.h
30332         (init_function_start): Call initialize_rtl.
30333         * rtl.h (target_rtl): Add target_specific_initialized,
30334         lang_dependent_initialized.
30335
30336 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
30337             Jakub Jelinek  <jakub@redhat.com>
30338
30339         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
30340
30341 2014-06-25  Tom de Vries  <tom@codesourcery.com>
30342
30343         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
30344
30345 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30346
30347         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
30348         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
30349         Issue a strict overflow warning if appropriate.
30350
30351 2014-06-25  Martin Liska  <mliska@suse.cz>
30352
30353         IPA REF refactoring
30354         * Makefile.in: Removed header file (ipa-ref-inline.h).
30355         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
30356         called.
30357         (cgraph_speculative_call_info): Likewise.
30358         (cgraph_for_node_thunks_and_aliases): Likewise.
30359         (cgraph_for_node_and_aliases): Likewise.
30360         (verify_cgraph_node): Likewise.
30361         * cgraph.h: Batch of IPA REF functions become member functions of
30362         symtab_node: add_reference, maybe_add_reference, clone_references,
30363         clone_referring, clone_reference, find_reference,
30364         remove_stmt_references, remove_all_references,
30365         remove_all_referring, dump_references, dump_referring,
30366         has_alias_p, iterate_reference, iterate_referring.
30367         * cgraphbuild.c (record_reference): New IPA REF function used.
30368         (record_type_list): Likewise.
30369         (record_eh_tables): Likewise.
30370         (mark_address): Likewise.
30371         (mark_load): Likewise.
30372         (mark_store): Likewise.
30373         (pass_build_cgraph_edges): Likewise.
30374         (rebuild_cgraph_edge): Likewise.
30375         (cgraph_rebuild_references): Likewise.
30376         (pass_remove_cgraph_callee_edges): Likewise.
30377         * cgraphclones.c (cgraph_clone_node): Likewise.
30378         (cgraph_create_virtual_clone): Likewise.
30379         (cgraph_materialize_clone): Likewise.
30380         (cgraph_materialize_all_clones): Likewise.
30381         * cgraphunit.c (cgraph_reset_node): Likewise.
30382         (cgraph_reset_node): Likewise.
30383         (analyze_function): Likewise.
30384         (assemble_thunks_and_aliases): Likewise.
30385         (expand_function): Likewise.
30386         * ipa-comdats.c (propagate_comdat_group): Likewise.
30387         (enqueue_references): Likewise.
30388         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
30389         (create_specialized_node): Likewise.
30390         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
30391         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
30392         * ipa-inline.c (reset_edge_caches): Likewise.
30393         (update_caller_keys): Likewise.
30394         (execute): Likewise.
30395         * ipa-prop.c (remove_described_reference): Likewise.
30396         (propagate_controlled_uses): Likewise.
30397         (ipa_edge_duplication_hook): Likewise.
30398         (ipa_modify_call_arguments): Likewise.
30399         * ipa-pure-const.c (propagate_pure_const): Likewise.
30400         * ipa-ref-inline.h: Header file removed, functions moved
30401         to symtab_node class.
30402         * ipa-ref.c (remove_reference): New class member function.
30403         (cannot_lead_to_return): New class member function.
30404         (referring_ref_list): Likewise.
30405         (referred_ref_list): Likewise.
30406         Rest of functions moved to symtab_node class.
30407         * ipa-ref.h: New member functions remove_reference,
30408         cannot_lead_to_return, referring_ref_list, referred_ref_list added
30409         to ipa_ref class.
30410         ipa_ref_list class has new member functions: first_reference,
30411         first_referring, clear, nreferences.
30412         * ipa-reference.c (analyze_function): New IPA REF function used.
30413         (write_node_summary_p): Likewise.
30414         (ipa_reference_write_optimization_summary): Likewise.
30415         * ipa-split.c (split_function): Likewise.
30416         * ipa-utils.c (ipa_reverse_postorder): Likewise.
30417         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
30418         (function_and_variable_visibility): Likewise.
30419         * ipa.c (has_addr_references_p): Likewise.
30420         (process_references): Argument type changed.
30421         (symtab_remove_unreachable_nodes): New IPA REF function used.
30422         (process_references): Likewise.
30423         (set_writeonly_bit): Likewise.
30424         * lto-cgraph.c: Implementation of new symtab_node member functions
30425         that uses new IPA REF functions.
30426         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
30427         function used.
30428         * lto-streamer-out.c (output_symbol_p): Likewise.
30429         * lto-streamer.h (referenced_from_this_partition_p): Argument type
30430         changed.
30431         * symtab.c: Implementation of new IPA REF API.
30432         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
30433         (ipa_tm_create_version): Likewise.
30434         (ipa_tm_execute): Likewise.
30435         * tree-emutls.c (gen_emutls_addr): Likewise.
30436         * tree-inline.c (copy_bb): Likewise.
30437         (delete_unreachable_blocks_update_callgraph): Likewise.
30438         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
30439         (varpool_for_node_and_aliases): Likewise.
30440
30441 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
30442
30443         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
30444
30445 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
30446
30447         PR bootstrap/61598
30448         * fold-const.c (fold_checksum_tree): Use a hash_table of const
30449         tree_node * instead of tree_node *.
30450         (fold): Adjust.
30451         (print_fold_checksum): Likewise.
30452         (fold_check_failed): Likewise.
30453         (debug_fold_checksum): Likewise.
30454         (fold_build1_stat_loc): Likewise.
30455         (fold_build2_stat_loc): Likewise.
30456         (fold_build3_stat_loc): Likewise.
30457         (fold_build_call_array_loc): Likewise.
30458
30459 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
30460
30461         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
30462         implementation with call to...
30463         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
30464         function.
30465         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
30466         Declare.
30467
30468 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
30469
30470         PR tree-optimization/57742
30471         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
30472         after replacing the statement.
30473
30474 2014-06-25  Nick Clifton  <nickc@redhat.com>
30475
30476         * config/v850/v850.c (GHS_default_section_names): Change to const
30477         char * type.
30478         (GHS_current_section_names): Likewise.
30479         (v850_insert_attributes): Do not build strings, just assign the
30480         names directly.  Change the type of 'chosen_section' to const
30481         char*.
30482         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
30483         directly to the array entry.
30484         * config/v850/v850.h (GHS_default_section_names): Change to const
30485         char * type.
30486         (GHS_current_section_names): Likewise.
30487
30488 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
30489
30490         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
30491         (LANG_HOOKS_DECLS): Add it.
30492         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
30493         has correct type.
30494         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
30495         * langhooks.h (struct lang_hooks_for_decls): Add
30496         omp_clause_linear_ctor hook.
30497         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
30498         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
30499         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
30500         combined simd loop use omp_clause_linear_ctor hook.
30501
30502 2014-06-24  Cong Hou  <congh@google.com>
30503
30504         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
30505         pattern recognition.
30506         (type_conversion_p): PROMOTION is true if it's a type promotion
30507         conversion, and false otherwise.  Return true if the given expression
30508         is a type conversion one.
30509         * tree-vectorizer.h: Adjust the number of patterns.
30510         * tree.def: Add SAD_EXPR.
30511         * optabs.def: Add sad_optab.
30512         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
30513         * expr.c (expand_expr_real_2): Likewise.
30514         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
30515         * gimple.c (get_gimple_rhs_num_ops): Likewise.
30516         * optabs.c (optab_for_tree_code): Likewise.
30517         * tree-cfg.c (estimate_operator_cost): Likewise.
30518         * tree-ssa-operands.c (get_expr_operands): Likewise.
30519         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
30520         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
30521         * doc/generic.texi: Add document for SAD_EXPR.
30522         * doc/md.texi: Add document for ssad and usad.
30523
30524 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
30525
30526         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
30527         qualification in cast.
30528
30529 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
30530
30531         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
30532         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
30533         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
30534         (tree_function_decl): ... here.
30535         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
30536         streaming of vindex to ...
30537         (write_ts_function_decl_tree_pointers): ... here.
30538         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
30539         Do not stream DECL_VINDEX.
30540         (lto_input_ts_function_decl_tree_pointers): Stream it here.
30541
30542 2014-06-24  Catherine Moore  <clm@codesourcery.com>
30543             Sandra Loosemore  <sandra@codesourcery.com>
30544
30545         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
30546         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
30547         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
30548
30549 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
30550
30551         * doc/invoke.texi (Warning Options): Remove duplicated
30552         -Wmaybe-uninitialized.
30553
30554 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
30555
30556         PR tree-optimization/57742
30557         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
30558         (handle_builtin_malloc, handle_builtin_memset): New functions.
30559         (strlen_optimize_stmt): Call them.
30560         * passes.def: Move strlen after loop+dom but before vrp.
30561
30562 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
30563
30564         PR target/61570
30565         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
30566         model family 6 CPU with has_longmode never use a CPU without
30567         64-bit support.
30568
30569 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
30570
30571         PR target/61570
30572         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
30573         the last change.
30574
30575 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
30576
30577         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
30578         * dominance.c (iterate_fix_dominators): Use hash_map instead of
30579         pointer_map.
30580         * hash-map.h: New file.
30581         * ipa-comdats.c: Use hash_map instead of pointer_map.
30582         * ipa.c: Likewise.
30583         * lto-section-out.c: Adjust.
30584         * lto-streamer.h: Replace pointer_map with hash_map.
30585         * symtab.c (verify_symtab): Likewise.
30586         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
30587         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
30588         * tree-streamer.h: Likewise.
30589         * tree-streamer.c: Adjust.
30590         * pointer-set.h: Remove pointer_map.
30591
30592 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
30593
30594         * hash-table.h: Add a template arg to choose between storing values
30595         and storing pointers to values, and then provide partial
30596         specializations for both.
30597         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
30598         should store, not the type values should point to.
30599         * tree-into-ssa.c (var_info_hasher): Likewise.
30600         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
30601         * tree-complex.c: Adjust.
30602         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
30603         table instead of int_tree_map *.
30604         * tree-parloops.c: Adjust.
30605         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
30606         type is being stored.
30607         * tree-vectorizer.c: Adjust.
30608
30609 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
30610
30611         * hash-table.h: Remove a layer of indirection from hash_table so that
30612         it contains the hash table's data instead of a pointer to the data.
30613         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
30614         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
30615         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
30616         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
30617         fold-const.c, gcse.c, ggc-common.c,
30618         gimple-ssa-strength-reduction.c, gimplify.c,
30619         graphite-clast-to-gimple.c, graphite-dependences.c,
30620         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
30621         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
30622         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
30623         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
30624         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
30625         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
30626         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
30627         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
30628         tree-ssa-live.c, tree-ssa-loop-im.c,
30629         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
30630         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
30631         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
30632         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
30633         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
30634         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
30635         vtable-verify.c, vtable-verify.h: Adjust.
30636
30637 2014-06-24  Richard Biener  <rguenther@suse.de>
30638
30639         PR tree-optimization/61572
30640         * tree-ssa-sink.c (statement_sink_location): Do not sink
30641         loads from hard registers.
30642
30643 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
30644
30645         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
30646         not mentioned in clauses use private clause if the iterator is
30647         declared in #pragma omp for simd, and when adding lastprivate
30648         instead, add it to the outer #pragma omp for too.  Diagnose
30649         if the variable is private in outer context.  For simd collapse > 1
30650         loops, replace all iterators with temporaries.
30651         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
30652         same even in collapse > 1 loops.
30653
30654         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
30655         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
30656         non-NULL.
30657         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
30658         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
30659         non-NULL.
30660         (gimplify_adjust_omp_clauses): Likewise.
30661         * omp-low.c (lower_rec_simd_input_clauses,
30662         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
30663         safelen the same as safelen(1).
30664         * tree-nested.c (convert_nonlocal_omp_clauses,
30665         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
30666         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
30667         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
30668         Fixup handling of GIMPLE_OMP_TARGET.
30669         (convert_tramp_reference_stmt, convert_gimple_call): Handle
30670         GIMPLE_OMP_TARGET.
30671
30672 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
30673
30674         PR tree-optimization/61554
30675         * tree-ssa-propagate.c: Include "bitmap.h".
30676         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
30677         properly update constructor/destructor.
30678         (substitute_and_fold_dom_walker::before_dom_children):
30679         Remove call to gimple_purge_dead_eh_edges, add bb->index to
30680         need_eh_cleaup instead.
30681         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
30682         need_eh_cleanup.
30683
30684 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
30685
30686         * varpool.c (dump_varpool_node): Dump used_by_single_function.
30687         * tree-pass.h (make_pass_ipa_single_use): New pass.
30688         * cgraph.h (used_by_single_function): New flag.
30689         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
30690         Stream it.
30691         * passes.def (pass_ipa_single_use): Scedule.
30692         * ipa.c (BOTTOM): New macro.
30693         (meet): New function
30694         (propagate_single_user): New function.
30695         (ipa_single_use): New function.
30696         (pass_data_ipa_single_use): New pass.
30697         (pass_ipa_single_use): New pass.
30698         (pass_ipa_single_use::gate): New gate.
30699         (make_pass_ipa_single_use): New function.
30700
30701 2014-06-23  Kai Tietz  <ktietz@redhat.com>
30702
30703         PR target/39284
30704         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
30705         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
30706
30707 2014-06-23  Richard Biener  <rguenther@suse.de>
30708
30709         * tree-ssa-loop.c (gate_loop): New function.
30710         (pass_tree_loop::gate): Call it.
30711         (pass_data_tree_no_loop, pass_tree_no_loop,
30712         make_pass_tree_no_loop): New.
30713         * tree-vectorizer.c: Include tree-scalar-evolution.c
30714         (pass_slp_vectorize::execute): Initialize loops and SCEV if
30715         required.
30716         (pass_slp_vectorize::clone): New method.
30717         * timevar.def (TV_TREE_NOLOOP): New.
30718         * tree-pass.h (make_pass_tree_no_loop): Declare.
30719         * passes.def (pass_tree_no_loop): New pass group with
30720         SLP vectorizer.
30721
30722 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
30723
30724         PR target/61570
30725         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
30726         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
30727
30728 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
30729
30730         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
30731         "yes" where needed.
30732
30733 2014-06-23  Alan Modra  <amodra@gmail.com>
30734
30735         PR bootstrap/61583
30736         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
30737         to zero on debug statements.
30738
30739 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
30740
30741         PR target/60825
30742         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
30743         Ignore third operand if present by marking qualifier_internal.
30744
30745         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
30746
30747         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
30748         vector extension.
30749         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
30750         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
30751         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
30752         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
30753         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
30754         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
30755         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
30756         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
30757         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
30758         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
30759         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
30760         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
30761         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
30762         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
30763         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
30764         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
30765         logic in GCC vector extensions
30766
30767         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
30768         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
30769         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
30770         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
30771         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
30772         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
30773         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
30774         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
30775         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
30776         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
30777
30778         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
30779
30780         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
30781         extensions.
30782
30783         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
30784         (vget_low_s64): Use __GET_LOW macro.
30785         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
30786         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
30787         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
30788         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
30789         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
30790
30791         (vcombine_s64): Use GCC vector extensions; remove cast.
30792         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
30793         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
30794         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
30795         Fix type signature; remove cast.
30796
30797 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
30798
30799         PR target/60825
30800         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
30801         V1DFmode.
30802         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
30803         add V1DFmode
30804         (BUILTIN_VD1): New.
30805         (BUILTIN_VD_RE): Remove.
30806         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
30807         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
30808         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
30809         variant but not df.
30810         (vreinterpretv1df*, vreinterpret*v1df): New.
30811         (vreinterpretdf*, vreinterpret*df): Remove.
30812         * config/aarch64/aarch64-simd.md (aarch64_create,
30813         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
30814         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
30815         (VD1): New.
30816         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
30817         (vcreate_f64): Remove cast, use v1df builtin.
30818         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
30819         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
30820         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
30821         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
30822         vmov_n_f64, vst1_f64): Use gcc vector extensions.
30823         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
30824         add range check using __builtin_aarch64_im_lane_boundsi.
30825         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
30826         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
30827         type signature, use gcc vector extensions.
30828         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
30829         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
30830         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
30831         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
30832         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
30833         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
30834         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
30835         vreinterpret_u64_f64): Use v1df builtin not df.
30836
30837 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
30838
30839         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
30840         vector registers.
30841
30842 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
30843
30844         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
30845         priority directly.
30846
30847 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30848
30849         * loop-invariant.c (pre_check_invariant_p): New function.
30850         (find_invariant_insn): Call pre_check_invariant_p.
30851
30852 2014-06-22  Richard Henderson  <rth@redhat.com>
30853
30854         PR target/61565
30855         * compare-elim.c (struct comparison): Add eh_note.
30856         (find_comparison_dom_walker::before_dom_children): Don't eliminate
30857         a redundant comparison in a different EH region.  Purge EH edges if
30858         necessary.
30859
30860 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
30861
30862         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
30863         (var_shift): Use it.
30864         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
30865         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
30866         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
30867         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
30868         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
30869         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
30870         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
30871         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
30872         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
30873         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
30874         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
30875         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
30876         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
30877         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
30878         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
30879         *rotldi3_internal15be): Use the new attribute.  Merge register and
30880         integer alternatives.
30881
30882 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
30883
30884         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
30885         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
30886         split, *ashrdi3_internal3 and split): Delete, merge into...
30887         (ashr<mode>3): New expander.
30888         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
30889         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
30890
30891 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
30892
30893         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
30894         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
30895         *rotldi3_internal3 and split): Delete, merge into...
30896         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
30897         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
30898         Use "rotlw" extended mnemonic.
30899
30900 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
30901
30902         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
30903         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
30904         and split, *ashldi3_internal3 and split): Delete, merge into...
30905         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
30906         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
30907
30908 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
30909
30910         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
30911         (lshrsi3, two anonymous define_insns and define_splits,
30912         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
30913         *lshrdi3_internal3 and split): Delete, merge into...
30914         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
30915         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
30916
30917 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
30918
30919         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
30920         Remove "O" alternative.
30921
30922 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
30923
30924         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
30925         (mips_move_from_gpr_cost): Likewise.
30926         (mips_register_move_cost): Update accordingly.
30927         (mips_secondary_reload_class): Remove name of in_p.
30928
30929 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
30930
30931         PR target/61503
30932         * config/i386/i386.md (x86_64_shrd, x86_shrd,
30933         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
30934
30935 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30936
30937         * config/nios2/nios2.c: Include "builtins.h".
30938
30939 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
30940
30941         * cgraph.h (tls_model_names): New variable.
30942         * print-tree.c (print_node): Simplify.
30943         * varpool.c (tls_model_names): New variable.
30944         (dump_varpool_node): Output tls model.
30945
30946 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
30947
30948         * ipa-visibility.c (function_and_variable_visibility): Disable
30949         temporarily local aliases for some targets.
30950
30951 2014-06-20  Marek Polacek  <polacek@redhat.com>
30952
30953         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
30954         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
30955         into SANITIZE_UNDEFINED.
30956         * doc/invoke.texi: Describe -fsanitize=bounds.
30957         * gimplify.c (gimplify_call_expr): Add gimplification of internal
30958         functions created in the FEs.
30959         * internal-fn.c: Move "internal-fn.h" after "tree.h".
30960         (expand_UBSAN_BOUNDS): New function.
30961         * internal-fn.def (UBSAN_BOUNDS): New internal function.
30962         * internal-fn.h: Don't define internal functions here.
30963         * opts.c (common_handle_option): Add -fsanitize=bounds.
30964         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
30965         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
30966         * tree-core.h: Define internal functions here.
30967         (struct tree_base): Add ifn field.
30968         * tree-pretty-print.c: Include "internal-fn.h".
30969         (dump_generic_node): Handle functions without CALL_EXPR_FN.
30970         * tree.c (get_callee_fndecl): Likewise.
30971         (build_call_expr_internal_loc): New function.
30972         * tree.def (CALL_EXPR): Update description.
30973         * tree.h (CALL_EXPR_IFN): Define.
30974         (build_call_expr_internal_loc): Declare.
30975         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
30976         types.
30977         (ubsan_type_descriptor): Change bool parameter to enum
30978         ubsan_print_style.  Adjust the code.  Add handling of
30979         UBSAN_PRINT_ARRAY.
30980         (ubsan_expand_bounds_ifn): New function.
30981         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
30982         (ubsan_build_overflow_builtin): Likewise.
30983         (instrument_bool_enum_load): Likewise.
30984         (ubsan_instrument_float_cast): Likewise.
30985         * ubsan.h (enum ubsan_print_style): New enum.
30986         (ubsan_expand_bounds_ifn): Declare.
30987         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
30988
30989 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
30990
30991         * config/rs6000/rs6000.md: Append `DONE' to preparation
30992         statements of `bswap' pattern splitters.
30993
30994 2014-06-20  Tom de Vries  <tom@codesourcery.com>
30995
30996         * target.def (call_fusage_contains_non_callee_clobbers): Update
30997         definition.
30998         * doc/tm.texi: Regenerate.
30999
31000 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
31001             Max Ostapenko  <m.ostapenko@partner.samsung.com>
31002
31003         PR sanitizer/61547
31004         * asan.c (instrument_strlen_call): Fixed instrumentation of
31005         trailing byte.
31006
31007 2014-06-20  Martin Jambor  <mjambor@suse.cz>
31008
31009         PR ipa/61540
31010         * ipa-prop.c (impossible_devirt_target): New function.
31011         (try_make_edge_direct_virtual_call): Use it, also instead of
31012         asserting.
31013
31014 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
31015             Max Ostapenko  <m.ostapenko@partner.samsung.com>
31016
31017         PR sanitizer/61530
31018         * asan.c (build_check_stmt): Add condition.
31019
31020 2014-06-20  Martin Jambor  <mjambor@suse.cz>
31021
31022         PR ipa/61211
31023         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
31024         expanded clones.
31025
31026 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31027
31028         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
31029         Update comments.
31030         (VCONQ): Make comment more helpful.
31031         (VCON): Delete.
31032         * config/aarch64/aarch64-simd.md
31033         (aarch64_sqdmulh_lane<mode>):
31034         Use VCOND for operands 2.  Update lane checking and flipping logic.
31035         (aarch64_sqrdmulh_lane<mode>): Likewise.
31036         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
31037         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
31038         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
31039         attribute of operand 3 to VCOND.
31040         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
31041         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
31042         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
31043         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
31044         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
31045         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
31046         define_insn.
31047         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
31048         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
31049         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
31050         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
31051         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
31052         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
31053         operand to VCOND.  Update lane flipping and bounds checking logic.
31054         (aarch64_sqdmlal2_lane<mode>): Likewise.
31055         (aarch64_sqdmlsl_lane<mode>): Likewise.
31056         (aarch64_sqdmull_lane<mode>): Likewise.
31057         (aarch64_sqdmull2_lane<mode>): Likewise.
31058         (aarch64_sqdmlal_laneq<mode>):
31059         Replace VCON usage with VCONQ.
31060         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
31061         (aarch64_sqdmlal2_laneq<mode>): Emit
31062         aarch64_sqdmlal2_laneq<mode>_internal insn.
31063         Replace VCON with VCONQ.
31064         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
31065         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
31066         (aarch64_sqdmull_laneq<mode>): Emit
31067         aarch64_sqdmull_laneq<mode>_internal insn.
31068         Replace VCON with VCONQ.
31069         (aarch64_sqdmull2_laneq<mode>): Emit
31070         aarch64_sqdmull2_laneq<mode>_internal insn.
31071         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
31072         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
31073         of 3rd argument to int16x4_t.
31074         (vqdmlalh_lane_s16): Likewise.
31075         (vqdmlslh_lane_s16): Likewise.
31076         (vqdmull_high_lane_s16): Likewise.
31077         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
31078         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
31079         (vqdmlsl_lane_s16): Likewise.
31080         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
31081         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
31082         (vqdmlals_lane_s32): Likewise.
31083         (vqdmlsls_lane_s32): Likewise.
31084         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
31085         (vqdmulls_lane_s32): Likewise.
31086         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
31087         (vqdmlsl_lane_s32): Likewise.
31088         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
31089         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
31090         (vqrdmulhh_lane_s16): Likewise.
31091         (vqdmlsl_high_lane_s16): Likewise.
31092         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
31093         (vqdmlsl_high_lane_s32): Likewise.
31094         (vqrdmulhs_lane_s32): Likewise.
31095
31096 2014-06-20  Tom de Vries  <tom@codesourcery.com>
31097
31098         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
31099         get_call_reg_set_usage.
31100
31101 2014-06-20  Tom de Vries  <tom@codesourcery.com>
31102
31103         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
31104         it contains all call_used_regs.
31105
31106 2014-06-20  Tom de Vries  <tom@codesourcery.com>
31107
31108         * final.c (collect_fn_hard_reg_usage): Add and use variable
31109         function_used_regs.
31110
31111 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
31112
31113         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
31114         (set_init_priority, get_init_priority, set_fini_priority,
31115         get_fini_priority): New methods.
31116         * tree.c (init_priority_for_decl): Remove.
31117         (init_ttree): Do not initialize init priority.
31118         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
31119         (decl_priority_info): Remove.
31120         (decl_init_priority_insert): Rewrite.
31121         (decl_fini_priority_insert): Rewrite.
31122         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
31123         tree_priority_map_marked_p): Remove.
31124         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
31125         * lto-streamer-out.c (hash_tree): Do not hash priorities.
31126         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
31127         not output priorities.
31128         (pack_ts_function_decl_value_fields): Likewise.
31129         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
31130         not input priorities.
31131         (unpack_ts_function_decl_value_fields): Likewise.
31132         * symtab.c (symbol_priority_map): Declare.
31133         (init_priority_hash): Declare.
31134         (symtab_unregister_node): Unregister from priority hash, too.
31135         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
31136         New methods.
31137         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
31138         (symbol_priority_info): New function.
31139         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
31140         New methods.
31141         * tree-core.h (tree_priority_map): Remove.
31142
31143 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
31144
31145         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
31146         0xff to uint64_t before shifting it up.
31147
31148 2014-06-20  Julian Brown  <julian@codesourcery.com>
31149             Chung-Lin Tang  <cltang@codesourcery.com>
31150
31151         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
31152         TARGET_THUMB1_ONLY. Add comments.
31153
31154 2014-06-19  Tom de Vries  <tom@codesourcery.com>
31155
31156         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
31157         return type to void.
31158         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
31159
31160 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31161
31162         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
31163         as "move", from depends_on.
31164
31165 2014-06-19  Terry Guo  <terry.guo@arm.com>
31166
31167         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
31168         stage.
31169
31170 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
31171
31172         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
31173         Remove cr5.
31174         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
31175
31176 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
31177
31178         PR target/61550
31179         * config/sh/sh.c (prepare_move_operands): Don't process TLS
31180         addresses here if reload in progress or completed.
31181
31182 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
31183
31184         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
31185         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
31186         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
31187         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
31188         (mips_register_priority): New function that implements the target
31189         hook TARGET_REGISTER_PRIORITY.
31190         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
31191         (mips_lra_p): Likewise for TARGET_LRA_P.
31192         (TARGET_REGISTER_PRIORITY): Define macro.
31193         (TARGET_SPILL_CLASS): Likewise.
31194         (TARGET_LRA_P): Likewise.
31195         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
31196         classes.
31197         (REG_CLASS_NAMES): Likewise.
31198         (REG_CLASS_CONTENTS): Likewise.
31199         (BASE_REG_CLASS): Use M16_SP_REGS.
31200         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
31201         New set attribute to enable alternatives depending on the register
31202         allocator used.
31203         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
31204         (*lea64): Disable pattern for MIPS16.
31205         * config/mips/mips.opt (mlra): New option.
31206
31207 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
31208
31209         * lra-constraints.c (base_to_reg): New function.
31210         (process_address): Use new function.
31211
31212 2014-06-18  Tom de Vries  <tom@codesourcery.com>
31213
31214         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
31215         * config/aarch64/aarch64.c
31216         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
31217         (aarch64_emit_call_insn): New function.
31218         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
31219         of emit_call_insn.
31220         * config/aarch64/aarch64.md (define_expand "call_internal")
31221         (define_expand "call_value_internal", define_expand "sibcall_internal")
31222         (define_expand "sibcall_value_internal"): New.
31223         (define_expand "call", define_expand "call_value")
31224         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
31225         expand variant and aarch64_emit_call_insn.
31226
31227 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
31228             Tom de Vries  <tom@codesourcery.com>
31229
31230         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
31231         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
31232         Redefine to true.
31233         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
31234         clobbers to CALL_INSN_FUNCTION_USAGE.
31235         (define_expand "sibcall_internal")
31236         (define_expand "sibcall_value_internal"): New.
31237         (define_expand "call", define_expand "call_value"): Add argument to
31238         arm_emit_call_insn.
31239         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
31240         (define_expand "sibcall_value"): Use sibcall_value_internal and
31241         arm_emit_call_insn.
31242
31243 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31244
31245         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
31246
31247 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31248
31249         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
31250         __udivmoddi4.
31251
31252 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31253
31254         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
31255         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
31256         annotations. Fix DWARF information.
31257
31258 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31259
31260         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
31261         __udivmoddi4, and fixups for negative operands.
31262
31263 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31264
31265         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
31266
31267 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31268
31269         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
31270         to __udivmoddi4.
31271
31272 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31273
31274         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
31275         manipulation.
31276
31277 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31278
31279         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
31280         describing register usage on function entry and exit.
31281
31282 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31283
31284         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
31285         (__aeabi_ldivmod): Fix whitespace.
31286
31287 2014-06-18  Andreas Schwab  <schwab@suse.de>
31288
31289         * doc/md.texi (Standard Names): Use @itemx for grouped items.
31290         Remove blank line after @item.
31291
31292 2014-06-18  Richard Henderson  <rth@redhat.com>
31293
31294         PR target/61545
31295         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
31296
31297 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
31298
31299         * config/arm/arm.c (neon_vector_mem_operand): Allow register
31300         POST_MODIFY for neon loads and stores.
31301         (arm_print_operand): Output post-index register for neon loads and
31302         stores.
31303
31304 2014-06-18  Richard Biener  <rguenther@suse.de>
31305
31306         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
31307
31308 2014-06-18  Richard Biener  <rguenther@suse.de>
31309
31310         * tree-pass.h (make_pass_dce_loop): Remove.
31311         * passes.def: Replace pass_dce_loop with pass_dce.
31312         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
31313         changed free niter estimates and reset the scev cache.
31314         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
31315         make_pass_dce_loop): Remove.
31316         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
31317         (fini_copy_prop): Return whether something changed.  Always
31318         let substitute_and_fold perform DCE and free niter estimates
31319         and reset the scev cache if so.
31320         (execute_copy_prop): If sth changed schedule cleanup-cfg.
31321         (pass_data_copy_prop): Do not unconditionally schedule
31322         cleanup-cfg or update-ssa.
31323
31324 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
31325
31326         PR tree-optimization/61518
31327         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
31328         reduction var is used in reduction stmt or phi-function only.
31329
31330 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31331
31332         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
31333
31334 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31335
31336         PR tree-optimization/61517
31337         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
31338         whose rhs's first tree is the source expression instead of the
31339         expression itself.
31340         (find_bswap_or_nop): Likewise.
31341         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
31342         gimple stmt whose rhs's first tree is the source. In the memory source
31343         case, move the stmt to be replaced close to one of the original load to
31344         avoid the problem of a store between the load and the stmt's original
31345         location.
31346         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
31347         signature.
31348
31349 2014-06-18  Andreas Schwab  <schwab@suse.de>
31350
31351         PR rtl-optimization/54555
31352         * postreload.c (move2add_use_add2_insn): Substitute
31353         STRICT_LOW_PART only if it is cheaper.
31354
31355 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
31356
31357         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
31358         Do not use unspec as call operand.  Use memory_operand instead of
31359         memory_nox32_operand and add "m" operand constraint.  Disable
31360         pattern for TARGET_X32.
31361         (*sibcall_pop_memory): Ditto.
31362         (*sibcall_value_memory): Ditto.
31363         (*sibcall_value_pop_memory): Ditto.
31364         (sibcall peepholes): Merge SImode and DImode patterns using
31365         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
31366         Disable pattern for TARGET_X32.  Check if eliminated register is
31367         really dead after call insn.  Generate call RTX without unspec operand.
31368         (sibcall_value peepholes): Ditto.
31369         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
31370         instead of memory_nox32_operand.  Check if eliminated register is
31371         really dead after call insn. Generate call RTX without unspec operand.
31372         (sibcall_value_pop peepholes): Ditto.
31373         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
31374
31375 2014-06-18  Terry Guo  <terry.guo@arm.com>
31376
31377         PR target/61544
31378         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
31379         reach the head.
31380
31381 2014-06-18  Olivier Hainque  <hainque@adacore.com>
31382
31383         * tree-core.h (tree_block): Add an "end_locus" field, allowing
31384         memorization of the end of block source location.
31385         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
31386         * gimplify.c (gimplify_bind_expr): Propagate the block start and
31387         end source location info we have on the block entry/exit code we
31388         generate.
31389
31390 2014-06-18  Richard Biener  <rguenther@suse.de>
31391
31392         * common.opt (fssa-phiopt): New option.
31393         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
31394         but not with -Og.
31395         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
31396         * doc/invoke.texi (-fssa-phiopt): Document.
31397
31398 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31399
31400         * genattrtab.c (n_bypassed): New variable.
31401         (process_bypasses): Initialise n_bypassed.
31402         Count number of bypassed reservations.
31403         (make_automaton_attrs): Allocate space for bypassed reservations
31404         rather than number of bypasses.
31405
31406 2014-06-18  Richard Biener  <rguenther@suse.de>
31407
31408         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
31409         we propagated anything.
31410         (substitute_and_fold_dom_walker::before_dom_children): Something
31411         changed if we propagated into PHI arguments.
31412         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
31413         we removed a stmt.
31414
31415 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
31416
31417         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
31418         vector case.
31419         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
31420         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
31421         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
31422         Introduces alternative way of loads group permutaions.
31423         (vect_transform_grouped_load): Try alternative way of permutations.
31424
31425 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
31426
31427         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
31428         changed in ORT_TARGET region, don't jump to do_outer.
31429         (struct gimplify_adjust_omp_clauses_data): New type.
31430         (gimplify_adjust_omp_clauses_1): Adjust for data being
31431         a struct gimplify_adjust_omp_clauses_data pointer instead
31432         of tree *.  Pass pre_p as a new argument to
31433         lang_hooks.decls.omp_finish_clause hook.
31434         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
31435         splay_tree_foreach to pass both list_p and pre_p.
31436         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
31437         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
31438         gimplify_adjust_omp_clauses callers.
31439         * langhooks.c (lhd_omp_finish_clause): New function.
31440         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
31441         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
31442         * langhooks.h (struct lang_hooks_for_decls): Add a new
31443         gimple_seq * argument to omp_finish_clause hook.
31444         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
31445         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
31446         (scan_omp_parallel, lower_omp_for): When adding
31447         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
31448         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
31449         * tree-nested.c (convert_nonlocal_omp_clauses,
31450         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
31451         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
31452
31453 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
31454
31455         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
31456         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
31457
31458 2014-06-17  Xinliang David Li  <davidxl@google.com>
31459
31460         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
31461         * passes.c (pass_init_dump_file): Do not set initialize
31462         flag to false unconditionally.
31463
31464 2014-06-17  Richard Biener  <rguenther@suse.de>
31465
31466         * genopinit.c (main): Use vec<>::qsort method.
31467         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
31468         Likewise.
31469         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
31470
31471 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
31472
31473         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
31474         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
31475         (mips_move_to_gpr_cost): Remove ST_REGS case.
31476         (mips_move_from_gpr_cost): Likewise.
31477         (mips_register_move_cost): Likewise.
31478         (mips_secondary_reload_class): Likewise.
31479
31480 2014-06-17  Richard Biener  <rguenther@suse.de>
31481
31482         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
31483         (pass_all_optimizations): Move 3rd copy-prop pass from after
31484         fre to before ifcombine/phiopt.
31485
31486 2014-06-17  Richard Biener  <rguenther@suse.de>
31487
31488         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
31489         and allow all blocks to be forwarders.
31490
31491 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
31492
31493         PR target/61483
31494         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
31495         variable 'size'; calculate 'size' right in the front; use
31496         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
31497         pcum->aapcs_stack_words.
31498
31499 2014-06-17  Nick Clifton  <nickc@redhat.com>
31500
31501         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
31502         (umulhi3, mulsidi3, umulsidi3): Likewise.
31503
31504 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
31505
31506         PR middle-end/61508
31507         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
31508         check for section name.
31509
31510 2014-06-17  Richard Biener  <rguenther@suse.de>
31511
31512         * tree-ssa-propagate.c: Include domwalk.h.
31513         (substitute_and_fold): Outline main worker into a domwalker ...
31514         (substitute_and_fold_dom_walker::before_dom_children): ... here.
31515         Schedule stmts we can fully propagate for removal.  Remove
31516         poor-mans DCE.
31517         (substitute_and_fold): Apply a dominator walk to perform
31518         substitution.  Process stmts scheduled for removal here.
31519
31520 2014-06-17  Richard Biener  <rguenther@suse.de>
31521
31522         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
31523         of PHI node moving.
31524
31525 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
31526
31527         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
31528         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
31529         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
31530         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
31531         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
31532         TARGET_HARD_FLOAT.
31533         (get_fpscr) : Likewise.
31534
31535 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
31536
31537         PR rtl-optimization/61325
31538         * lra-constraints.c (valid_address_p): Add forward declaration.
31539         (simplify_operand_subreg): Check address validity before and after
31540         alter_reg of memory subreg.
31541
31542 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
31543
31544         * config/i386/i386.c (decide_alg): Correctly handle
31545         maximum size of stringop algorithm.
31546
31547 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
31548
31549         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
31550
31551 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
31552
31553         PR rtl-optimization/61522
31554         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
31555
31556 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
31557
31558         Revert:
31559         * symtab.c (symtab_node::reset_section): New method.
31560         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
31561         for localization.
31562         * cgraph.h (reset_section): Declare.
31563         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
31564         do not consider comdat locals.
31565         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
31566         for new symbol.
31567         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
31568         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
31569         reset sections of symbols dragged out of the comdats.
31570         (function_and_variable_visibility): Reset sections of
31571         localized symbols.
31572
31573 2014-06-16  Richard Biener  <rguenther@suse.de>
31574
31575         PR tree-optimization/61482
31576         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
31577         [-INF(OVF), +INF(OVF)] range.
31578
31579 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
31580
31581         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
31582         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
31583         handling 32-bit multiplication.
31584
31585 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
31586
31587         PR middle-end/61430
31588         * lra-lives.c (process_bb_lives): Skip creating copy during
31589         insn scan when src/dest has constrained to same regno.
31590
31591 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
31592
31593         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
31594         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
31595
31596 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
31597
31598         * asan.c (check_func): New function.
31599         (maybe_create_ssa_name): Likewise.
31600         (build_check_stmt_with_calls): Likewise.
31601         (use_calls_p): Likewise.
31602         (report_error_func): Change interface.
31603         (build_check_stmt): Allow non-integer lengths; add support
31604         for new parameter.
31605         (asan_instrument): Likewise.
31606         (instrument_mem_region_access): Moved code to build_check_stmt.
31607         (instrument_derefs): Likewise.
31608         (instrument_strlen_call): Likewise.
31609         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
31610         * doc/invoke.texi: Describe new parameter.
31611         * params.def: Define new parameter.
31612         * params.h: Likewise.
31613         * sanitizer.def: Describe new builtins.
31614
31615 2014-06-16  Richard Biener  <rguenther@suse.de>
31616
31617         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31618         Make all defs available at the end.
31619         (eliminate): If we remove a PHI node schedule cfg-cleanup.
31620
31621 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
31622
31623         PR plugins/45078
31624         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
31625
31626 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
31627
31628         PR bootstrap/61516
31629         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
31630         initialization.  Replace remaining use of uid.
31631
31632 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
31633
31634         * c-family/c-common.c (handle_tls_model_attribute): Use
31635         set_decl_tls_model.
31636         * c-family/c-common.c (handle_tls_model_attribute): Use
31637         set_decl_tls_model.
31638         * cgraph.h (struct varpool_node): Add tls_model.
31639         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
31640         * tree.h (DECL_TLS_MODEL): Update.
31641         (DECL_THREAD_LOCAL_P): Check that variable is static.
31642         (decl_tls_model): Declare.
31643         (set_decl_tls_model): Declare.
31644         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
31645         set symbol prorperties.
31646         (get_emutls_init_templ_addr): Cleanup.
31647         (new_emutls_decl): Update.
31648         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
31649         (lto_input_varpool_node): Likewise.
31650         * lto-streamer-out.c (hash_tree): Likewise.
31651         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
31652         not stream DECL_TLS_MODEL.
31653         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
31654         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
31655
31656 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31657
31658         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
31659
31660 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31661
31662         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
31663         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
31664         lists.
31665         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
31666         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
31667         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
31668         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
31669         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
31670         (df_get_artificial_defs, df_get_artificial_uses)
31671         (df_single_def, df_single_use): Update accordingly.
31672         (df_refs_chain_dump): Take the first element in a linked list as
31673         parameter, rather than a pointer to an array of pointers.
31674         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
31675         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
31676         (df_chain_create_bb_process_use): Likewise.
31677         (df_md_bb_local_compute_process_def): Likewise.
31678         * fwprop.c (process_defs, process_uses): Likewise.
31679         (register_active_defs, update_uses): Likewise.
31680         (forward_propagate_asm): Update for new df_ref linking.
31681         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
31682         (df_null_ref_rec, df_null_mw_rec): Likewise.
31683         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
31684         explicitly.
31685         (df_scan_free_bb_info): Remove check for null artificial_defs.
31686         (df_install_ref_incremental): Adjust for new df_ref linking.
31687         Use a single-element insertion rather than a full sort.
31688         (df_ref_chain_delete_du_chain): Take the first element
31689         in a linked list as parameter, rather than a pointer to an array of
31690         pointers.
31691         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
31692         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
31693         (df_insn_info_delete): Remove check for null defs and call to
31694         df_scan_free_mws_vec.
31695         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
31696         null rather than df_null_*_rec.
31697         (df_insn_rescan_debug_internal): Likewise, and update null
31698         checks in the same way.  Remove check for null defs.
31699         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
31700         Move a single element rather doing a full sort.
31701         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
31702         linking.
31703         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
31704         Initialize df_ref and df_mw_hardreg lists to null rather than
31705         df_null_*_rec.
31706         (df_ref_compare): Take df_refs as parameter, transferring the
31707         old interface to...
31708         (df_ref_ptr_compare): ...this new function.
31709         (df_sort_and_compress_refs): Update accordingly.
31710         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
31711         old interface to...
31712         (df_mw_ptr_compare): ...this new function.
31713         (df_sort_and_compress_mws): Update accordingly.
31714         (df_install_refs, df_install_mws): Return a linked list rather than
31715         an array of pointers.
31716         (df_refs_add_to_chains): Assert that old lists are empty rather
31717         than freeing them.
31718         (df_insn_refs_verify): Don't handle null defs speciailly.
31719         * web.c (union_match_dups): Update for new df_ref linking.
31720
31721 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31722
31723         * df.h (df_ref_create, df_ref_remove): Delete.
31724         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
31725         (df_ref_remove): Likewise.
31726
31727 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31728
31729         * df.h (df_single_def, df_single_use): New functions.
31730         * ira.c (find_moveable_pseudos): Use them.
31731
31732 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31733
31734         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
31735         * df-problems.c (df_note_bb_compute): Use it.
31736         * regstat.c (regstat_bb_compute_ri): Likewise.
31737
31738 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31739
31740         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
31741         * cse.c (cse_extended_basic_block): Use them.
31742         * dce.c (mark_artificial_use): Likewise.
31743         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
31744         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
31745         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
31746         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
31747         (df_simulate_initialize_backwards): Likewise.
31748         (df_simulate_finalize_backwards): Likewise.
31749         (df_simulate_initialize_forwards): Likewise.
31750         (df_md_simulate_artificial_defs_at_top): Likewise.
31751         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
31752         * regrename.c (init_rename_info): Likewise.
31753         * regstat.c (regstat_bb_compute_ri): Likewise.
31754         (regstat_bb_compute_calls_crossed): Likewise.
31755
31756 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
31757
31758         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
31759         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
31760         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
31761         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
31762         * combine.c (create_log_links): Likewise.
31763         * compare-elim.c (find_flags_uses_in_insn): Likewise.
31764         (try_eliminate_compare): Likewise.
31765         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
31766         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
31767         (remove_reg_equal_equiv_notes_for_defs): Likewise.
31768         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
31769         (word_dce_process_block, dce_process_block): Likewise.
31770         * ddg.c (def_has_ccmode_p): Likewise.
31771         * df-core.c (df_bb_regno_first_def_find): Likewise.
31772         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
31773         * df-problems.c (df_rd_simulate_one_insn): Likewise.
31774         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
31775         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
31776         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
31777         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
31778         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
31779         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
31780         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
31781         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
31782         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
31783         * fwprop.c (local_ref_killed_between_p): Likewise.
31784         (all_uses_available_at, free_load_extend): Likewise.
31785         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
31786         * hw-doloop.c (scan_loop): Likewise.
31787         * ifcvt.c (dead_or_predicable): Likewise.
31788         * init-regs.c (initialize_uninitialized_regs): Likewise.
31789         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
31790         (process_bb_node_lives): Likewise.
31791         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
31792         (find_moveable_pseudos): Likewise.
31793         * loop-invariant.c (check_dependencies, record_uses): Likewise.
31794         * recog.c (peep2_find_free_register): Likewise.
31795         * ree.c (get_defs): Likewise.
31796         * regstat.c (regstat_bb_compute_ri): Likewise.
31797         (regstat_bb_compute_calls_crossed): Likewise.
31798         * sched-deps.c (find_inc, find_mem): Likewise.
31799         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
31800         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
31801         * shrink-wrap.c (requires_stack_frame_p): Likewise.
31802         (prepare_shrink_wrap): Likewise.
31803         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
31804         * web.c (union_defs, pass_web::execute): Likewise.
31805         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
31806         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
31807
31808 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
31809
31810         * lra-assign.c (assign_by_spills): Add code to assign vector regs
31811         to inheritance pseudos.
31812         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
31813
31814 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
31815
31816         PR target/61415
31817         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
31818         (BU_MISC_2): Rename to ...
31819         (BU_LDBL128_2): ... this.
31820         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
31821         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
31822         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
31823         RS6000_BTM_LDBL128.
31824         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
31825         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
31826         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
31827         (unpacktf_1): Likewise.
31828         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
31829         (__builtin_longdouble_dw1): Likewise.
31830         * doc/sourcebuild.texi (longdouble128): Document.
31831
31832 2014-06-13  Jeff Law  <law@redhat.com>
31833
31834         PR rtl-optimization/61094
31835         PR rtl-optimization/61446
31836         * ree.c (combine_reaching_defs): Get the mode for the copy from
31837         the extension insn rather than the defining insn.
31838
31839 2014-06-13  Dehao Chen  <dehao@google.com>
31840
31841         * dwarf2out.c (add_linkage_name): Emit more linkage name.
31842
31843 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
31844
31845         * doc/install.texi (--enable-linker-plugin-configure-flags)
31846         (--enable-linker-plugin-flags): Document new flags.
31847
31848 2014-06-13  Martin Jambor  <mjambor@suse.cz>
31849
31850         PR ipa/61186
31851         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
31852         cache_token if returning early.
31853
31854 2014-06-13  Nick Clifton  <nickc@redhat.com>
31855
31856         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
31857         requested alignment is active.
31858         (LABEL_ALIGN): Likewise.
31859         (LOOP_ALIGN): Likewise.
31860
31861 2014-06-13  Richard Biener  <rguenther@suse.de>
31862
31863         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31864         Rewrite to propagate the VN result into all uses where
31865         possible and to remove stmts becoming dead because of that.
31866         (eliminate): Generalize stmt removal handling, remove in
31867         reverse dominator order to support proper debug stmt
31868         generation.  Update stmts before removing stmts.
31869         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
31870
31871 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31872
31873         PR tree-optimization/61375
31874         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
31875         symbolic number cannot be represented in an uint64_t.
31876         (find_bswap_or_nop_1): Likewise.
31877
31878 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
31879
31880         * symtab.c (symtab_node::reset_section): New method.
31881         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
31882         for localization.
31883         * cgraph.h (reset_section): Declare.
31884         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
31885         do not consider comdat locals.
31886         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
31887         for new symbol.
31888         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
31889         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
31890         reset sections of symbols dragged out of the comdats.
31891         (function_and_variable_visibility): Reset sections of
31892         localized symbols.
31893
31894 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
31895
31896         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
31897         to use symtab and decl_binds_to_current_def_p
31898         * tree-vectorizer.c (increase_alignment): Increase alignment
31899         of alias target, too.
31900
31901 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
31902
31903         PR middle-end/61486
31904         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
31905         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
31906         if outer combined construct is distribute.
31907         (gimplify_omp_for): For OMP_DISTRIBUTE set
31908         gimplify_omp_ctxp->distribute.
31909         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
31910         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
31911         mapping into decl map.
31912
31913 2014-06-12  Jason Merrill  <jason@redhat.com>
31914
31915         * common.opt (fabi-version): Change default to 0.
31916
31917 2014-06-12  Jason Merrill  <jason@redhat.com>
31918
31919         * toplev.c (process_options): Reject -fabi-version=1.
31920
31921 2014-06-12  Jeff Law  <law@redhat.com>
31922
31923         PR tree-optimization/61009
31924         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
31925         value when we stop processing a block due to problematic PHIs.
31926
31927 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
31928
31929         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
31930         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
31931         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
31932         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
31933         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
31934         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
31935         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
31936         are not in the spec.
31937
31938 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
31939
31940         PR target/59843
31941         * config/aarch64/aarch64-modes.def: Add V1DFmode.
31942         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
31943         Support V1DFmode.
31944
31945 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
31946
31947         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
31948
31949 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
31950
31951         PR target/61443
31952         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
31953         loading from address spaces.
31954
31955 2014-06-12  Martin Liska  <mliska@suse.cz>
31956
31957         PR ipa/61462
31958         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
31959         statement is reachable.
31960
31961 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
31962
31963         * symtab.c (section_hash): New hash.
31964         (symtab_unregister_node): Clear section before freeing.
31965         (hash_section_hash_entry): New haser.
31966         (eq_sections): New function.
31967         (symtab_node::set_section_for_node): New method.
31968         (set_section_1): Update.
31969         (symtab_node::set_section): Take string instead of tree as parameter.
31970         (symtab_resolve_alias): Update.
31971         * cgraph.h (section_hash_entry_d): New structure.
31972         (section_hash_entry): New typedef.
31973         (cgraph_node): Change comdat_group_ to x_comdat_group,
31974         change section_ to x_section and turn into section_hash_entry;
31975         update accestors; put set_section_for_node offline.
31976         * tree.c (decl_section_name): Turn into string.
31977         (set_decl_section_name): Change parameter to be string.
31978         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
31979         * sdbout.c (sdbout_one_type): Update.
31980         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
31981         * varasm.c (IN_NAMED_SECTION, get_named_section,
31982         resolve_unique_section, hot_function_section, get_named_text_section,
31983         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
31984         make_decl_rtl, default_unique_section): Update.
31985         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
31986         (c6x_elf_unique_section): Update.
31987         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
31988         * config/pa/pa.c (pa_function_section): Update.
31989         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
31990         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
31991         * config/arc/arc.c (arc_in_small_data_p): Update.
31992         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
31993         * config/mcore/mcore.c (mcore_unique_section): Update.
31994         * config/mips/mips.c (mips16_build_function_stub): Update.
31995         (mips16_build_call_stub): Update.
31996         (mips_function_rodata_section): Update.
31997         (mips_in_small_data_p): Update.
31998         * config/score/score.c (score_in_small_data_p): Update.
31999         * config/rx/rx.c (rx_in_small_data): Update.
32000         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
32001         (rs6000_xcoff_asm_named_section): Update.
32002         (rs6000_xcoff_unique_section): Update.
32003         * config/frv/frv.c (frv_string_begins_with): Update.
32004         (frv_in_small_data_p): Update.
32005         * config/v850/v850.c (v850_encode_data_area): Update.
32006         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
32007         (bfin_handle_l1_data_attribute): Update.
32008         (bfin_handle_l2_attribute): Update.
32009         * config/mep/mep.c (mep_unique_section): Update.
32010         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
32011         Update.
32012         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
32013         (h8300_handle_tiny_data_attribute): Update.
32014         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
32015         (m32r_in_small_data_p): Update.
32016         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
32017         * config/i386/i386.c (ix86_in_large_data_p): Update.
32018         * config/i386/winnt.c (i386_pe_unique_section): Update.
32019         * config/darwin.c (darwin_function_section): Update.
32020         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
32021         * tree-emutls.c (get_emutls_init_templ_addr): Update.
32022         (new_emutls_decl): Update.
32023         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
32024         input_varpool_node): Update.
32025         (ead_string_cst): Turn to ...
32026         (read_string): ... this one.
32027         * dwarf2out.c (secname_for_decl): Update.
32028         * asan.c (asan_protect_global): Update.
32029
32030 2014-06-11  DJ Delorie  <dj@redhat.com>
32031
32032         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
32033         cache lines.
32034         * config/rx/rx.c (rx_option_override): Likewise.
32035         (rx_align_for_label): Likewise.
32036
32037         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
32038
32039 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
32040
32041         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
32042         prototype.
32043
32044 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32045
32046         * common.md: New file.
32047         * doc/md.texi: Update description of generic, machine-independent
32048         constraints.
32049         * config/s390/constraints.md (e): Delete.
32050         * Makefile.in (md_file): Include common.md.
32051         * config/m32c/t-m32c (md_file): Likewise.
32052         * genpreds.c (general_mem): New array.
32053         (generic_constraint_letters): Remove constraints now defined by
32054         common.md.
32055         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
32056         Allow the first character to be '<' or '>' as well.
32057         * genoutput.c (general_mem): New array.
32058         (indep_constraints): Remove constraints now defined by common.md.
32059         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
32060         Remove special handling of 'm'.
32061         * ira-costs.c (record_reg_classes): Remove special handling of
32062         constraints now defined by common.md.
32063         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
32064         * ira-lives.c (single_reg_class): Likewise.
32065         (ira_implicitly_set_insn_hard_regs): Likewise.
32066         * lra-constraints.c (reg_class_from_constraints): Likewise.
32067         (process_alt_operands, process_address, curr_insn_transform): Likewise.
32068         * postreload.c (reload_cse_simplify_operands): Likewise.
32069         * reload.c (push_secondary_reload, scratch_reload_class)
32070         (find_reloads, alternative_allows_const_pool_ref): Likewise.
32071         * reload1.c (maybe_fix_stack_asms): Likewise.
32072         * targhooks.c (default_secondary_reload): Likewise.
32073         * stmt.c (parse_output_constraint): Likewise.
32074         * recog.c (preprocess_constraints): Likewise.
32075         (constrain_operands, peep2_find_free_register): Likewise.
32076         (asm_operand_ok): Likewise, but add a comment saying why 'o'
32077         must be handled specially.
32078
32079 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32080
32081         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
32082         * genpreds.c (have_const_dbl_constraints): Delete.
32083         (add_constraint): Don't set it.
32084         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
32085         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
32086         constraints using the lookup_constraint logic.
32087         * ira-lives.c (single_reg_class): Likewise.
32088         * ira.c (ira_setup_alts): Likewise.
32089         * lra-constraints.c (process_alt_operands): Likewise.
32090         * recog.c (asm_operand_ok, constrain_operands): Likewise.
32091         * reload.c (find_reloads): Likewise.
32092
32093 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32094
32095         * genpreds.c (const_int_start, const_int_end): New variables.
32096         (choose_enum_order): Output CONST_INT constraints before memory
32097         constraints.
32098         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
32099         Add CT_CONST_INT.
32100         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
32101         * ira.c (ira_setup_alts): Likewise.
32102         * lra-constraints.c (process_alt_operands): Likewise.
32103         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
32104         * reload.c (find_reloads): Likewise.
32105
32106 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32107
32108         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
32109         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
32110         * recog.c (preprocess_constraints): Update accordingly.
32111
32112 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32113
32114         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
32115         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
32116         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
32117         * genpreds.c (print_type_tree): New function.
32118         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
32119         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
32120         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
32121         Write out enum constraint_type and get_constraint_type.
32122         * lra-constraints.c (satisfies_memory_constraint_p): Take a
32123         constraint_num rather than a constraint string.
32124         (satisfies_address_constraint_p): Likewise.
32125         (reg_class_from_constraints): Avoid old constraint macros.
32126         (process_alt_operands, process_address_1): Likewise.
32127         (curr_insn_transform): Likewise.
32128         * ira-costs.c (record_reg_classes): Likewise.
32129         (record_operand_costs): Likewise.
32130         * ira-lives.c (single_reg_class): Likewise.
32131         (ira_implicitly_set_insn_hard_regs): Likewise.
32132         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
32133         * postreload.c (reload_cse_simplify_operands): Likewise.
32134         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
32135         (constrain_operands, peep2_find_free_register): Likewise.
32136         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
32137         (find_reloads, alternative_allows_const_pool_ref): Likewise.
32138         * reload1.c (maybe_fix_stack_asms): Likewise.
32139         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
32140         * targhooks.c (default_secondary_reload): Likewise.
32141         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
32142         to EXTRA_CONSTRAINT_STR.
32143         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
32144
32145 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32146
32147         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
32148         (write_constraint_satisfied_p_array): ...this new function.
32149         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
32150         an array.
32151         (write_insn_preds_c): Update accordingly.
32152
32153 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32154
32155         * genpreds.c (write_lookup_constraint): Rename to...
32156         (write_lookup_constraint_1): ...this.
32157         (write_lookup_constraint_array): New function.
32158         (write_tm_preds_h): Define lookup_constraint as an inline function
32159         that uses write_lookup_constraint_array where possible.
32160         (write_insn_preds_c): Update for the changes above.
32161
32162 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
32163
32164         * doc/md.texi (regclass_for_constraint): Rename to...
32165         (reg_class_for_constraint): ...this.
32166         * genpreds.c (num_constraints, enum_order, register_start)
32167         (register_end, satisfied_start, memory_start, memory_end)
32168         (address_start, address_end): New variables.
32169         (add_constraint): Count the number of constraints.
32170         (choose_enum_order): New function.
32171         (write_enum_constraint_num): Iterate over enum_order.
32172         (write_regclass_for_constraint): Rename to...
32173         (write_reg_class_for_constraint_1): ...this and update output
32174         accordingly.
32175         (write_constraint_satisfied_p): Rename to...
32176         (write_constraint_satisfied_p_1): ...this and update output
32177         accordingly.  Do nothing if all extra constraints are register
32178         constraints.
32179         (write_insn_extra_memory_constraint): Delete.
32180         (write_insn_extra_address_constraint): Delete.
32181         (write_range_function): New function.
32182         (write_tm_preds_h): Define constraint_satisfied_p and
32183         reg_class_for_constraint as inline functions that do a range check
32184         before calling the out-of-line function.  Use write_range_function
32185         to implement insn_extra_{register,memory,address}_constraint,
32186         the first of which is new.
32187         (write_insn_preds_c): Update after above changes to write_* functions.
32188         (main): Call choose_enum_order.
32189
32190 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32191
32192         PR tree-optimization/61306
32193         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
32194         expression instead of its size.
32195         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
32196         false to prevent optimization when the result is unpredictable due to
32197         arithmetic right shift of signed type with highest byte is set.
32198         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
32199         (init_symbolic_number): Likewise.
32200         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
32201         when the result is unpredictable due to sign extension.
32202
32203 2014-06-11  Terry Guo  <terry.guo@arm.com>
32204
32205         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
32206         (*thumb1_addsi3): Ditto.
32207         (*thumb_subdi3): Ditto.
32208         (thumb1_subsi3_insn): Ditto.
32209         (*thumb_mulsi3): Ditto.
32210         (*thumb_mulsi3_v6): Ditto.
32211         (*thumb1_andsi3_insn): Ditto.
32212         (thumb1_bicsi3): Ditto.
32213         (*thumb1_iorsi3_insn): Ditto.
32214         (*thumb1_xorsi3_insn): Ditto.
32215         (*thumb1_ashlsi3): Ditto.
32216         (*thumb1_ashrsi3): Ditto.
32217         (*thumb1_lshrsi3): Ditto.
32218         (*thumb1_rotrsi3): Ditto.
32219         (*thumb1_negdi2): Ditto.
32220         (*thumb1_negsi2): Ditto.
32221         (*thumb1_abssi2): Ditto.
32222         (*thumb1_neg_abssi2): Ditto.
32223         (*thumb1_one_cmplsi2): Ditto.
32224         (*thumb1_zero_extendhisi2): Ditto.
32225         (*thumb1_zero_extendqisi2): Ditto.
32226         (*thumb1_zero_extendqisi2_v6): Ditto.
32227         (thumb1_extendhisi2): Ditto.
32228         (thumb1_extendqisi2): Ditto.
32229         (*thumb1_movdi_insn): Ditto.
32230         (*thumb1_movsi_insn): Ditto.
32231         (*thumb1_movhi_insn): Ditto.
32232         (thumb_movhi_clobber): Ditto.
32233         (*thumb1_movqi_insn): Ditto.
32234         (*thumb1_movhf): Ditto.
32235         (*thumb1_movsf_insn): Ditto.
32236         (*thumb_movdf_insn): Ditto.
32237         (movmem12b): Ditto.
32238         (movmem8b): Ditto.
32239         (cbranchqi4): Ditto.
32240         (cbranchsi4_insn): Ditto.
32241         (cbranchsi4_scratch): Ditto.
32242         (*negated_cbranchsi4): Ditto.
32243         (*tbit_cbranch): Ditto.
32244         (*tlobits_cbranch): Ditto.
32245         (*tstsi3_cbranch): Ditto.
32246         (*cbranchne_decr1): Ditto.
32247         (*addsi3_cbranch): Ditto.
32248         (*addsi3_cbranch_scratch): Ditto.
32249         (*thumb_cmpdi_zero): Ditto.
32250         (cstoresi_eq0_thumb1): Ditto.
32251         (cstoresi_ne0_thumb1): Ditto.
32252         (*cstoresi_eq0_thumb1_insn): Ditto.
32253         (*cstoresi_ne0_thumb1_insn): Ditto.
32254         (cstoresi_nltu_thumb1): Ditto.
32255         (cstoresi_ltu_thumb1): Ditto.
32256         (thumb1_addsi3_addgeu): Ditto.
32257         (*thumb_jump): Ditto.
32258         (*call_reg_thumb1_v5): Ditto.
32259         (*call_reg_thumb1): Ditto.
32260         (*call_value_reg_thumb1_v5): Ditto.
32261         (*call_value_reg_thumb1): Ditto.
32262         (*call_insn): Ditto.
32263         (*call_value_insn): Ditto.
32264         (thumb1_casesi_internal_pic): Ditto.
32265         (thumb1_casesi_dispatch): Ditto.
32266         (*thumb1_indirect_jump): Ditto.
32267         (prologue_thumb1_interwork): Ditto.
32268         (*epilogue_insns): Ditto.
32269         (consttable_1): Ditto.
32270         (consttable_2): Ditto.
32271         (tablejump): Ditto.
32272         (*thumb1_tablejump): Ditto.
32273         (thumb_eh_return): Ditto.
32274         (define_peephole2): Two of them are thumb1 only and got moved into
32275         new file thumb1.md.
32276         (define_split): Six of them are thumb1 only and got moved into new
32277         file thumb1.md.
32278         * config/arm/thumb1.md: New file comprised of above thumb1 only
32279         patterns.
32280
32281 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32282
32283         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
32284         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
32285         dependencies.
32286         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
32287         (aarch64_crc_builtin_datum): New struct.
32288         (aarch64_crc_builtin_data): New.
32289         (aarch64_init_crc32_builtins): New function.
32290         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
32291         (aarch64_crc32_expand_builtin): New.
32292         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
32293         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
32294         __ARM_FEATURE_CRC32 when appropriate.
32295         (TARGET_CRC32): Define.
32296         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
32297         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
32298         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
32299         (aarch64_<crc_variant>): New pattern.
32300         * config/aarch64/arm_acle.h: New file.
32301         * config/aarch64/iterators.md (CRC): New int iterator.
32302         (crc_variant, crc_mode): New int attributes.
32303         * doc/aarch64-acle-intrinsics.texi: New file.
32304         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
32305         Include aarch64-acle-intrinsics.texi.
32306
32307 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
32308
32309         * tree-vect-data-refs.c (vect_grouped_store_supported): New
32310         check for stores group of length 3.
32311         (vect_permute_store_chain): New permutations for stores group of
32312         length 3.
32313         * tree-vect-stmts.c (vect_model_store_cost): Change cost
32314         of vec_perm_shuffle for the new permutations.
32315
32316 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
32317
32318         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
32319         table rewriting temporarily on targets not supporting ONE_ONLY.
32320
32321 2014-06-11  Richard Biener  <rguenther@suse.de>
32322
32323         PR middle-end/61437
32324         Revert
32325         2014-06-04  Richard Biener  <rguenther@suse.de>
32326
32327         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
32328         TREE_PUBLIC and DECL_EXTERNAL decls.
32329
32330 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
32331
32332         * varasm.c (set_implicit_section): New function.
32333         (resolve_unique_section): Use it to set implicit section
32334         for aliases, too.
32335         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
32336         (default_function_section): Likewise.
32337         (decl_binds_to_current_def_p): Constify argument.
32338         * varasm.h (decl_binds_to_current_def_p): Update prototype.
32339         * asan.c (asan_protect_global): Use
32340         symtab_get_node (decl)->implicit_section.
32341         * symtab.c (dump_symtab_base): Dump implicit sections.
32342         (verify_symtab_base): Verify sanity of sectoins and comdats.
32343         (symtab_resolve_alias): Alias share the section of its target.
32344         (set_section_1): New function.
32345         (symtab_node::set_section): Move here, recurse to aliases.
32346         (verify_symtab): Check for duplicated symtab lists.
32347         * tree-core.h (implicit_section_name_p): Remove.
32348         * tree-vect-data-refs.c: Include varasm.h.
32349         (vect_can_force_dr_alignment_p): Fix conditional on when
32350         decl bints to current definition; use
32351         symtab_get_node (decl)->implicit_section.
32352         * cgraph.c (cgraph_make_node_local_1): Fix section set.
32353         * cgraph.h (struct symtab_node): Add implicit_section.
32354         (set_section): Rename to ...
32355         (set_section_for_node): ... this one.
32356         (set_section): Declare.
32357         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
32358         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
32359         input_overwrite_node, input_varpool_node): Stream implicit_section.
32360         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
32361         removal; it will fail in LTO.
32362
32363 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32364
32365         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
32366         Change second alternative type to f_mcr.
32367         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
32368         and 12th alternatives' types to f_mcr and f_mrc.
32369         (*movdi_aarch64): Same for 12th and 13th alternatives.
32370         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
32371         (aarch64_movtilow_tilow): Change type to fmov.
32372
32373 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
32374
32375         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
32376         (aarch64_save_or_restore_callee_save_registers): Fix layout.
32377
32378 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32379
32380         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
32381         New expander.
32382         (aarch64_sqrdmulh_lane<mode>): Likewise.
32383         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
32384         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
32385         (aarch64_sqdmulh_laneq<mode>): New expander.
32386         (aarch64_sqrdmulh_laneq<mode>): Likewise.
32387         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
32388         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
32389         (aarch64_sqdmulh_lane<mode>): New expander.
32390         (aarch64_sqrdmulh_lane<mode>): Likewise.
32391         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
32392         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
32393         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
32394         (aarch64_sqdmlal_laneq<mode>): Likewise.
32395         (aarch64_sqdmlsl_lane<mode>): Likewise.
32396         (aarch64_sqdmlsl_laneq<mode>): Likewise.
32397         (aarch64_sqdmlal2_lane<mode>): Likewise.
32398         (aarch64_sqdmlal2_laneq<mode>): Likewise.
32399         (aarch64_sqdmlsl2_lane<mode>): Likewise.
32400         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
32401         (aarch64_sqdmull_lane<mode>): Likewise.
32402         (aarch64_sqdmull_laneq<mode>): Likewise.
32403         (aarch64_sqdmull2_lane<mode>): Likewise.
32404         (aarch64_sqdmull2_laneq<mode>): Likewise.
32405
32406 2014-06-10  Richard Biener  <rguenther@suse.de>
32407
32408         PR tree-optimization/61438
32409         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
32410         (eliminate_dom_walker::before_dom_children): Only try to inhibit
32411         insertion of IVs if running PRE.
32412         (eliminate): Adjust.
32413         (pass_pre::execute): Likewise.
32414         (pass_fre::execute): Likewise.
32415
32416 2014-06-10  Richard Biener  <rguenther@suse.de>
32417
32418         PR middle-end/61456
32419         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
32420         Do not use the main variant for the type comparison.
32421         (ncr_compar): Likewise.
32422         (nonoverlapping_component_refs_p): Likewise.
32423
32424 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32425
32426         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
32427         REG_CFA_RESTORE mode.
32428
32429 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
32430
32431         * config/i386/i386.c (expand_vec_perm_pblendv): New.
32432         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
32433         expand_vec_perm_pblendv.
32434
32435 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32436
32437         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
32438         available.
32439         Simplify description of __crc32d and __crc32cd intrinsics.
32440         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
32441         availability.
32442
32443 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
32444
32445         PR lto/61334
32446         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
32447         * config.in: Regenerate.
32448         * configure: Likewise.
32449
32450 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
32451
32452         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
32453         and public vars.
32454         (intersect_static_var_sets): Remove.
32455         (propagate): Do not prune local statics.
32456
32457 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
32458
32459         PR fortran/60928
32460         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
32461         Set lastprivate_firstprivate even if omp_private_outer_ref
32462         langhook returns true.
32463         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
32464         langhook, call unshare_expr on new_var and call
32465         build_outer_var_ref to get the last argument.
32466
32467 2014-06-10  Marek Polacek  <polacek@redhat.com>
32468
32469         PR c/60988
32470         * doc/extend.texi: Add cindex for transparent_union.
32471
32472 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32473
32474         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
32475         init_symbolic_number ().
32476
32477 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
32478
32479         PR middle-end/61141
32480         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
32481         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
32482         (verify_rtl_sharing): Likewise.
32483
32484 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
32485
32486         PR c++/54442
32487         * tree.c (build_qualified_type): Use a canonical type for
32488         TYPE_CANONICAL.
32489
32490 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32491
32492         * config/arm/arm-modes.def: Remove XFmode.
32493
32494 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
32495
32496         PR target/61062
32497         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
32498         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
32499         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
32500         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
32501         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
32502         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
32503         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
32504         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
32505         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
32506
32507 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
32508
32509         * tree-core.h (tree_decl_with_vis): Remove section_name.
32510
32511 2014-06-09  Kito Cheng  <kito@0xlab.org>
32512
32513         * ira.c (ira): Don't call init_caller_save if LRA enabled
32514         since LRA use its own infrastructure to handle that.
32515
32516 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
32517
32518         * symtab.c (dump_symtab_base): Update dumping.
32519         (symtab_make_decl_local): Clear only DECL_COMDAT.
32520         * tree-vect-data-refs.c (Check that variable is static before
32521         tampering with sections.
32522         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
32523         (cgraph_create_virtual_clone): Likewise.
32524         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
32525         (decl_section_name, set_decl_section_name): New accessors.
32526         (find_decls_types_r): Do not walk section name
32527         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
32528         (decl_comdat_group, decl_comdat_group_id): Constify.
32529         (decl_section_name, set_decl_section_name): Update.
32530         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
32531         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
32532         (cgraph_make_node_local_1): Clear section and comdat group.
32533         * cgraph.h (set_comdat_group): Sanity check.
32534         (get_section, set_section): New.
32535         * ipa-comdats.c (ipa_comdats): Use get_section.
32536         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
32537         * lto-streamer-out.c: Do not follow section names.
32538         * c-family/c-common.c (handle_section_attribute): Update.
32539         * lto-cgraph.c (lto_output_node): Output section.
32540         (lto_output_varpool_node): Likewise.
32541         (read_comdat_group): Rename to ...
32542         (read_identifier): ... this one.
32543         (read_string_cst): New function.
32544         (input_node, input_varpool_node): Input section names.
32545         * tree-emutls.c (get_emutls_init_templ_addr): Update.
32546         (new_emutls_decl): Update.
32547         (secname_for_decl): Check section names only of static vars.
32548         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
32549         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
32550         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
32551         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
32552         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
32553         * config/mcore/mcore.c (mcore_unique_section): Likewise.
32554         * config/mips/mips.c (mips16_build_function_stub): Likewise.
32555         * config/v850/v850.c (v850_insert_attributes): Likewise.
32556         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
32557         Likewise.
32558         (h8300_handle_tiny_data_attribute): Likewise.
32559         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
32560         (bfin_handle_l2_attribute): Likewise.
32561
32562 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
32563
32564         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
32565         remove static initializer.
32566
32567 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
32568
32569         * varasm.c (use_blocks_for_decl_p): Check symbol table
32570         instead of alias attribute.
32571         (place_block_symbol): Recurse on aliases.
32572
32573 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
32574
32575         * ipa-visibility.c: Include varasm.h
32576         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
32577
32578 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
32579
32580         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
32581         outputting aliases.
32582
32583 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
32584
32585         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
32586         from test_insn into GGC space escape via SET_SRC.
32587
32588 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
32589
32590         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
32591         call statement, if any.
32592         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
32593         statements, if any.  Tidy up.
32594
32595 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
32596
32597         PR target/61431
32598         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
32599         iterators, VSX_D that handles 64-bit types, and VSX_LE that
32600         handles swapping the two 64-bit double words on little endian
32601         systems.  Include V1TImode and optionally TImode in VSX_LE so that
32602         these types are properly swapped.  Change all of the insns and
32603         splits that do the 64-bit swaps to use VSX_LE.
32604         (vsx_le_perm_load_<mode>): Likewise.
32605         (vsx_le_perm_store_<mode>): Likewise.
32606         (splitters for little endian memory operations): Likewise.
32607         (vsx_xxpermdi2_le_<mode>): Likewise.
32608         (vsx_lxvd2x2_le_<mode>): Likewise.
32609         (vsx_stxvd2x2_le_<mode>): Likewise.
32610
32611 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
32612
32613         PR target/61423
32614         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
32615         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
32616         and corresponding splitters.  Zero extend general register
32617         or memory input operand to XMM temporary.  Enable for
32618         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
32619         (floatunssi<mode>2): Update expander predicate.
32620
32621 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
32622
32623         PR rtl-optimization/61325
32624         * lra-constraints.c (process_address_1): Check scale equal to one
32625         to prevent transformation: base + scale * index => base + new_reg.
32626
32627 2014-06-06  Richard Biener  <rguenther@suse.de>
32628
32629         PR tree-optimization/59299
32630         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
32631         a def operand.
32632         (nearest_common_dominator_of_uses): Likewise.
32633         (statement_sink_location): Adjust.  Support sinking loads.
32634
32635 2014-06-06  Martin Jambor  <mjambor@suse.cz>
32636
32637         * ipa-prop.c (get_place_in_agg_contents_list): New function.
32638         (build_agg_jump_func_from_list): Likewise.
32639         (determine_known_aggregate_parts): Renamed to
32640         determine_locally_known_aggregate_parts.  Moved some functionality
32641         to the two functions above, removed bound checks.
32642
32643 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
32644
32645         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
32646         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
32647         (aarch64_progress_pointer): Likewise.
32648         (aarch64_copy_one_part_and_move_pointers): Likewise.
32649         (aarch64_expand_movmen): Likewise.
32650         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
32651         * config/aarch64/aarch64.md (movmem<mode>): New.
32652
32653 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
32654
32655         * targhooks.c (default_add_stmt_cost): Call target specific
32656         hook instead of default one.
32657
32658 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32659
32660         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
32661         endianness instead of host endianness.
32662         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
32663         comments.
32664
32665 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
32666
32667         PR debug/53927
32668         * function.c (instantiate_decls): Process the saved static chain.
32669         (expand_function_start): If not optimizing, save the static chain
32670         onto the stack.
32671         * tree-nested.c (convert_all_function_calls): Always create the static
32672         chain for nested functions if not optimizing.
32673
32674 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
32675
32676         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
32677
32678 2014-06-06  Richard Biener  <rguenther@suse.de>
32679
32680         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
32681         (construct_init_block): Likewise.
32682         (construct_exit_block): Likewise.
32683         (pass_expand::execute): Likewise.
32684         * graphite.c (graphite_transforms): Replace check for current_loops
32685         with a check for > 1 loops.
32686         (pass_graphite_transforms::execute): Adjust.
32687         * ipa-split.c (split_function): Remove check for current_loops.
32688         * omp-low.c (expand_parallel_call): Likewise.
32689         (expand_omp_for_init_counts): Likewise.
32690         (extract_omp_for_update_vars): Likewise.
32691         (expand_omp_for_generic): Likewise.
32692         (expand_omp_sections): Likewise.
32693         (expand_omp_target): Likewise.
32694         * tracer.c (tail_duplicate): Likewise.
32695         (pass_tracer::execute): Likewise.
32696         * trans-mem.c (expand_transaction): Likewise.
32697         * tree-complex.c (expand_complex_div_wide): Likewise.
32698         * tree-eh.c (lower_resx): Likewise.
32699         (cleanup_empty_eh_merge_phis): Likewise.
32700         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
32701         current_loops with a check for > 1 loops.
32702         (pass_predcom::execute): Adjust.
32703         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
32704         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
32705         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
32706         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
32707         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
32708         * tree-switch-conversion.c (process_switch): Likewise.
32709         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
32710         * tree-vrp.c (vrp_visit_phi_node): Likewise.
32711         (execute_vrp): Likewise.
32712         * ubsan.c (ubsan_expand_null_ifn): Likewise.
32713
32714 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
32715
32716         * rtl.h (insn_location): Declare.
32717         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
32718         with UNKNOWN_LOCATION.
32719         * emit-rtl.c (insn_location): New function.
32720         * final.c (notice_source_line): Check that the instruction has a
32721         location before retrieving it and use insn_location.
32722         * modulo-sched.c (loop_single_full_bb_p): Likewise.
32723         * print-rtl.c (print_rtx): Likewise.
32724
32725 2014-06-06  Richard Biener  <rguenther@suse.de>
32726
32727         * passes.def: Move 2nd VRP pass before phi-only-cprop.
32728
32729 2014-06-06  Christian Bruel  <christian.bruel@st.com>
32730
32731         PR tree-optimization/43934
32732         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
32733         cost.
32734
32735 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
32736
32737         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
32738         return NO_REGS for extra address and memory constraints.  Handle
32739         operands that match (or are equivalent to something that matches)
32740         extra constant constraints.  Ignore other non-register operands.
32741
32742 2014-06-06  Alan Modra  <amodra@gmail.com>
32743
32744         PR target/61300
32745         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
32746         * doc/tm.texi: Regenerate.
32747         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
32748         Use throughout in place of REG_PARM_STACK_SPACE.
32749         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
32750         "incoming" param.  Pass to rs6000_function_parms_need_stack.
32751         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
32752         prototype_p when incoming.  Use function decl when incoming
32753         to handle K&R style functions.
32754         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
32755         (INCOMING_REG_PARM_STACK_SPACE): Define.
32756
32757 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32758
32759         PR target/52472
32760         * cfgexpand.c (expand_debug_expr): Use address space of nested
32761         TREE_TYPE for ADDR_EXPR and MEM_REF.
32762
32763 2014-06-05  Jeff Law  <law@redhat.com>
32764
32765         PR tree-optimization/61289
32766         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
32767         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
32768         looking for those which match LHS.  All callers changed.
32769         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
32770         parameters and code which manipulated them.  All callers changed.
32771         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
32772         and DST_MAP parameters.  Simplify invalidation code by just calling
32773         invalidate_equivalences.  All callers changed.
32774         (thread_across_edge): Simplify now that we don't need to maintain
32775         the map of equivalences to invalidate.
32776
32777 2014-06-05  Kai Tietz  <ktietz@redhat.com>
32778             Richard Henderson  <rth@redhat.com>
32779
32780         PR target/46219
32781         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
32782         checking for !TARGET_X32.
32783         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
32784         (sibcall_intern): New define_insn, plus required peepholes.
32785         (sibcall_pop_intern): Likewise.
32786         (sibcall_value_intern): Likewise.
32787         (sibcall_value_pop_intern): Likewise.
32788
32789 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
32790
32791         * tree-inline.c (tree_function_versioning): Check DF info existence
32792         before accessing it.
32793
32794 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32795
32796         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
32797         frame_size.
32798         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
32799         aarch64_frame hard_fp_offset and frame_size.
32800         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
32801         frame_size; remove original_frame_size.
32802         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
32803         (aarch64_initial_elimination_offset): Remove frame_size and
32804         offset.  Use aarch64_frame frame_size.
32805
32806 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32807             Jiong Wang  <jiong.wang@arm.com>
32808             Renlin  <renlin.li@arm.com>
32809
32810         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
32811         initialization of R30 offset.  Update offset.  Iterate core
32812         regisers upto X30.  Remove X29, X30 specific code.
32813
32814 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32815             Jiong Wang  <jiong.wang@arm.com>
32816
32817         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
32818         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
32819         (aarch64_register_saved_on_entry): Adjust test.
32820
32821 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32822
32823         * config/aarch64/aarch64.h (machine_function): Move
32824         saved_varargs_size from here...
32825         (aarch64_frame): ... to here.
32826
32827         * config/aarch64/aarch64.c (aarch64_expand_prologue)
32828         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
32829         (aarch64_initial_elimination_offset)
32830         (aarch64_setup_incoming_varargs): Adjust location of
32831         saved_varargs_size.
32832
32833 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
32834
32835         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
32836         layout comment.
32837
32838 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
32839             Prachi Godbole  <Prachi.Godbole@imgtec.com>
32840
32841         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
32842         mips32r5 entry to use PROCESSOR_P5600.
32843         * config/mips/mips-tables.opt: Regenerate.
32844         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
32845         * config/mips/mips.c (mips_fmadd_bypass): New function.
32846         (mips_rtx_cost_data): Add costs for p5600.
32847         (mips_issue_rate): Add support for p5600.
32848         (mips_multipass_dfa_lookahead): Likewise.
32849         * config/mips/mips.h (TUNE_P5600): New define.
32850         (TUNE_MACC_CHAINS): Add TUNE_P5600.
32851         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
32852         * config/mips/mips.md: Include p5600.md.
32853         (processor): Add p5600.
32854         * config/mips/p5600.md: New file.
32855
32856 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
32857
32858         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
32859         * config/i386/predicates.md (palignr_operand): New.
32860         Indicates if permutation is suitable for palignr instruction.
32861
32862 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
32863
32864         PR tree-optimization/61319
32865         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
32866         stmt belongs to loop.
32867
32868 2014-06-05  Richard Biener  <rguenther@suse.de>
32869
32870         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
32871         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
32872         (lookup_tmp_var): Adjust.
32873         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
32874
32875 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32876
32877         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
32878
32879 2014-06-05  Marek Polacek  <polacek@redhat.com>
32880
32881         PR c/49706
32882         * doc/invoke.texi: Document -Wlogical-not-parentheses.
32883
32884 2014-06-04  Tom de Vries  <tom@codesourcery.com>
32885
32886         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
32887         CONST_INT.
32888
32889 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
32890
32891         PR tree-optimization/61385
32892         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
32893
32894 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
32895
32896         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
32897         changed to use fatal_error.
32898         (main): Ensure lto_wrapper_cleanup is run atexit.
32899
32900 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
32901
32902         * lra-constraints.c (valid_address_p): Move earlier in file.
32903         (address_eliminator): New structure.
32904         (satisfies_memory_constraint_p): New function.
32905         (satisfies_address_constraint_p): Likewise.
32906         (process_alt_operands, process_address, curr_insn_transform): Use them.
32907
32908 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
32909
32910         * lra-int.h (lra_static_insn_data): Make operand_alternative a
32911         const pointer.
32912         (target_lra_int, default_target_lra_int, this_target_lra_int)
32913         (op_alt_data): Delete.
32914         * lra.h (lra_init): Delete.
32915         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
32916         (init_insn_code_data_once): Remove op_alt_data handling.
32917         (finish_insn_code_data_once): Likewise.
32918         (init_op_alt_data): Delete.
32919         (get_static_insn_data): Initialize operand_alternative to null.
32920         (free_insn_recog_data): Cast operand_alternative before freeing it.
32921         (setup_operand_alternative): Take the operand_alternative as
32922         parameter and assume it isn't already cached in the static
32923         insn data.
32924         (lra_set_insn_recog_data): Update accordingly.
32925         (lra_init): Delete.
32926         * ira.c (ira_init): Don't call lra_init.
32927         * target-globals.h (this_target_lra_int): Declare.
32928         (target_globals): Remove lra_int.
32929         (restore_target_globals): Update accordingly.
32930         * target-globals.c: Don't include lra-int.h.
32931         (default_target_globals, save_target_globals): Remove lra_int.
32932
32933 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
32934
32935         * recog.h (operand_alternative): Convert reg_class, reject,
32936         matched and matches into bitfields.
32937         (preprocess_constraints): New overload.
32938         (preprocess_insn_constraints): New function.
32939         (preprocess_constraints): Take the insn as parameter.
32940         (recog_op_alt): Change into a pointer.
32941         (target_recog): Add x_op_alt.
32942         * recog.c (asm_op_alt): New variable.
32943         (recog_op_alt): Change into a pointer.
32944         (preprocess_constraints): New overload, replacing the old function
32945         definition with one that doesn't use global state.
32946         (preprocess_insn_constraints): New function.
32947         (preprocess_constraints): Use them.  Take the insn as parameter.
32948         Use asm_op_alt for asms.
32949         (recog_init): Free existing x_op_alt entries.
32950         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
32951         pointer const.
32952         (make_early_clobber_and_input_conflicts): Likewise.
32953         (process_bb_node_lives): Pass the insn to process_constraints.
32954         * reg-stack.c (check_asm_stack_operands): Likewise.
32955         (subst_asm_stack_regs): Likewise.
32956         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
32957         * regrename.c (build_def_use): Likewise.
32958         * sched-deps.c (sched_analyze_insn): Likewise.
32959         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
32960         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
32961         (note_invalid_constants): Likewise.
32962         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
32963         (ix86_legitimate_combined_insn): Make operand_alternative pointer
32964         const.
32965
32966 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
32967
32968         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
32969         * ira-lives.c (check_and_make_def_conflict): Check for disabled
32970         alternatives.
32971         (make_early_clobber_and_input_conflicts): Likewise.
32972         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
32973
32974 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
32975
32976         * recog.h (alternative_class): New function.
32977         (which_op_alt): Return a const recog_op_alt.
32978         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
32979         (subst_asm_stack_regs): Likewise.
32980         * config/arm/arm.c (note_invalid_constants): Likewise.
32981         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
32982         the operand_alternative; use alternative class instead.
32983         * sel-sched.c (get_reg_class): Likewise.
32984         * regrename.c (build_def_use): Likewise.
32985         (hide_operands, restore_operands, record_out_operands): Update type
32986         accordingly.
32987
32988 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
32989
32990         * recog.h (recog_op_alt): Convert to a flat array.
32991         (which_op_alt): New function.
32992         * recog.c (recog_op_alt): Convert to a flat array.
32993         (preprocess_constraints): Update accordingly, grouping all
32994         operands of the same alternative together, rather than the
32995         other way around.
32996         * ira-lives.c (check_and_make_def_conflict): Likewise.
32997         (make_early_clobber_and_input_conflicts): Likewise.
32998         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
32999         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
33000         (subst_asm_stack_regs): Likewise.
33001         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
33002         * regrename.c (hide_operands, record_out_operands): Likewise.
33003         (build_def_use): Likewise.
33004         * sel-sched.c (get_reg_class): Likewise.
33005         * config/arm/arm.c (note_invalid_constants): Likewise.
33006
33007 2014-06-04  Jason Merrill  <jason@redhat.com>
33008
33009         PR c++/51253
33010         PR c++/61382
33011         * gimplify.c (gimplify_arg): Non-static.
33012         * gimplify.h: Declare it.
33013
33014 2014-06-04  Richard Biener  <rguenther@suse.de>
33015
33016         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
33017         TREE_PUBLIC and DECL_EXTERNAL decls.
33018
33019 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
33020
33021         * regcprop.c (copyprop_hardreg_forward_1): Account for
33022         HARD_REGNO_CALL_PART_CLOBBERED.
33023
33024 2014-06-04  Richard Biener  <rguenther@suse.de>
33025
33026         * configure.ac: Check whether the underlying type of int64_t
33027         is long or long long.
33028         * configure: Regenerate.
33029         * config.in: Likewise.
33030         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
33031         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
33032
33033 2014-06-04  Richard Biener  <rguenther@suse.de>
33034
33035         PR tree-optimization/60098
33036         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
33037         we hit a kill.
33038         (dse_optimize_stmt): Simplify, now that we found a kill
33039         earlier.
33040
33041 2014-06-04  Richard Biener  <rguenther@suse.de>
33042
33043         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
33044         of accesses with non-invariant address.
33045
33046 2014-06-04  Martin Liska  <mliska@suse.cz>
33047
33048         * cgraph.h (cgraph_make_wrapper): New function introduced.
33049         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
33050         * ipa-inline.h (inline_analyze_function): The function is global.
33051         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
33052
33053 2014-06-04  Martin Liska  <mliska@suse.cz>
33054
33055         * tree.h (private_lookup_attribute_starting): New function.
33056         (lookup_attribute_starting): Likewise.
33057         * tree.c (private_lookup_attribute_starting): Likewise.
33058
33059 2014-06-04  Martin Liska  <mliska@suse.cz>
33060
33061         * cgraph.h (expand_thunk): New argument added.
33062         (address_taken_from_non_vtable_p): New global function.
33063         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
33064         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
33065         * cgraphunit.c (analyze_function): Likewise.
33066         (assemble_thunks_and_aliases): Argument added to call.
33067         (expand_thunk): New argument forces to produce GIMPLE thunk.
33068
33069 2014-06-04  Martin Liska  <mliska@suse.cz>
33070
33071         * coverage.h (coverage_compute_cfg_checksum): Argument added.
33072         * coverage.c (coverage_compute_cfg_checksum): Likewise.
33073         * profile.c (branch_prob): Likewise.
33074
33075 2014-06-04  Martin Jambor  <mjambor@suse.cz>
33076
33077         PR ipa/61340
33078         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
33079         handler for switch on an ipa_ref_use enum.
33080         * ipa-reference.c (analyze_function): Likewise.
33081
33082 2014-06-04  Kai Tietz  <ktietz@redhat.com>
33083
33084         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
33085         from old call-instruction.
33086
33087 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
33088
33089         * config/aarch64/aarch64.c (aarch64_classify_address)
33090         (aarch64_legitimize_reload_address): Support full addressing modes
33091         for vector modes.
33092         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
33093         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
33094
33095 2014-06-03  Andrew Pinski  <apinski@cavium.com>
33096
33097         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
33098         for OP0.
33099
33100 2014-06-03  Andrew Pinski  <apinski@cavium.com>
33101
33102         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
33103         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
33104
33105 2014-06-03  Kai Tietz  <ktietz@redhat.com>
33106
33107         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
33108         for 64-bit ms-abi.
33109
33110 2014-06-03  Dehao Chen  <dehao@google.com>
33111
33112         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
33113         the same loop.
33114
33115 2014-06-03  Marek Polacek  <polacek@redhat.com>
33116
33117         PR c/60439
33118         * doc/invoke.texi: Document -Wswitch-bool.
33119         * function.c (stack_protect_epilogue): Cast controlling expression of
33120         the switch to int.
33121         * gengtype.c (walk_type): Generate switch expression with its
33122         controlling expression cast to int.
33123
33124 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
33125
33126         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
33127         and attiny841.
33128         * config/avr/avr-tables.opt: Regenerate.
33129         * config/avr/t-multilib: Regenerate.
33130         * doc/avr-mmcu.texi: Regenerate.
33131
33132 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
33133             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
33134
33135         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
33136         (ata6617c, ata664251): Add new avr35 devices.
33137         (ata6612c): Add new avr4 device.
33138         (ata6613c, ata6614q): Add new avr5 devices.
33139         * config/avr/avr-tables.opt: Regenerate.
33140         * config/avr/t-multilib: Regenerate.
33141         * doc/avr-mmcu.texi: Regenerate.
33142
33143 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
33144
33145         * gcc/config/aarch64/aarch64-builtins.c
33146         (aarch64_types_binop_ssu_qualifiers): New static data.
33147         (TYPES_BINOP_SSU): Define.
33148         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
33149         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
33150         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
33151         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
33152         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
33153         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
33154         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
33155         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
33156         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
33157         suffix to builtin function name, remove cast.
33158         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
33159         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
33160         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
33161
33162 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
33163
33164         * gcc/config/aarch64/aarch64-builtins.c
33165         (aarch64_types_binop_uus_qualifiers,
33166         aarch64_types_shift_to_unsigned_qualifiers,
33167         aarch64_types_unsigned_shiftacc_qualifiers): Define.
33168         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
33169         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
33170         sqshlu_n, uqshl_n): Update qualifiers.
33171         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
33172         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
33173         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
33174         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
33175         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
33176         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
33177         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
33178         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
33179         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
33180         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
33181         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
33182         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
33183         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
33184         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
33185         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
33186         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
33187         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
33188         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
33189         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
33190         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
33191         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
33192         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
33193         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
33194         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
33195         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
33196         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
33197         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
33198
33199 2014-06-03  Teresa Johnson  <tejohnson@google.com>
33200
33201         * tree-sra.c (modify_function): Record caller nodes after rebuild.
33202
33203 2014-06-02  Jason Merrill  <jason@redhat.com>
33204
33205         PR c++/61020
33206         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
33207
33208 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
33209
33210         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
33211         location == 0.
33212
33213 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
33214
33215         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
33216         New pattern.
33217         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
33218         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
33219         * config/aarch64/iterators.md (REVERSE): New iterator.
33220         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
33221         (rev_op): New int_attribute.
33222         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
33223         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
33224         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
33225         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
33226         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
33227         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
33228         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
33229         Replace temporary __asm__ with __builtin_shuffle.
33230
33231 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
33232
33233         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
33234         mips64r5.
33235         * config/mips/mips-tables.opt: Regenerate.
33236         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
33237         to use mips_isa_rev rather than ISA_MIPS32R2.
33238         * config/mips/mips.h (ISA_MIPS32R3): New define.
33239         (ISA_MIPS32R5): New define.
33240         (ISA_MIPS64R3): New define.
33241         (ISA_MIPS64R5): New define.
33242         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
33243         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
33244         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
33245         and mips64r5.
33246         (MIPS_ISA_SYNCI_SPEC): Likewise.
33247         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
33248         (LINK_SPEC): Added mips32r3 and mips32r5.
33249         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
33250         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
33251         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
33252         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
33253         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
33254         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
33255         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
33256
33257 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
33258
33259         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
33260         options.
33261         * config/mips/mips.opt (mxpa): New option.
33262         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
33263         assembler.
33264
33265 2014-06-03  Martin Jambor  <mjambor@suse.cz>
33266
33267         PR ipa/61160
33268         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
33269         thunks.
33270
33271 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33272
33273         PR tree-optimization/61328
33274         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
33275         initialization from find_bswap_or_nop_1.
33276         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
33277         in source_expr2 before using the size value the function sets. Also
33278         make use of init_symbolic_number () in both the old place and
33279         find_bswap_or_nop_load () to avoid reading uninitialized memory when
33280         doing recursion in the GIMPLE_BINARY_RHS case.
33281
33282 2014-06-03  Richard Biener  <rguenther@suse.de>
33283
33284         PR tree-optimization/61383
33285         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
33286         stmts can't trap.
33287
33288 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
33289
33290         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
33291         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
33292         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
33293         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
33294         in this file.
33295         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
33296         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
33297         * system.h: ...here and make it unconditional.
33298         * target.def (conditional_register_usage): Mention
33299         define_register_constraint instead of old-style constraint macros.
33300         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
33301         * doc/tm.texi: Regenerate.
33302         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
33303         protected by !USE_MD_CONSTRAINTS.
33304         * config/frv/frv.md: Remove quote from old version of documentation.
33305         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
33306         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
33307         CONST_DOUBLE_OK_FOR_LETTER.
33308         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
33309
33310 2014-06-02  Andrew Pinski  <apinski@cavium.com>
33311
33312         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
33313         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
33314         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
33315         file whose name depends on -mabi= and -mbig-endian.
33316         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
33317         Handle LP64 better and handle ilp32 too.
33318         (MULTILIB_OPTIONS): Delete.
33319         (MULTILIB_DIRNAMES): Delete.
33320
33321 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
33322
33323         * expr.h: Remove prototypes of functions defined in builtins.c.
33324         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
33325         Remove prototypes of functions defined in builtins.c.
33326         * builtins.h: Update prototype list to include all exported functions.
33327         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
33328         no_c99_libc_has_function): Move to targhooks.c
33329         (build_string_literal, build_call_expr_loc_array,
33330         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
33331         to tree.c.
33332         (expand_builtin_object_size, fold_builtin_object_size): Make static.
33333         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
33334         no_c99_libc_has_function): Relocate from builtins.c.
33335         * tree.c: Include builtins.h.
33336         (build_call_expr_loc_array, build_call_expr_loc_vec,
33337         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
33338         from builtins.c.
33339         * fold-const.h (fold_fma): Move prototype to builtins.h.
33340         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
33341         * asan.c: Include builtins.h.
33342         * cfgexpand.c: Likewise.
33343         * convert.c: Likewise.
33344         * emit-rtl.c: Likewise.
33345         * except.c: Likewise.
33346         * expr.c: Likewise.
33347         * fold-const.c: Likewise.
33348         * gimple-fold.c: Likewise.
33349         * gimple-ssa-strength-reduction.c: Likewise.
33350         * gimplify.c: Likewise.
33351         * ipa-inline.c: Likewise.
33352         * ipa-prop.c: Likewise.
33353         * lto-streamer-out.c: Likewise.
33354         * stmt.c: Likewise.
33355         * tree-inline.c: Likewise.
33356         * tree-object-size.c: Likewise.
33357         * tree-sra.c: Likewise.
33358         * tree-ssa-ccp.c: Likewise.
33359         * tree-ssa-forwprop.c: Likewise.
33360         * tree-ssa-loop-ivcanon.c: Likewise.
33361         * tree-ssa-loop-ivopts.c: Likewise.
33362         * tree-ssa-math-opts.c: Likewise.
33363         * tree-ssa-reassoc.c: Likewise.
33364         * tree-ssa-threadedge.c: Likewise.
33365         * tree-streamer-in.c: Likewise.
33366         * tree-vect-data-refs.c: Likewise.
33367         * tree-vect-patterns.c: Likewise.
33368         * tree-vect-stmts.c: Likewise.
33369         * config/aarch64/aarch64.c: Likewise.
33370         * config/alpha/alpha.c: Likewise.
33371         * config/arc/arc.c: Likewise.
33372         * config/arm/arm.c: Likewise.
33373         * config/avr/avr.c: Likewise.
33374         * config/bfin/bfin.c: Likewise.
33375         * config/c6x/c6x.c: Likewise.
33376         * config/cr16/cr16.c: Likewise.
33377         * config/cris/cris.c: Likewise.
33378         * config/epiphany/epiphany.c: Likewise.
33379         * config/fr30/fr30.c: Likewise.
33380         * config/frv/frv.c: Likewise.
33381         * config/h8300/h8300.c: Likewise.
33382         * config/i386/i386.c: Likewise.
33383         * config/i386/winnt.c: Likewise.
33384         * config/ia64/ia64.c: Likewise.
33385         * config/iq2000/iq2000.c: Likewise.
33386         * config/lm32/lm32.c: Likewise.
33387         * config/m32c/m32c.c: Likewise.
33388         * config/m32r/m32r.c: Likewise.
33389         * config/m68k/m68k.c: Likewise.
33390         * config/mcore/mcore.c: Likewise.
33391         * config/mep/mep.c: Likewise.
33392         * config/microblaze/microblaze.c: Likewise.
33393         * config/mips/mips.c: Likewise.
33394         * config/mmix/mmix.c: Likewise.
33395         * config/mn10300/mn10300.c: Likewise.
33396         * config/moxie/moxie.c: Likewise.
33397         * config/msp430/msp430.c: Likewise.
33398         * config/nds32/nds32.c: Likewise.
33399         * config/pa/pa.c: Likewise.
33400         * config/pdp11/pdp11.c: Likewise.
33401         * config/picochip/picochip.c: Likewise.
33402         * config/rl78/rl78.c: Likewise.
33403         * config/rs6000/rs6000.c: Likewise.
33404         * config/rx/rx.c: Likewise.
33405         * config/s390/s390.c: Likewise.
33406         * config/score/score.c: Likewise.
33407         * config/sh/sh.c: Likewise.
33408         * config/sparc/sparc.c: Likewise.
33409         * config/spu/spu.c: Likewise.
33410         * config/stormy16/stormy16.c: Likewise.
33411         * config/tilegx/tilegx.c: Likewise.
33412         * config/tilepro/tilepro.c: Likewise.
33413         * config/v850/v850.c: Likewise.
33414         * config/vax/vax.c: Likewise.
33415         * config/xtensa/xtensa.c: Likewise.
33416
33417 2014-06-02  Jeff Law  <law@redhat.com>
33418
33419         PR rtl-optimization/61094
33420         * ree.c (combine_reaching_defs): Do not reextend an insn if it
33421         was marked as do_no_reextend.  If a copy is needed to eliminate
33422         an extension, then mark it as do_not_reextend.
33423
33424 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33425
33426         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
33427
33428 2014-06-02  Richard Henderson  <rth@redhat.com>
33429
33430         PR target/61336
33431         * config/alpha/alpha.c (print_operand_address): Allow symbolic
33432         addresses inside asms.  Use output_operand_lossage instead of
33433         gcc_unreachable.
33434
33435 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
33436
33437         PR target/61239
33438         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
33439         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
33440
33441 2014-06-02  Tom de Vries  <tom@codesourcery.com>
33442
33443         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
33444         case that x has VOIDmode.
33445
33446 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
33447
33448         * varasm.c (copy_constant): Delete function.
33449         (build_constant_desc): Don't call it.
33450
33451 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33452
33453         PR target/61154
33454         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
33455         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
33456         with immediate_operand.
33457
33458 2014-06-02  Andreas Schwab  <schwab@suse.de>
33459
33460         * config/ia64/ia64.c
33461         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
33462         pending_data_specs first.
33463
33464 2014-06-02  Richard Biener  <rguenther@suse.de>
33465
33466         PR tree-optimization/61378
33467         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
33468         valueized_anything.
33469
33470 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
33471
33472         * config/i386/constraints.md (Bw): Rename from 'w'.
33473         (Bz): Rename from 'z'.
33474         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
33475
33476 2014-06-01  Kai Tietz  <ktietz@redhat.com>
33477
33478         PR target/61377
33479         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
33480         * config/i386/i386.md (sibcall_insn_operand): Use Bs
33481         instead of m constraint.
33482
33483 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
33484
33485         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
33486         a separate alternative where the scratch operand 2 is marked as
33487         early clobber.
33488
33489 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
33490
33491         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
33492         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
33493         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
33494         and __builtins_arm_get_fpscr.
33495         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33496         __builtins_arm_get_fpscr.
33497         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
33498         __builtins_arm_ldfpscr.
33499         (arm_atomic_assign_expand_fenv): New function.
33500         * config/arm/vfp.md (set_fpscr): New pattern.
33501         (get_fpscr) : Likewise.
33502         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
33503         VUNSPEC_SET_FPSCR.
33504         * doc/extend.texi (AARCH64 Built-in Functions) : Document
33505         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
33506
33507 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
33508
33509         * asan.c (report_error_func): Add SLOW_P argument, use
33510         BUILT_IN_ASAN_*_N if set.
33511         (build_check_stmt): Likewise.
33512         (instrument_derefs): If T has insufficient alignment,
33513         force same handling as for odd sizes.
33514
33515         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
33516         BUILT_IN_ASAN_REPORT_STORE_N): New.
33517         * asan.c (struct asan_mem_ref): Change access_size type to
33518         HOST_WIDE_INT.
33519         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
33520         update_mem_ref_hash_table): Likewise.
33521         (asan_mem_ref_hasher::hash): Hash in a HWI.
33522         (report_error_func): Change size_in_bytes argument to HWI.
33523         Use *_N builtins if size_in_bytes is larger than 16 or not power of
33524         two.
33525         (build_shadow_mem_access): New function.
33526         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
33527         Handle size_in_bytes not power of two or larger than 16.
33528         (instrument_derefs): Don't give up if size_in_bytes is not
33529         power of two or is larger than 16.
33530
33531 2014-05-30  Kai Tietz  <ktietz@redhat.com>
33532
33533         PR target/60104
33534         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
33535         for sibling-tail-calls.
33536         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
33537         to its use.
33538         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
33539         (sibcall_insn_operand): Add check for sibcall_memory_operand.
33540
33541 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
33542
33543         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
33544         * config/avr/avr-tables.opt: Regenerate.
33545         * config/avr/t-multilib: Regenerate.
33546         * doc/avr-mmcu.texi: Regenerate.
33547
33548 2014-05-30  Ian Lance Taylor  <iant@google.com>
33549
33550         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
33551         target("sse").
33552
33553 2014-05-30  Tom de Vries  <tom@codesourcery.com>
33554
33555         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
33556         Redefine as true.
33557
33558 2014-05-30  Tom de Vries  <tom@codesourcery.com>
33559
33560         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
33561         * lra.c (initialize_lra_reg_info_element): Add init of
33562         actual_call_used_reg_set field.
33563         (lra): Call lra_create_live_ranges before lra_inheritance for
33564         -fuse-caller-save.
33565         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
33566         -fuse-caller-save.
33567         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
33568         instead of call_used_reg_set for -fuse-caller-save.
33569         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
33570
33571 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33572
33573         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
33574         to mov_imm.
33575         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
33576
33577 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
33578
33579         * ira.c (ira_get_dup_out_num): Check for output operands at
33580         the start of the loop.  Handle cases where an included alternative
33581         follows an excluded one.
33582
33583 2014-05-29  Mike Stump  <mikestump@comcast.net>
33584
33585         PR debug/61352
33586         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
33587         post ld passes when lto is used.
33588
33589 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
33590
33591         PR rtl-optimization/61325
33592         * lra-constraints.c (process_address): Rename to process_address_1.
33593         (process_address): New function.
33594
33595 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
33596
33597         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
33598         TYPES_BINOPV): New static data.
33599         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
33600         New builtin.
33601         * config/aarch64/aarch64-simd.md (aarch64_ext,
33602         aarch64_im_lane_boundsi): New patterns.
33603         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
33604         patterns for EXT.
33605         (aarch64_evpc_ext): New function.
33606
33607         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
33608
33609         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
33610         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
33611         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
33612         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
33613         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
33614
33615 2014-05-29  Tom de Vries  <tom@codesourcery.com>
33616
33617         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
33618
33619 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
33620             Richard Sandiford  <rdsandiford@googlemail.com>
33621
33622         * arm/iterators.md (shiftable_ops): New code iterator.
33623         (t2_binop0, arith_shift_insn): New code attributes.
33624         * arm/predicates.md (shift_nomul_operator): New predicate.
33625         * arm/arm.md (insn_enabled): Delete.
33626         (enabled): Remove insn_enabled test.
33627         (*arith_shiftsi): Delete.  Replace with ...
33628         (*<arith_shift_insn>_multsi): ... new pattern.
33629         (*<arith_shift_insn>_shiftsi): ... new pattern.
33630         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
33631
33632 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
33633             Tom de Vries  <tom@codesourcery.com>
33634
33635         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
33636         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
33637         clobber.
33638         (mips_split_call): Use POST_CALL_TMP_REG.
33639         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
33640
33641 2014-05-29  Tom de Vries  <tom@codesourcery.com>
33642
33643         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
33644         with #ifdef STACK_REGS.
33645
33646 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
33647
33648         * varasm.c (get_variable_section): Walk aliases.
33649         (place_block_symbol): Walk aliases.
33650
33651 2014-05-28  Tom de Vries  <tom@codesourcery.com>
33652
33653         Revert:
33654         2014-05-28  Tom de Vries  <tom@codesourcery.com>
33655
33656         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
33657         * lra.c (initialize_lra_reg_info_element): Add init of
33658         actual_call_used_reg_set field.
33659         (lra): Call lra_create_live_ranges before lra_inheritance for
33660         -fuse-caller-save.
33661         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
33662         -fuse-caller-save.
33663         * lra-constraints.c (need_for_call_save_p): Use
33664         actual_call_used_reg_set instead of call_used_reg_set for
33665         -fuse-caller-save.
33666         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
33667
33668 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
33669
33670         * doc/md.texi: Document that the % constraint character must
33671         be at the beginning of the string.
33672         * genoutput.c (validate_insn_alternatives): Check that '=',
33673         '+' and '%' only appear at the beginning of a constraint.
33674         * ira.c (commutative_constraint_p): Delete.
33675         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
33676         at the start of the string.
33677         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
33678         duplicate '='s.
33679         * config/arm/neon.md (bicdi3_neon): Likewise.
33680         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
33681         (slt_si, sltu_si): Likewise.
33682         * config/vax/vax.md (sbcdi3): Likewise.
33683         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
33684         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
33685         (mul64): Move '%' to beginning of constraint.
33686         * config/arm/arm.md (*xordi3_insn): Likewise.
33687         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
33688         (xorsi3): Likewise.
33689
33690 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
33691
33692         * doc/md.texi: Document the restrictions on the "enabled" attribute.
33693
33694 2014-05-28  Jason Merrill  <jason@redhat.com>
33695
33696         PR c++/47202
33697         * cgraph.h (symtab_node::get_comdat_group_id): New.
33698         * cgraphunit.c (analyze_functions): Call it.
33699         * symtab.c (dump_symtab_node): Likewise.
33700         * tree.c (decl_comdat_group_id): New.
33701         * tree.h: Declare it.
33702         * lto-streamer-out.c (write_symbol): Use it.
33703         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
33704
33705 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33706
33707         PR bootstrap/PR61146
33708         * wide-int.cc: Do not include longlong.h when compiling with clang.
33709
33710 2014-05-28  Richard Biener  <rguenther@suse.de>
33711
33712         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
33713         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
33714         (vrp_visit_assignment_or_call): Print less vertical space.
33715         (vrp_visit_stmt): Likewise.
33716         (vrp_visit_phi_node): Likewise.  For a PHI argument with
33717         VR_VARYING range consider recording it as copy.
33718
33719 2014-05-28  Richard Biener  <rguenther@suse.de>
33720
33721         Revert
33722         2014-05-28  Richard Biener  <rguenther@suse.de>
33723
33724         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
33725
33726 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33727
33728         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
33729         sufficiently aligned and an offset is used at the same time.
33730         (expand_expr_real_1): Likewise.
33731
33732 2014-05-28  Richard Biener  <rguenther@suse.de>
33733
33734         PR middle-end/61045
33735         * fold-const.c (fold_comparison): When folding
33736         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
33737         the sign of the remaining constant operand stays the same.
33738
33739 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
33740
33741         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
33742         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
33743         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
33744         to the assembler.
33745         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
33746         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
33747         (m32bit-doubles) Likewise.
33748         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
33749         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
33750         option for RL78.
33751
33752 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33753
33754         * configure.ac ($gcc_cv_ld_clearcap): New test.
33755         * configure: Regenerate.
33756         * config.in: Regenerate.
33757         * config/sol2.opt (mclear-hwcap): New option.
33758         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
33759         * config/sol2-clearcap.map: Moved here from
33760         testsuite/gcc.target/i386/clearcap.map.
33761         * config/sol2-clearcapv2.map: Move here from
33762         gcc.target/i386/clearcapv2.map.
33763         * config/t-sol2 (install): Depend on install-clearcap-map.
33764         (install-clearcap-map): New target.
33765         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
33766         -mclear-hwcap.
33767
33768 2014-05-28  Richard Biener  <rguenther@suse.de>
33769
33770         * hwint.h (*_HALF_WIDE_INT*): Move to ...
33771         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
33772         ... here and remove the rest.
33773         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
33774
33775 2014-05-28  Richard Biener  <rguenther@suse.de>
33776
33777         PR tree-optimization/61335
33778         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
33779         new range fails, drop to varying.
33780
33781 2014-05-28  Olivier Hainque  <hainque@adacore.com>
33782
33783         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
33784         (CPP_SPEC): Add entry for -mcpu=8548.
33785         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
33786         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
33787
33788 2014-05-28  Tom de Vries  <tom@codesourcery.com>
33789
33790         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
33791         * lra.c (initialize_lra_reg_info_element): Add init of
33792         actual_call_used_reg_set field.
33793         (lra): Call lra_create_live_ranges before lra_inheritance for
33794         -fuse-caller-save.
33795         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
33796         -fuse-caller-save.
33797         * lra-constraints.c (need_for_call_save_p): Use
33798         actual_call_used_reg_set instead of call_used_reg_set for
33799         -fuse-caller-save.
33800         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
33801
33802 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
33803             Tom de Vries  <tom@codesourcery.com>
33804
33805         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
33806         to gccoptlist.
33807         (@item -fuse-caller-save): New item.
33808
33809 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
33810             Tom de Vries  <tom@codesourcery.com>
33811
33812         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
33813         OPT_fuse_caller_save.
33814
33815 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
33816             Tom de Vries  <tom@codesourcery.com>
33817
33818         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
33819         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
33820         get_call_reg_set_usage.
33821         * resource.c (mark_set_resources, mark_target_live_regs): Use
33822         get_call_reg_set_usage.
33823         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
33824         field.
33825         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
33826         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
33827         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
33828         * ira-build.c (ira_create_allocno): Init
33829         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
33830         (create_cap_allocno, propagate_allocno_info)
33831         (propagate_some_info_from_allocno)
33832         (copy_info_to_removed_store_destinations): Handle
33833         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
33834         * ira-costs.c (ira_tune_allocno_costs): Use
33835         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
33836
33837 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
33838             Tom de Vries  <tom@codesourcery.com>
33839
33840         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
33841         and function_used_regs_valid fields.
33842         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
33843         find_all_hard_reg_sets.
33844         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
33845         (get_call_reg_set_usage): New function.
33846         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
33847         * regs.h (get_call_reg_set_usage): Declare.
33848
33849 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
33850
33851         PR libgcc/61152
33852         * config/dbx.h (License): Add Runtime Library Exception.
33853         * config/newlib-stdint.h (License): Same.
33854         * config/rtems.h (License): Same
33855         * config/initfini-array.h (License): Same
33856         * config/v850/v850.h (License): Same.
33857         * config/v850/v850-opts.h (License): Same
33858         * config/v850/rtems.h (License): Same.
33859
33860 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
33861
33862         PR target/61044
33863         * doc/extend.texi (Local Labels): Note that label differences are
33864         not supported for AVR.
33865
33866 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
33867             Olivier Hainque  <hainque@adacore.com>
33868
33869         * rtl.h (set_for_reg_notes): Declare.
33870         * emit-rtl.c (set_for_reg_notes): New function.
33871         (set_unique_reg_note): Use it.
33872         * optabs.c (add_equal_note): Likewise
33873
33874 2014-05-27  Andrew Pinski  <apinski@cavium.com>
33875
33876         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
33877         Use <w> for the register in assembly template.
33878         (stack_protect_test): Use the mode of operands[0] for the result.
33879         (stack_protect_test_<mode>): Use <w> for the register
33880         in assembly template.
33881
33882 2014-05-27  DJ Delorie  <dj@redhat.com>
33883
33884         * config/rx/rx.c (add_vector_labels): New.
33885         (rx_output_function_prologue): Call it.
33886         (rx_handle_func_attribute): Don't require empty arguments.
33887         (rx_handle_vector_attribute): New.
33888         (rx_attribute_table): Add "vector" attribute.
33889         * doc/extend.texi (interrupt, vector): Document new/changed
33890         RX-specific attributes.
33891
33892         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
33893
33894 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
33895
33896         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
33897         predicate to detect a negative quotient.
33898
33899 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
33900
33901         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
33902         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
33903         Add X - Y CMP 0 to X CMP Y transformation.
33904         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
33905
33906 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
33907
33908         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
33909         before printing.
33910
33911 2014-05-27  Steve Ellcey  <sellcey@mips.com>
33912
33913         * config/mips/mips.c: Add include of cgraph.h.
33914
33915 2014-05-27  Richard Biener  <rguenther@suse.de>
33916
33917         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
33918
33919 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
33920
33921         PR libgcc/61152
33922         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
33923         * config/arm/arm-cores.def (License): Same.
33924         * config/arm/arm-opts.h (License): Same.
33925         * config/arm/aout.h (License): Same.
33926         * config/arm/bpabi.h (License): Same.
33927         * config/arm/elf.h (License): Same.
33928         * config/arm/linux-elf.h (License): Same.
33929         * config/arm/linux-gas.h (License): Same.
33930         * config/arm/netbsd-elf.h (License): Same.
33931         * config/arm/uclinux-eabi.h (License): Same.
33932         * config/arm/uclinux-elf.h (License): Same.
33933         * config/arm/vxworks.h (License): Same.
33934
33935 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33936
33937         * config/arm/neon.md (neon_bswap<mode>): New pattern.
33938         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
33939         (arm_init_neon_builtins): Handle NEON_BSWAP.
33940         Define required type nodes.
33941         (arm_expand_neon_builtin): Handle NEON_BSWAP.
33942         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
33943         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
33944         * config/arm/iterators.md (VDQHSD): New mode iterator.
33945
33946 2014-05-27  Richard Biener  <rguenther@suse.de>
33947
33948         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
33949         Try using literal operands when comparing value-ranges failed.
33950
33951 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
33952
33953         * ira.c (commutative_operand): Adjust for change to recog_data.
33954         [Missing from previous commit.]
33955
33956 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
33957
33958         * system.h (TEST_BIT): New macro.
33959         * recog.h (alternative_mask): New type.
33960         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
33961         (recog_data_d): Replace alternative_enabled_p array with
33962         enabled_alternatives.
33963         (target_recog): New structure.
33964         (default_target_recog, this_target_recog): Declare.
33965         (get_enabled_alternatives, recog_init): Likewise.
33966         * recog.c (default_target_recog, this_target_recog): New variables.
33967         (get_enabled_alternatives): New function.
33968         (extract_insn): Use it.
33969         (recog_init): New function.
33970         (preprocess_constraints, constrain_operands): Adjust for change to
33971         recog_data.
33972         * postreload.c (reload_cse_simplify_operands): Likewise.
33973         * reload.c (find_reloads): Likewise.
33974         * ira-costs.c (record_reg_classes): Likewise.
33975         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
33976         all alternatives after a disabled one would be skipped.
33977         (ira_implicitly_set_insn_hard_regs): Likewise.
33978         * ira.c (ira_setup_alts): Adjust for change to recog_data.
33979         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
33980         with enabled_alternatives.
33981         * lra.c (free_insn_recog_data): Update accordingly.
33982         (lra_update_insn_recog_data): Likewise.
33983         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
33984         * lra-constraints.c (process_alt_operands): Likewise.  Handle
33985         only_alternative as part of the enabled mask.
33986         * target-globals.h (this_target_recog): Declare.
33987         (target_globals): Add a recog field.
33988         (restore_target_globals): Restore this_target_recog.
33989         * target-globals.c: Include recog.h.
33990         (default_target_globals): Initialize recog field.
33991         (save_target_globals): Likewise.
33992         * reginfo.c (reinit_regs): Call recog_init.
33993         * toplev.c (backend_init_target): Likewise.
33994
33995 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
33996
33997         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
33998         rather than any named insn's code.
33999
34000 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
34001
34002         PR libgcc/61152
34003         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
34004         * config/arm/arm-cores.def (License): Same.
34005
34006 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
34007
34008         * tree.h (decl_comdat_group): Declare.
34009         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
34010         * tree.c (decl_comdat_group): Here.
34011
34012 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
34013
34014         PR rtl-optimization/61222
34015         * combine.c (simplify_shift_const_1): When moving a PLUS outside
34016         the shift, truncate the PLUS operand to the result mode.
34017
34018 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
34019
34020         PR target/61271
34021         * config/i386/i386.c (ix86_rtx_costs)
34022         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
34023         Fix condition.
34024
34025 2014-05-26  Martin Jambor  <mjambor@suse.cz>
34026
34027         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
34028         subreg uses.
34029
34030 2014-05-26  Richard Biener  <rguenther@suse.de>
34031
34032         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
34033         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
34034         Provide specializations.
34035         (wi::int_traits <HOST_WIDE_INT>,
34036         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
34037
34038 2014-05-26  Alan Modra  <amodra@gmail.com>
34039
34040         PR target/61098
34041         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
34042         params and return a bool.  Remove dead code.  Update comment.
34043         Assert we have a const_int source.  Remove bogus code from
34044         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
34045         handling of constants > 2G and reg_equal note, from..
34046         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
34047         return value.  Update comment.  If we can, use a new pseudo
34048         for intermediate calculations.
34049         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
34050         prototype.
34051         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
34052         call to rs6000_emit_set_const in splitter.
34053         (movdi_internal64+2, +3): Likewise.
34054
34055 2014-05-26  Richard Biener  <rguenther@suse.de>
34056
34057         * system.h: Define __STDC_FORMAT_MACROS before
34058         including inttypes.h.
34059         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
34060         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
34061         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
34062         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
34063         HOST_WIDEST_INT_C): Remove.
34064         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
34065         if C99 inttypes.h is not available.
34066         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
34067         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
34068         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
34069         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
34070         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
34071         (struct output_info): Likewise.
34072         (print_statistics): Adjust.
34073         (dump_bitmap_statistics): Likewise.
34074         * bt-load.c (migrate_btr_defs): Print with PRId64.
34075         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
34076         (MAX_SAFE_MULTIPLIER): Adjust.
34077         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
34078         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
34079         dump_cgraph_node): Likewise.
34080         * final.c (dump_basic_block_info): Likewise.
34081         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
34082         * gcov.c (format_gcov): Likewise.
34083         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
34084         for calculation.
34085         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
34086         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
34087         (inline_small_functions, dump_overall_stats, dump_inline_stats):
34088         Use PRId64 for dumping.
34089         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
34090         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
34091         (add_allocno_hard_regs): Adjust.
34092         * loop-doloop.c (doloop_modify): Print using PRId64.
34093         * loop-iv.c (inverse): Compute in uint64_t.
34094         (determine_max_iter, iv_number_of_iterations): Likewise.
34095         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
34096         Print using PRId64.
34097         * lto-streamer-out.c (write_symbol): Use uint64_t.
34098         * mcf.c (CAP_INFINITY): Use int64_t maximum.
34099         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
34100         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
34101         * modulo-sched.c (const_iteration_count): Use int64_t.
34102         (sms_schedule): Dump using PRId64.
34103         * predict.c (dump_prediction): Likewise.
34104         * pretty-print.h (pp_widest_integer): Remove.
34105         * profile.c (get_working_sets, is_edge_inconsistent,
34106         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
34107         * tree-pretty-print.c (pp_double_int): Remove case handling
34108         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
34109         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
34110         and adjust users.
34111         (pass_optimize_bswap::execute): Remove restriction on hosts.
34112         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
34113         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
34114         * tree.c (widest_int_cst_value): Remove.
34115         * tree.h (widest_int_cst_value): Likewise.
34116         * value-prof.c (dump_histogram_value): Print using PRId64.
34117         * gengtype.c (main): Also inject int64_t.
34118         * ggc-page.c (struct max_alignment): Use int64_t.
34119         * alloc-pool.c (struct allocation_object_def): Likewise.
34120         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
34121         for computation.
34122         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
34123         * doc/tm.texi: Regenerated.
34124         * gengtype-lex.l (IWORD): Handle [u]int64_t.
34125         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
34126         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
34127         mmix_output_register_setting): Use [u]int64_t in prototypes.
34128         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
34129         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
34130         mmix_output_octa, mmix_output_shifted_value): Adjust.
34131         (mmix_intval): Adjust.  Remove unreachable case.
34132         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
34133
34134 2014-05-26  Richard Biener  <rguenther@suse.de>
34135
34136         * configure.ac: Drop __int64 type check.  Insist that we
34137         found uint64_t and int64_t.
34138         * hwint.h (HOST_BITS_PER___INT64): Remove.
34139         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
34140         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
34141         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
34142         (HOST_WIDEST_FAST_INT): Remove __int64 case.
34143         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
34144         for dst_q_src_df_rms_cdt.
34145         * configure: Regenerate.
34146         * config.in: Likewise.
34147
34148 2014-05-26  Michael Tautschnig  <mt@debian.org>
34149
34150         PR target/61249
34151         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
34152         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
34153
34154 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
34155
34156         PR rtl-optimization/61278
34157         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
34158
34159 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
34160
34161         PR rtl-optimization/61220
34162         Part of PR rtl-optimization/61225
34163         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
34164         insn; skip split_edge for a block with only one successor.
34165
34166 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34167
34168         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
34169         for variables.
34170
34171 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34172
34173         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
34174         (update_vtable_references): New function.
34175         (function_and_variable_visibility): Rewrite also vtable initializers.
34176         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
34177
34178 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34179
34180         * ggc.h (ggc_grow): New function.
34181         * ggc-none.c (ggc_grow): New function.
34182         * ggc-page.c (ggc_grow): Likewise.
34183
34184 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34185
34186         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
34187         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
34188         comdat_can_be_unshared_p, cgraph_externally_visible_p,
34189         varpool_externally_visible_p, can_replace_by_local_alias,
34190         update_visibility_by_resolution_info, function_and_variable_visibility,
34191         pass_data_ipa_function_and_variable_visibility,
34192         make_pass_ipa_function_and_variable_visibility,
34193         whole_program_function_and_variable_visibility,
34194         pass_data_ipa_whole_program_visibility,
34195         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
34196         * cgraph.h (cgraph_local_node_p): Declare.
34197         * ipa-visibility.c: New file.
34198         * Makefile.in (OBJS): Add ipa-visiblity.o
34199
34200 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34201
34202         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
34203         that var decl is available.
34204
34205 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34206
34207         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
34208         symtab_node pointer.
34209         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
34210         (find_decls_types_r): Do not walk COMDAT_GROUP.
34211         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
34212         * varasm.c (make_decl_one_only): Use set_comdat_group;
34213         create node if needed.
34214         * ipa-inline-transform.c (save_inline_function_body): Update
34215         way we decl->symtab mapping.
34216         * symtab.c (symtab_hash, hash_node, eq_node
34217         symtab_insert_node_to_hashtable): Remove.
34218         (symtab_register_node): Update.
34219         (symtab_unregister_node): Update.
34220         (symtab_get_node): Reimplement as inline function.
34221         (symtab_add_to_same_comdat_group): Update.
34222         (symtab_dissolve_same_comdat_group_list): Update.
34223         (dump_symtab_base): Update.
34224         (verify_symtab_base): Update.
34225         (symtab_make_decl_local): Update.
34226         (fixup_same_cpp_alias_visibility): Update.
34227         (symtab_nonoverwritable_alias): Update.
34228         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
34229         * ipa.c (update_visibility_by_resolution_info): UPdate.
34230         * bb-reorder.c: Include cgraph.h
34231         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
34232         with comdat groups.
34233         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
34234         * cgraph.c (cgraph_get_create_node): Update.
34235         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
34236         and comdat_group_.
34237         (symtab_get_node): Make inline.
34238         (symtab_insert_node_to_hashtable): Remove.
34239         (symtab_can_be_discarded): Update.
34240         (decl_comdat_group): New function.
34241         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
34242         Update.
34243         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
34244         comdat group name.
34245         (read_comdat_group): New function.
34246         (input_node, input_varpool_node): Use it.
34247         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
34248         comdat groups.
34249         * mips.c (mips_start_unique_function): Likewise.
34250         (ix86_code_end): Likewise.
34251         (rs6000_code_end): Likweise.
34252         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
34253
34254 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34255
34256         * gengtype-state.c (fatal_reading_state): Bring offline.
34257         * optabs.c (widening_optab_handler): Bring offline.
34258         * optabs.h (widening_optab_handler): Likewise.
34259         * final.c (get_attr_length_1): Likewise.
34260
34261 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
34262
34263         * sched-int.h (sd_iterator_cond): Manually tail recurse.
34264
34265 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34266
34267         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
34268         (ppc440-compare): Include shift with dot.
34269         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
34270         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
34271         without dot.
34272         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
34273         without dot.
34274         (e6500_sfx2): Include it.
34275         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
34276         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
34277         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
34278         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
34279         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
34280         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
34281         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
34282         *lshiftrt_internal1le, *lshiftrt_internal1be,
34283         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
34284         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
34285         *rotldi3_internal10le, *rotldi3_internal10be,
34286         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
34287         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
34288         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
34289         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
34290         define_insns): Use type "shift" in the appropriate alternatives.
34291
34292 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34293
34294         * config/rs6000/rs6000.md (type): Add "logical".  Delete
34295         "fast_compare".
34296         (dot): Adjust comment.
34297         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
34298         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
34299         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
34300         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
34301         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
34302         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
34303         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
34304         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
34305
34306         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
34307         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
34308         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
34309         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
34310         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
34311         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
34312         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
34313         * config/rs6000/8540.md (ppc8540_su): Adjust.
34314         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
34315         cell-cmp-microcoded): Adjust.
34316         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
34317         * config/rs6000/e500mc.md (e500mc_su): Adjust.
34318         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
34319         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
34320         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
34321         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
34322         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
34323         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
34324         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
34325         Adjust.
34326         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
34327         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
34328         Adjust.  Adjust comment.
34329         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
34330         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
34331
34332 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34333
34334         * config/rs6000/rs6000.md (type): Add "add".
34335         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
34336         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
34337         define_insns): Use it.
34338         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
34339
34340         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
34341         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
34342         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
34343         * config/rs6000/601.md (ppc601-integer): Adjust.
34344         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
34345         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
34346         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
34347         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
34348         * config/rs6000/8540.md (ppc8540_su): Adjust.
34349         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
34350         cell-cmp-microcoded): Adjust.
34351         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
34352         * config/rs6000/e500mc.md (e500mc_su): Adjust.
34353         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
34354         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
34355         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
34356         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
34357         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
34358         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
34359         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
34360         Adjust.
34361         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
34362         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
34363         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
34364         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
34365
34366 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34367
34368         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
34369         "delayed_compare", "var_delayed_compare".
34370         (var_shift): New attribute.
34371         (cell_micro): Adjust.
34372         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
34373         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
34374         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
34375         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
34376         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
34377         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
34378         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
34379         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
34380         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
34381         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
34382         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
34383         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
34384         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
34385         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
34386         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
34387         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
34388         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
34389         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
34390         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
34391         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
34392         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
34393         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
34394         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
34395         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
34396         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
34397
34398         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
34399         * config/rs6000/440.md (ppc440-integer): Adjust.
34400         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
34401         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
34402         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
34403         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
34404         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
34405         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
34406         * config/rs6000/8540.md (ppc8540_su): Adjust.
34407         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
34408         cell-cmp-microcoded): Adjust.
34409         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
34410         * config/rs6000/e500mc.md (e500mc_su): Adjust.
34411         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
34412         e500mc64_delayed): Adjust.
34413         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
34414         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
34415         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
34416         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
34417         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
34418         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
34419         power6-delayed-compare, power6-var-delayed-compare): Adjust.
34420         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
34421         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
34422         Adjust comment.
34423         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
34424         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
34425
34426 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34427
34428         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
34429         (bits): New mode_attr.
34430         (idiv_ldiv): Delete mode_attr.
34431         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
34432         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
34433         rs6000_adjust_priority, is_nonpipeline_insn,
34434         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
34435
34436         * config/rs6000/40x.md (ppc403-idiv): Adjust.
34437         * config/rs6000/440.md (ppc440-idiv): Adjust.
34438         * config/rs6000/476.md (ppc476-idiv): Adjust.
34439         * config/rs6000/601.md (ppc601-idiv): Adjust.
34440         * config/rs6000/603.md (ppc603-idiv): Adjust.
34441         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
34442         ppc620-ldiv): Adjust.
34443         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
34444         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
34445         * config/rs6000/8540.md (ppc8540_divide): Adjust.
34446         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
34447         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
34448         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
34449         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
34450         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
34451         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
34452         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
34453         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
34454         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
34455         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
34456         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
34457         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
34458         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
34459         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
34460         * config/rs6000/titan.md (titan_fxu_div): Adjust.
34461
34462 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34463
34464         * config/rs6000/rs6000.md (type): Delete "insert_word",
34465         "insert_dword".  Add "insert".
34466         (size): Update comment.
34467         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
34468         insn_must_be_first_in_group): Adjust.
34469         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
34470         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
34471         *insvsi_internal6, insvdi_internal): Adjust.
34472
34473         * config/rs6000/40x.md (ppc403-integer): Adjust.
34474         * config/rs6000/440.md (ppc440-integer): Adjust.
34475         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
34476         * config/rs6000/601.md (ppc601-integer): Adjust.
34477         * config/rs6000/603.md (ppc603-integer): Adjust.
34478         * config/rs6000/6xx.md (ppc604-integer): Adjust.
34479         * config/rs6000/7450.md (ppc7450-integer): Adjust.
34480         * config/rs6000/7xx.md (ppc750-integer): Adjust.
34481         * config/rs6000/8540.md (ppc8540_su): Adjust.
34482         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
34483         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
34484         * config/rs6000/e500mc.md (e500mc_su): Adjust.
34485         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
34486         * config/rs6000/e5500.md (e5500_sfx): Adjust.
34487         * config/rs6000/e6500.md (e6500_sfx): Adjust.
34488         * config/rs6000/mpc.md (mpccore-integer): Adjust.
34489         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
34490         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
34491         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
34492         * config/rs6000/power7.md (power7-integer): Adjust.
34493         * config/rs6000/power8.md (power8-1cyc): Adjust.
34494         * config/rs6000/rs64.md (rs64a-integer): Adjust.
34495         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
34496
34497 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34498
34499         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
34500         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
34501         (size): New attribute.
34502         (dot): New attribute.
34503         (cell_micro): Adjust.
34504         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
34505         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
34506         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
34507         umuldi3_highpart): Adjust.
34508         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
34509         rs6000_adjust_priority, is_nonpipeline_insn,
34510         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
34511
34512         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
34513         ppc405-imul3): Adjust.
34514         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
34515         * config/rs6000/476.md (ppc476-imul): Adjust.
34516         * config/rs6000/601.md (ppc601-imul): Adjust.
34517         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
34518         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
34519         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
34520         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
34521         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
34522         Adjust.
34523         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
34524         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
34525         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
34526         cell-imul): Adjust.
34527         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
34528         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
34529         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
34530         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
34531         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
34532         * config/rs6000/mpc.md (mpccore-imul): Adjust.
34533         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
34534         power4-lmul, power4-imul, power4-imul3): Adjust.
34535         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
34536         power5-lmul, power5-imul, power5-imul3): Adjust.
34537         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
34538         power6-lmul, power6-imul, power6-imul3): Adjust.
34539         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
34540         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
34541
34542         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
34543         rs64a-lmul): Adjust.
34544         * config/rs6000/titan.md (titan_imul): Adjust.
34545
34546 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34547
34548         * config/rs6000/rs6000.md (type): Add new value "halfmul".
34549         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
34550         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
34551         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
34552         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
34553         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
34554         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
34555         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
34556         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
34557         * config/rs6000/titan.md: Delete nonsensical comment.
34558         (titan_imul): Add type imul3.
34559         (titan_mulhw): Remove type imul3; add type halfmul.
34560
34561 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
34562
34563         * config/rs6000/rs6000.md (type): Reorder, reformat.
34564
34565 2014-05-23  Martin Jambor  <mjambor@suse.cz>
34566
34567         PR tree-optimization/53787
34568         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
34569         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
34570         analysis_done, update all uses.
34571         * ipa-prop.c: Include domwalk.h
34572         (param_analysis_info): Removed.
34573         (param_aa_status): New type.
34574         (ipa_bb_info): Likewise.
34575         (func_body_info): Likewise.
34576         (ipa_get_bb_info): New function.
34577         (aa_overwalked): Likewise.
34578         (find_dominating_aa_status): Likewise.
34579         (parm_bb_aa_status_for_bb): Likewise.
34580         (parm_preserved_before_stmt_p): Changed to use new param AA info.
34581         (load_from_unmodified_param): Accept func_body_info as a parameter
34582         instead of parms_ainfo.
34583         (parm_ref_data_preserved_p): Changed to use new param AA info.
34584         (parm_ref_data_pass_through_p): Likewise.
34585         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
34586         (compute_complex_assign_jump_func): Changed to use new param AA info.
34587         (compute_complex_ancestor_jump_func): Likewise.
34588         (ipa_compute_jump_functions_for_edge): Likewise.
34589         (ipa_compute_jump_functions): Removed.
34590         (ipa_compute_jump_functions_for_bb): New function.
34591         (ipa_analyze_indirect_call_uses): Likewise, moved variable
34592         declarations down.
34593         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
34594         and info, moved variable declarations down.
34595         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
34596         node and info.
34597         (ipa_analyze_stmt_uses): Likewise.
34598         (ipa_analyze_params_uses): Removed.
34599         (ipa_analyze_params_uses_in_bb): New function.
34600         (ipa_analyze_controlled_uses): Likewise.
34601         (free_ipa_bb_info): Likewise.
34602         (analysis_dom_walker): New class.
34603         (ipa_analyze_node): Handle node-specific forbidden analysis,
34604         initialize and free func_body_info, use dominator walker.
34605         (ipcp_modif_dom_walker): New class.
34606         (ipcp_transform_function): Create and free func_body_info, use
34607         ipcp_modif_dom_walker, moved a lot of functionality there.
34608
34609 2014-05-23  Marek Polacek  <polacek@redhat.com>
34610             Jakub Jelinek  <jakub@redhat.com>
34611
34612         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
34613         * gcc.c (sanitize_spec_function): Likewise.
34614         * convert.c (convert_to_integer): Include "ubsan.h".  Add
34615         floating-point to integer instrumentation.
34616         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
34617         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
34618         SANITIZE_NONDEFAULT.
34619         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
34620         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
34621         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
34622         * ubsan.c: Include "realmpfr.h" and "dfp.h".
34623         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
34624         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
34625         float/double/long double.
34626         (ubsan_instrument_float_cast): New function.
34627         * ubsan.h (ubsan_instrument_float_cast): Declare.
34628
34629 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
34630
34631         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
34632         predicate.
34633         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
34634         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
34635         Adjust for tailcalling through registers.
34636         * config/aarch64/aarch64.h (enum reg_class): New caller save
34637         register class.
34638         (REG_CLASS_NAMES): Likewise.
34639         (REG_CLASS_CONTENTS): Likewise.
34640         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
34641         Allow tailcalling without decls.
34642
34643 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
34644
34645         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
34646         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
34647
34648         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
34649         gsi, and variables v_* to v*.
34650
34651 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
34652
34653         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
34654
34655 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
34656
34657         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
34658         * omp-low.c: Update accordingly.
34659
34660         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
34661         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
34662         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
34663         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
34664         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
34665         GF_OMP_TARGET_KIND_UPDATE.
34666
34667         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
34668         Explicitly enumerate the expected region types.
34669
34670 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
34671
34672         PR other/56955
34673         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
34674         documentation; the old documentation didn't clearly state the
34675         constraints on the contents of the pointed-to storage.
34676
34677 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34678
34679         Fix bootstrap error on ia64
34680         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
34681         Return default value.
34682
34683 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34684
34685         PR tree-optimization/54733
34686         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
34687         (CMPNOP): Define.
34688         (find_bswap_or_nop_load): New.
34689         (find_bswap_1): Renamed to ...
34690         (find_bswap_or_nop_1): This. Also add support for memory source.
34691         (find_bswap): Renamed to ...
34692         (find_bswap_or_nop): This. Also add support for memory source and
34693         detection of bitwise operations equivalent to load in target
34694         endianness.
34695         (execute_optimize_bswap): Likewise. Also move its leading comment back
34696         in place and split statement transformation into ...
34697         (bswap_replace): This.
34698
34699 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
34700
34701         PR rtl-optimization/61215
34702         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
34703         simplify_gen_subreg until final substitution.
34704
34705 2014-05-23  Alan Modra  <amodra@gmail.com>
34706
34707         PR target/61231
34708         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
34709         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
34710         Use "Y" constraint rather than "m".
34711
34712 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
34713
34714         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
34715         define.
34716         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
34717         New function declaration.
34718         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
34719         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
34720         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
34721         (aarch64_init_builtins) : Initialize builtins
34722         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
34723         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
34724         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
34725         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
34726         and __builtins_aarch64_set_fpsr.
34727         (aarch64_atomic_assign_expand_fenv): New function.
34728         * config/aarch64/aarch64.md (set_fpcr): New pattern.
34729         (get_fpcr) : Likewise.
34730         (set_fpsr) : Likewise.
34731         (get_fpsr) : Likewise.
34732         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
34733         and UNSPECV_SET_FPSR.
34734         * doc/extend.texi (AARCH64 Built-in Functions) : Document
34735         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
34736         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
34737
34738 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
34739
34740         PR rtl-optimization/60969
34741         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
34742         constraints.  Set up mem cost for NO_REGS case.
34743
34744 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
34745
34746         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
34747
34748 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
34749
34750         * config/darwin.c: Include "lto-section-names.h".
34751         (LTO_SEGMENT_NAME): Don't define.
34752         * config/i386/winnt.c: Include "lto-section-names.h".
34753         * lto-streamer.c: Include "lto-section-names.h".
34754         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
34755         * lto-wrapper.c: Include "lto-section-names.h".
34756         (LTO_SECTION_NAME_PREFIX): Don't define.
34757         * lto-section-names.h: New file.
34758         * cgraphunit.c: Include "lto-section-names.h".
34759
34760 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
34761
34762         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
34763
34764 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
34765
34766         PR target/61208
34767         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
34768
34769 2014-05-22  Nick Clifton  <nickc@redhat.com>
34770
34771         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
34772
34773 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
34774
34775         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
34776         -> (T)A transformation to integer types.
34777
34778 2014-05-22  Teresa Johnson  <tejohnson@google.com>
34779
34780         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
34781         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
34782         (gcov_rewrite): Use gcov_nonruntime_assert.
34783         (gcov_open): Ditto.
34784         (gcov_write_words): Ditto.
34785         (gcov_write_length): Ditto.
34786         (gcov_read_words): Use gcov_nonruntime_assert, and remove
34787         gcc_assert from IN_LIBGCOV code.
34788         (gcov_read_summary): Use gcov_error to flag profile corruption.
34789         (gcov_sync): Use gcov_nonruntime_assert.
34790         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
34791         (gcov_histo_index): Use gcov_nonruntime_assert.
34792         (static void gcov_histogram_merge): Ditto.
34793         (compute_working_sets): Ditto.
34794         * gcov-io.h (gcov_nonruntime_assert): Define.
34795         (gcov_error): Define for !IN_LIBGCOV
34796
34797 2014-05-22  Richard Biener  <rguenther@suse.de>
34798
34799         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
34800         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
34801         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
34802         and deallocation site.
34803         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
34804         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
34805         passing through the incoming points-to set.
34806         (handle_lhs_call): Use flags argument instead of recomputing it.
34807         (find_func_aliases_for_call): Call handle_lhs_call with proper
34808         call return flags.
34809
34810 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
34811
34812         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
34813         all padding bits in REAL_VALUE_TYPE are cleared.
34814
34815 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34816
34817         Cleanup and improve multipass_dfa_lookahead_guard
34818         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
34819         (core2i7_first_cycle_multipass_begin,)
34820         (core2i7_first_cycle_multipass_issue,)
34821         (core2i7_first_cycle_multipass_backtrack): Update signature.
34822         * config/ia64/ia64.c
34823         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
34824         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
34825         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
34826         hook definition.
34827         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
34828         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
34829         values.
34830         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
34831         return values.
34832         * doc/tm.texi: Regenerate.
34833         * doc/tm.texi.in
34834         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
34835         * haifa-sched.c (ready_try): Make signed to allow negative values.
34836         (rebug_ready_list_1): Update.
34837         (choose_ready): Simplify.
34838         (sched_extend_ready_list): Update.
34839
34840 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34841
34842         Remove IA64 speculation tweaking flags
34843         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
34844         speculation tuning flags.
34845         (msched-prefer-non-data-spec-insns,)
34846         (msched-prefer-non-control-spec-insns): Obsolete options.
34847         * haifa-sched.c (choose_ready): Remove handling of
34848         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
34849         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
34850         and PREFER_NON_DATA_SPEC.
34851         * sel-sched.c (process_spec_exprs): Remove handling of
34852         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
34853
34854 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34855
34856         Improve scheduling debug output
34857         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
34858         (advance_one_cycle): Update.
34859         (schedule_insn, queue_to_ready): Add debug printouts.
34860         (debug_ready_list_1): New static function.
34861         (debug_ready_list): Update.
34862         (max_issue): Add debug printouts.
34863         (dump_insn_stream): New static function.
34864         (schedule_block): Use it.  Also better indent printouts.
34865
34866 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34867
34868         Fix sched_insn debug counter
34869         * haifa-sched.c (schedule_insn): Update.
34870         (struct haifa_saved_data): Add nonscheduled_insns_begin.
34871         (save_backtrack_point, restore_backtrack_point): Update.
34872         (first_nonscheduled_insn): New static function.
34873         (queue_to_ready, choose_ready): Use it.
34874         (schedule_block): Init nonscheduled_insns_begin.
34875         (sched_emit_insn): Update.
34876
34877
34878 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
34879
34880         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
34881         to GENERAL_REGS.
34882         (aarch64_secondary_reload) : LikeWise.
34883         (aarch64_class_max_nregs) : Remove CORE_REGS.
34884         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
34885         (REG_CLASS_NAMES) : Likewise.
34886         (REG_CLASS_CONTENTS) : LikeWise.
34887         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
34888
34889 2014-05-21  Guozhi Wei  <carrot@google.com>
34890
34891         PR target/61202
34892         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
34893         constraint.
34894         (vqdmulhq_n_s16): Likewise.
34895
34896 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
34897
34898         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
34899
34900 2014-05-21  Marek Polacek  <polacek@redhat.com>
34901
34902         PR sanitizer/61272
34903         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
34904
34905 2014-05-21  Martin Jambor  <mjambor@suse.cz>
34906
34907         * doc/invoke.texi (Optimize Options): Document parameters
34908         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
34909         ipa-cp-array-index-hint-bonus.
34910
34911 2014-05-21  Mark Wielaard  <mjw@redhat.com>
34912
34913         PR debug/16063
34914         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
34915         version >= 3 or not strict DWARF.
34916         * langhooks.h (struct lang_hooks_for_types): Add
34917         enum_underlying_base_type.
34918         * langhooks.c (lhd_enum_underlying_base_type): New function.
34919         * gcc/langhooks.h (struct lang_hooks_for_types): Add
34920         enum_underlying_base_type.
34921         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
34922         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
34923         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
34924
34925 2014-05-21  Richard Biener  <rguenther@suse.de>
34926
34927         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
34928
34929 2014-05-21  John Marino  <gnugcc@marino.st>
34930
34931         * config.gcc (*-*-dragonfly*): New target.
34932         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
34933         * configure: Regenerate.
34934         * config/dragonfly-stdint.h: New.
34935         * config/dragonfly.h: New.
34936         * config/dragonfly.opt: New.
34937         * config/i386/dragonfly.h: New.
34938         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
34939
34940 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
34941
34942         * tree.def (VOID_CST): New.
34943         * tree-core.h (TI_VOID): New.
34944         * tree.h (void_node): New.
34945         * tree.c (tree_node_structure_for_code, tree_code_size)
34946         (iterative_hash_expr): Handle VOID_CST.
34947         (build_common_tree_nodes): Initialize void_node.
34948
34949 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
34950
34951         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
34952         functions.
34953         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
34954
34955         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
34956         more places.
34957
34958         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
34959         flag_reorder_blocks_and_partition.
34960         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
34961
34962 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
34963
34964         PR target/54236
34965         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
34966         constraints.
34967         (*addc_r_t): Add new insn_and_split.
34968
34969 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
34970
34971         PR middle-end/61252
34972         * omp-low.c (handle_simd_reference): New function.
34973         (lower_rec_input_clauses): Use it.  Defer adding reference
34974         initialization even for reduction without placeholder if in simd,
34975         handle it properly later on.
34976
34977 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
34978
34979         PR tree-optimization/60899
34980         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
34981         assume all static symbols will have definition wile parsing and
34982         check the do have definition later in compilation; check that
34983         variable referring symbol will be output before concluding that
34984         reference is safe; be conservative for referring local statics;
34985         be more precise about when comdat is output in other partition.
34986
34987 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
34988
34989         PR bootstrap/60984
34990         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
34991         parameter.
34992         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
34993         (ipa_inline): Loop inline_to_all_callers until no more aliases
34994         are removed.
34995
34996 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
34997
34998         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
34999         set writeonly flag only for vars actually written to.
35000
35001 2014-05-20  Dehao Chen  <dehao@google.com>
35002
35003         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
35004         and callee count to get clone count.
35005         * tree-inline.c (expand_call_inline): Use callee count instead of bb
35006         count in copy_body.
35007
35008 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
35009
35010         PR rtl-optimization/61243
35011         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
35012
35013 2014-05-20  Xinliang David Li  <davidxl@google.com>
35014
35015         * cgraphunit.c (walk_polymorphic_call_targets): Add
35016         dbgcnt and fopt-info support.
35017         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
35018         * ipa-devirt.c (ipa_devirt): Ditto.
35019         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
35020         * ipa.c (walk_polymorphic_call_targets): Ditto.
35021         * gimple-fold.c (fold_gimple_assign): Ditto.
35022         (gimple_fold_call): Ditto.
35023         * dbgcnt.def: New counter.
35024
35025 2014-05-20  DJ Delorie  <dj@redhat.com>
35026
35027         * config/msp430/msp430.md (split): Don't allow subregs when
35028         splitting SImode adds.
35029         (andneghi): Fix subtraction logic.
35030         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
35031
35032 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
35033
35034         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
35035         symbols.
35036         * except.c (switch_to_exception_section, resolve_unique_section,
35037         get_named_text_section, default_function_rodata_section,
35038         align_variable, get_block_for_decl, default_section_type_flags):
35039         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
35040         * symtab.c (symtab_add_to_same_comdat_group,
35041         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
35042         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
35043         Likewise.
35044         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
35045         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
35046         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
35047         (c6x_function_in_section_p): Likewise.
35048         * config/darwin.c (machopic_select_section): Likewise.
35049         * config/arm/arm.c (arm_function_in_section_p): Likewise.
35050         * config/mips/mips.c (mips_function_rodata_section): Likewise.
35051         * config/mep/mep.c (mep_select_section): LIkewise.
35052         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
35053
35054 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
35055
35056         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
35057         EH region of calls to pure functions that can throw an exception.
35058         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
35059         (copy_reference_ops_from_call): Also copy the EH region of the call if
35060         it can throw an exception.
35061
35062 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35063
35064         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
35065         nested VEC_SELECTs that are inverses of each other.
35066
35067 2014-05-20  Richard Biener  <rguenther@suse.de>
35068
35069         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
35070         (extract_and_process_scc_for_name): not here.
35071         (cond_dom_walker::before_dom_children): Only process
35072         stmts that end the BB in interesting ways.
35073         (run_scc_vn): Mark param uses as visited.
35074
35075 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35076
35077         * config/arm/arm.md (arith_shiftsi): Do not predicate for
35078         arm_restrict_it.
35079
35080 2014-05-20  Nick Clifton  <nickc@redhat.com>
35081
35082         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
35083         (msp430_gimplify_va_arg_expr): New function.
35084         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
35085
35086         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
35087         operand 0 in order to prevent confusion about the number of
35088         registers involved.
35089
35090 2014-05-20  Richard Biener  <rguenther@suse.de>
35091
35092         PR tree-optimization/61221
35093         * tree-ssa-pre.c (el_to_update): Remove.
35094         (eliminate_dom_walker::before_dom_children): Handle released
35095         VDEFs by value-numbering them to the associated VUSE.  Update
35096         stmt immediately for substituted call address.
35097         (eliminate): Remove delayed stmt updating code.
35098         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
35099         possibly late re-numbered vuses.
35100         (vn_reference_lookup_2): Adjust.
35101         (vn_reference_lookup_pieces): Likewise.
35102         (vn_reference_lookup): Likewise.
35103
35104 2014-05-20  Richard Biener  <rguenther@suse.de>
35105
35106         * config.gcc: Remove need_64bit_hwint.
35107         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
35108         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
35109         it to be true.
35110         * config.in: Regenerate.
35111         * configure: Likewise.
35112
35113 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
35114
35115         * doc/extend.texi: Create Label Attributes section,
35116         move all label attributes into it and reference it.
35117
35118 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
35119
35120         * arm.c (thumb1_reorg): When scanning backwards skip anything
35121         that's not a proper insn.
35122
35123 2014-05-19  Richard Biener  <rguenther@suse.de>
35124
35125         PR tree-optimization/61221
35126         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
35127         Do nothing for unreachable blocks.
35128         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
35129         Improve unreachability detection.
35130
35131 2014-05-19  Richard Biener  <rguenther@suse.de>
35132
35133         PR tree-optimization/61209
35134         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
35135
35136 2014-05-19  Nick Clifton  <nickc@redhat.com>
35137
35138         * except.c (init_eh): Fix computation of builtin setjmp buffer
35139         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
35140
35141 2014-05-19  Richard Biener  <rguenther@suse.de>
35142
35143         PR tree-optimization/61184
35144         * tree-vrp.c (is_negative_overflow_infinity): Use
35145         TREE_OVERFLOW_P and do that check first.
35146         (is_positive_overflow_infinity): Likewise.
35147         (is_overflow_infinity): Likewise.
35148         (vrp_operand_equal_p): Properly treat operands with
35149         differing overflow as not equal.
35150
35151 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
35152
35153         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
35154         shift simplification where it was intended.
35155
35156 2014-05-19  Christian Bruel  <christian.bruel@st.com>
35157
35158         PR target/61195
35159         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
35160
35161 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
35162
35163         PR target/61084
35164         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
35165         than wide_int.
35166
35167 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
35168
35169         * reg-notes.def (CROSSING_JUMP): Likewise.
35170         * rtl.h (rtx_def): Update comment for jump flag.
35171         (CROSSING_JUMP_P): Define.
35172         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
35173         of a REG_CROSSING_JUMP note.
35174         * cfghooks.c (tidy_fallthru_edges): Likewise.
35175         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
35176         * emit-rtl.c (try_split): Likewise.
35177         * haifa-sched.c (sched_create_recovery_edges): Likewise.
35178         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
35179         * jump.c (redirect_jump_2): Likewise.
35180         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
35181         (relax_delay_slots): Likewise.
35182         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
35183         (bbit_di): Likewise.
35184         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
35185         * config/sh/sh.md (jump_compact): Likewise.
35186         * bb-reorder.c (rotate_loop): Likewise.
35187         (pass_duplicate_computed_gotos::execute): Likewise.
35188         (add_reg_crossing_jump_notes): Rename to...
35189         (update_crossing_jump_flags): ...this.
35190         (pass_partition_blocks::execute): Update accordingly.
35191
35192 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
35193
35194         * tree.h: Remove extraneous template <>.
35195
35196 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
35197
35198         * ipa.c (symtab_remove_unreachable_nodes): Remove
35199         symbol from comdat group if its body was eliminated.
35200         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
35201         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
35202         (symtab_unregister_node): ... this one.
35203         (verify_symtab_base): More strict checking of comdats.
35204         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
35205
35206 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
35207
35208         * tree-pass.h (make_pass_ipa_comdats): New pass.
35209         * timevar.def (TV_IPA_COMDATS): New timevar.
35210         * passes.def (pass_ipa_comdats): Add.
35211         * Makefile.in (OBJS): Add ipa-comdats.o
35212         * ipa-comdats.c: New file.
35213
35214 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
35215
35216         * ipa.c (update_visibility_by_resolution_info): New function.
35217         (function_and_variable_visibility): Use it.
35218
35219 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
35220
35221         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
35222         New functions.
35223         (FOR_EACH_DEFINED_SYMBOL): New macro.
35224         (varpool_first_static_initializer, varpool_next_static_initializer,
35225         varpool_first_defined_variable, varpool_next_defined_variable):
35226         Fix comments.
35227         (symtab_in_same_comdat_p): Correctly deal with inline functions.
35228
35229 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
35230
35231         * ggc-page.c (ggc_handle_finalizers): Add comment.
35232
35233 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
35234
35235         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
35236         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
35237         (ggc_internal_cleared_alloc): Likewise.
35238         * ggc-page.c (finalizer): New class.
35239         (vec_finalizer): Likewise.
35240         (globals::finalizers): New member.
35241         (globals::vec_finalizers): Likewise.
35242         (ggc_internal_alloc): Record the finalizer if any for the block being
35243         allocated.
35244         (ggc_handle_finalizers): New function.
35245         (ggc_collect): Call ggc_handle_finalizers.
35246         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
35247         finalizer.
35248         (ggc_internal_cleared_alloc): Likewise.
35249         (finalize): New function.
35250         (need_finalization_p): Likewise.
35251         (ggc_alloc): Install the type's destructor as the finalizer if it
35252         might do something.
35253         (ggc_cleared_alloc): Likewise.
35254         (ggc_vec_alloc): Likewise.
35255         (ggc_cleared_vec_alloc): Likewise.
35256
35257 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
35258
35259         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
35260
35261 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
35262
35263         * alias.c (record_alias_subset): Adjust.
35264         * bitmap.c (bitmap_element_allocate): Likewise.
35265         (bitmap_gc_alloc_stat): Likewise.
35266         * cfg.c (init_flow): Likewise.
35267         (alloc_block): Likewise.
35268         (unchecked_make_edge): Likewise.
35269         * cfgloop.c (alloc_loop): Likewise.
35270         (flow_loops_find): Likewise.
35271         (rescan_loop_exit): Likewise.
35272         * cfgrtl.c (init_rtl_bb_info): Likewise.
35273         * cgraph.c (insert_new_cgraph_node_version): Likewise.
35274         (cgraph_allocate_node): Likewise.
35275         (cgraph_create_edge_1): Likewise.
35276         (cgraph_allocate_init_indirect_info): Likewise.
35277         * cgraphclones.c (cgraph_clone_edge): Likewise.
35278         * cgraphunit.c (add_asm_node): Likewise.
35279         (init_lowered_empty_function): Likewise.
35280         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
35281         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
35282         (alpha_use_linkage): Likewise.
35283         * config/arc/arc.c (arc_init_machine_status): Likewise.
35284         * config/arm/arm.c (arm_init_machine_status): Likewise.
35285         * config/avr/avr.c (avr_init_machine_status): Likewise.
35286         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
35287         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
35288         * config/cris/cris.c (cris_init_machine_status): Likewise.
35289         * config/darwin.c (machopic_indirection_name): Likewise.
35290         (darwin_build_constant_cfstring): Likewise.
35291         (darwin_enter_string_into_cfstring_table): Likewise.
35292         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
35293         * config/frv/frv.c (frv_init_machine_status): Likewise.
35294         * config/i386/i386.c (get_dllimport_decl): Likewise.
35295         (ix86_init_machine_status): Likewise.
35296         (assign_386_stack_local): Likewise.
35297         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
35298         (i386_pe_maybe_record_exported_symbol): Likewise.
35299         (i386_pe_record_stub): Likewise.
35300         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
35301         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
35302         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
35303         (m32c_note_pragma_address): Likewise.
35304         * config/mep/mep.c (mep_init_machine_status): Likewise.
35305         (mep_note_pragma_flag): Likewise.
35306         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
35307         (mips16_local_alias): Likewise.
35308         (mips_init_machine_status): Likewise.
35309         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
35310         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
35311         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
35312         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
35313         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
35314         * config/pa/pa.c (pa_init_machine_status): Likewise.
35315         (pa_get_deferred_plabel): Likewise.
35316         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
35317         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
35318         (rs6000_init_machine_status): Likewise.
35319         (output_toc): Likewise.
35320         * config/s390/s390.c (s390_init_machine_status): Likewise.
35321         * config/score/score.c (score_output_external): Likewise.
35322         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
35323         * config/spu/spu.c (spu_init_machine_status): Likewise.
35324         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
35325         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
35326         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
35327         * coverage.c (coverage_end_function): Likewise.
35328         * dbxout.c (dbxout_init): Likewise.
35329         * doc/gty.texi: Don't mention variable_size attribute.
35330         * dwarf2cfi.c (new_cfi): Adjust.
35331         (new_cfi_row): Likewise.
35332         (copy_cfi_row): Likewise.
35333         (create_cie_data): Likewise.
35334         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
35335         (new_loc_descr): Likewise.
35336         (find_AT_string_in_table): Likewise.
35337         (add_addr_table_entry): Likewise.
35338         (new_die): Likewise.
35339         (add_var_loc_to_decl): Likewise.
35340         (clone_die): Likewise.
35341         (clone_as_declaration): Likewise.
35342         (break_out_comdat_types): Likewise.
35343         (new_loc_list): Likewise.
35344         (add_loc_descr_to_each): Likewise.
35345         (add_location_or_const_value_attribute): Likewise.
35346         (add_linkage_name): Likewise.
35347         (lookup_filename): Likewise.
35348         (dwarf2out_var_location): Likewise.
35349         (new_line_info_table): Likewise.
35350         (dwarf2out_init): Likewise.
35351         (mem_loc_descriptor): Likewise.
35352         (loc_descriptor): Likewise.
35353         (add_const_value_attribute): Likewise.
35354         (tree_add_const_value_attribute): Likewise.
35355         (comp_dir_string): Likewise.
35356         (dwarf2out_vms_debug_main_pointer): Likewise.
35357         (string_cst_pool_decl): Likewise.
35358         * emit-rtl.c (set_mem_attrs): Likewise.
35359         (get_reg_attrs): Likewise.
35360         (start_sequence): Likewise.
35361         (init_emit): Likewise.
35362         (init_emit_regs): Likewise.
35363         * except.c (init_eh_for_function): Likewise.
35364         (gen_eh_region): Likewise.
35365         (gen_eh_region_catch): Likewise.
35366         (gen_eh_landing_pad): Likewise.
35367         (add_call_site): Likewise.
35368         * function.c (add_frame_space): Likewise.
35369         (insert_temp_slot_address): Likewise.
35370         (assign_stack_temp_for_type): Likewise.
35371         (get_hard_reg_initial_val): Likewise.
35372         (allocate_struct_function): Likewise.
35373         (prepare_function_start): Likewise.
35374         (types_used_by_var_decl_insert): Likewise.
35375         * gengtype.c (variable_size_p): Remove function.
35376         (enum alloc_quantity): Remove enum.
35377         (write_typed_alloc_def): Remove function.
35378         (write_typed_struct_alloc_def): Likewise.
35379         (write_typed_typedef_alloc_def): Likewise.
35380         (write_typed_alloc_defns): Likewise.
35381         (main): Adjust.
35382         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
35383         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
35384         * ggc.h (ggc_alloc): new function.
35385         (ggc_cleared_alloc): Likewise.
35386         (ggc_vec_alloc): Template on type of vector element, and remove
35387         element size argument.
35388         (ggc_cleared_vec_alloc): Likewise.
35389         * gimple.c (gimple_build_omp_for): Adjust.
35390         (gimple_copy): Likewise.
35391         * ipa-cp.c (get_replacement_map): Likewise.
35392         (find_aggregate_values_for_callers_subset): Likewise.
35393         (known_aggs_to_agg_replacement_list): Likewise.
35394         * ipa-devirt.c (get_odr_type): Likewise.
35395         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
35396         (read_agg_replacement_chain): Likewise.
35397         * loop-iv.c (get_simple_loop_desc): Likewise.
35398         * lto-cgraph.c (input_node_opt_summary): Likewise.
35399         * lto-section-in.c (lto_new_in_decl_state): Likewise.
35400         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
35401         (input_eh_region): Likewise.
35402         (input_eh_lp): Likewise.
35403         (input_cfg): Likewise.
35404         * optabs.c (set_optab_libfunc): Likewise.
35405         (init_tree_optimization_optabs): Likewise.
35406         (set_conv_libfunc): Likewise.
35407         * passes.c (do_per_function_toporder): Likewise.
35408         * rtl.h: Don't use variable_size gty attribute.
35409         * sese.c (if_region_set_false_region): Adjust.
35410         * stringpool.c (gt_pch_save_stringpool): Likewise.
35411         * target-globals.c (save_target_globals): Likewise.
35412         * toplev.c (general_init): Likewise.
35413         * trans-mem.c (record_tm_replacement): Likewise.
35414         (split_bb_make_tm_edge): Likewise.
35415         * tree-cfg.c (move_sese_region_to_fn): Likewise.
35416         * tree-data-ref.h (lambda_vector_new): Likewise.
35417         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
35418         * tree-iterator.c (tsi_link_before): Likewise.
35419         (tsi_link_after): Likewise.
35420         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
35421         * tree-ssa-loop-niter.c (record_estimate): Likewise.
35422         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
35423         * tree-ssa-operands.h: Don't use variable_size gty attribute.
35424         * tree-ssa.c (init_tree_ssa): Adjust.
35425         * tree-ssanames.c (set_range_info): Likewise.
35426         (get_ptr_info): Likewise.
35427         (duplicate_ssa_name_ptr_info): Likewise.
35428         (duplicate_ssa_name_range_info): Likewise.
35429         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
35430         (unpack_ts_fixed_cst_value_fields): Likewise.
35431         * tree.c (build_fixed): Likewise.
35432         (build_real): Likewise.
35433         (build_string): Likewise.
35434         (decl_priority_info): Likewise.
35435         (decl_debug_expr_insert): Likewise.
35436         (decl_value_expr_insert): Likewise.
35437         (decl_debug_args_insert): Likewise.
35438         (type_hash_add): Likewise.
35439         (build_omp_clause): Likewise.
35440         * ubsan.c (decl_for_type_insert): Likewise.
35441         * varasm.c (get_unnamed_section): Likewise.
35442         (get_noswitch_section): Likewise.
35443         (get_section): Likewise.
35444         (get_block_for_section): Likewise.
35445         (create_block_symbol): Likewise.
35446         (build_constant_desc): Likewise.
35447         (create_constant_pool): Likewise.
35448         (force_const_mem): Likewise.
35449         (record_tm_clone_pair): Likewise.
35450         * varpool.c (varpool_create_empty_node): Likewise.
35451
35452 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
35453
35454         * dwarf2out.c (tree_add_const_value_attribute): Call
35455         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
35456         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
35457         instead of ggc_internal_<x>alloc_stat.
35458         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
35459         (ggc_realloc): Likewise.
35460         * ggc-none.c (ggc_internal_alloc): Likewise.
35461         (ggc_internal_cleared_alloc): Likewise.
35462         * ggc-page.c: Likewise.
35463         * ggc.h (ggc_internal_alloc_stat): Likewise.
35464         (ggc_internal_alloc): Remove macro.
35465         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
35466         (ggc_internal_cleared_alloc): Remove macro.
35467         (GGC_RESIZEVEC): Adjust.
35468         (ggc_resizevar): Remove macro.
35469         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
35470         (ggc_internal_cleared_vec_alloc_stat): Likewise.
35471         (ggc_internal_vec_cleared_alloc): Remove macro.
35472         (ggc_alloc_atomic_stat): Drop _stat suffix.
35473         (ggc_alloc_atomic): Remove macro.
35474         (ggc_alloc_cleared_atomic): Remove macro.
35475         (ggc_alloc_string_stat): Drop _stat suffix.
35476         (ggc_alloc_string): Remove macro.
35477         (ggc_alloc_rtx_def_stat): Adjust.
35478         (ggc_alloc_tree_node_stat): Likewise.
35479         (ggc_alloc_cleared_tree_node_stat): Likewise.
35480         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
35481         (ggc_alloc_cleared_simd_clone_stat): Likewise.
35482         * gimple.c (gimple_build_omp_for): Likewise.
35483         (gimple_copy): Likewise.
35484         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
35485         * toplev.c (realloc_for_line_map): Adjust.
35486         * tree-data-ref.h (lambda_vector_new): Likewise.
35487         * tree-phinodes.c (allocate_phi_node): Likewise.
35488         * tree.c (grow_tree_vec_stat): Likewise.
35489         * vec.h (va_gc::reserve): Adjust.
35490
35491 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
35492
35493         * config/microblaze/microblaze.c (break_handler): New Declaration.
35494         (microblaze_break_function_p,microblaze_is_break_handler): New.
35495         (compute_frame_size): Use microblaze_break_function_p.
35496         Add the test of break_handler.
35497         (microblaze_function_prologue) : Add the test of variable
35498         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
35499         (microblaze_function_epilogue) : Add the test of break_handler.
35500         (microblaze_globalize_label) : Add the test of break_handler.
35501         Check the name by BREAK_HANDLER_NAME.
35502
35503         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
35504
35505         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
35506         microblaze_is_break_handler test.
35507         (call_internal1,call_value_intern): Use microblaze_break_function_p.
35508         Use SYMBOL_REF_DECL.
35509
35510         * config/microblaze/microblaze-protos.h
35511         (microblaze_break_function_p,microblaze_is_break_handler):
35512         New Declaration.
35513
35514         * doc/extend.texi (MicroBlaze break_handler Functions): Document
35515         new MicroBlaze break_handler functions.
35516
35517 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
35518
35519         * doc/extend.texi (Size of an asm): Move node text according
35520         to its @menu entry position.
35521
35522 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
35523
35524         PR tree-optimization/61140
35525         PR tree-optimization/61150
35526         PR tree-optimization/61197
35527         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
35528
35529 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
35530
35531         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
35532
35533 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
35534
35535         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
35536         __SIZEOF_INT128__ is defined.
35537
35538 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
35539
35540         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
35541         (rs6000_delegitimize_address): Use it.
35542
35543 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
35544
35545         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
35546         inplace argument.  Store the new address in the original MEM when true.
35547         * emit-rtl.c (change_address_1): Likewise.
35548         (adjust_address_1, adjust_automodify_address_1, offset_address):
35549         Update accordingly.
35550         * rtl.h (plus_constant): Add an inplace argument.
35551         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
35552         when true.  Avoid generating (plus X (const_int 0)).
35553         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
35554         in-place.  Pass true to plus_constant.
35555         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
35556
35557 2014-05-16  Dehao Chen  <dehao@google.com>
35558
35559         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
35560
35561 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
35562
35563         PR target/54089
35564         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
35565         patterns.
35566         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
35567
35568 2014-05-16  Dehao Chen  <dehao@google.com>
35569
35570         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
35571         optimize_function_for_size_p.
35572         * regs.h (REG_FREQ_FROM_BB): Likewise.
35573
35574 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
35575
35576         PR target/51244
35577         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
35578         negt_reg_operand cases.
35579         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
35580         predicate.
35581         * config/sh/predicates.md (cbranch_treg_value): Simplify.
35582
35583 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
35584
35585         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
35586         target variants.
35587
35588 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
35589
35590         Revert:
35591         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
35592
35593         * tree-cfg.c (dump_function_to_file): Dump the return type of
35594         functions, in a line to itself before the function body, mimicking
35595         the layout of a C function.
35596
35597 2014-05-16  Dehao Chen  <dehao@google.com>
35598
35599         * cfghooks.c (make_forwarder_block): Use direct computation to
35600         get fall-through edge's count and frequency.
35601
35602 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
35603
35604         * config/arc/arc.c (arc_init): Fix typo in error message.
35605         * config/i386/i386.c (ix86_expand_builtin): Likewise.
35606         (split_stack_prologue_scratch_regno): Likewise.
35607         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
35608         word from error message.
35609
35610 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
35611
35612         * ira-costs.c: Fix typo in comment.
35613
35614 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
35615
35616         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
35617
35618 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
35619
35620         * varpool.c (dump_varpool_node): Dump write-only flag.
35621         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
35622         write-only flag.
35623         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
35624         write-only variables.
35625         * ipa.c (process_references): New function.
35626         (set_readonly_bit): New function.
35627         (set_writeonly_bit): New function.
35628         (clear_addressable_bit): New function.
35629         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
35630         fix handling of aliases.
35631         * cgraph.h (struct varpool_node): Add writeonly flag.
35632
35633 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
35634
35635         PR rtl-optimization/60969
35636         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
35637         Calculate costs for this case.
35638
35639 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
35640
35641         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
35642         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
35643
35644 2014-05-16  Richard Biener  <rguenther@suse.de>
35645
35646         PR tree-optimization/61194
35647         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
35648         bool patterns ending in a COND_EXPR.
35649
35650 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35651
35652         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
35653
35654 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35655
35656         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
35657         where we were unable to cost an RTX.
35658
35659 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35660
35661         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
35662         HIGH, LO_SUM.
35663
35664 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35665             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35666
35667         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
35668
35669 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35670             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35671
35672         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
35673         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
35674
35675 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35676             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35677
35678         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
35679         operators.
35680
35681 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35682             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35683
35684         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
35685         DIV/MOD.
35686
35687 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35688             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35689
35690         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
35691         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
35692
35693 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35694             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35695
35696         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
35697         rotates and shifts.
35698
35699 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35700             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35701
35702         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
35703         ZERO_EXTEND and SIGN_EXTEND better.
35704
35705 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35706             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35707
35708         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
35709         logical operations.
35710
35711 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35712             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35713
35714         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
35715         costs when costing loads and stores to memory.
35716
35717 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35718             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
35719
35720         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
35721         for SET RTX.
35722
35723 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35724
35725         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
35726
35727 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35728             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35729
35730         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
35731         to...
35732         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
35733         well formed.
35734         (aarch64_rtx_mult_cost): New.
35735         (aarch64_rtx_costs): Use it, refactor as appropriate.
35736
35737 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35738             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
35739
35740         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
35741         emit instructions, return number of instructions which would
35742         be emitted.
35743         (aarch64_add_constant): Update call to aarch64_build_constant.
35744         (aarch64_output_mi_thunk): Likewise.
35745         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
35746         a CONST_DOUBLE.
35747
35748 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35749
35750         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
35751         (TARGET_RTX_COSTS): Call it.
35752
35753 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35754
35755         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
35756         (cortexa57_vector_cost): Likewise.
35757         (cortexa57_tunings): Use them.
35758
35759 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
35760
35761         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
35762         (cpu_addrcost_table): Use it.
35763         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
35764         (aarch64_address_cost): Rewrite using aarch64_classify_address,
35765         move it.
35766
35767 2014-05-16  Richard Biener  <rguenther@suse.de>
35768
35769         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
35770         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
35771         (visit_phi): Ignore edges marked as not executable.
35772         (class cond_dom_walker): New.
35773         (cond_dom_walker::before_dom_children): Value-number
35774         control statements and mark successor edges as not
35775         executable if possible.
35776         (run_scc_vn): First walk all control statements in
35777         dominator order, marking edges as not executable.
35778         * tree-inline.c (copy_edges_for_bb): Be not confused
35779         about random edge flags.
35780
35781 2014-05-16  Richard Biener  <rguenther@suse.de>
35782
35783         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
35784
35785 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
35786
35787         PR target/61193
35788         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
35789         (__TM_simple_begin): Use it.
35790         (__TM_begin): Likewise.
35791
35792 2014-05-15  Martin Jambor  <mjambor@suse.cz>
35793
35794         PR ipa/61085
35795         * ipa-prop.c (update_indirect_edges_after_inlining): Check
35796         type_preserved flag when the indirect edge is polymorphic.
35797
35798 2014-05-15  Martin Jambor  <mjambor@suse.cz>
35799
35800         PR tree-optimization/61090
35801         * tree-sra.c (sra_modify_expr): Pass the current gsi to
35802         build_ref_for_model.
35803
35804 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35805
35806         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
35807         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
35808
35809 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
35810
35811         PR tree-optimization/61158
35812         * fold-const.c (fold_binary_loc): If X is zero-extended and
35813         shiftc >= prec, make sure zerobits is all ones instead of
35814         invoking undefined behavior.
35815
35816 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
35817
35818         * regcprop.h: New file.
35819         * regcprop.c (skip_debug_insn_p): New decl.
35820         (replace_oldest_value_reg): Check skip_debug_insn_p.
35821         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
35822         * shrink-wrap.c: Include regcprop.h.
35823         (prepare_shrink_wrap): Call
35824         copyprop_hardreg_forward_bb_without_debug_insn.
35825
35826 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
35827
35828         * shrink-wrap.h: Update comment.
35829         * shrink-wrap.c: Update comment.
35830         (next_block_for_reg): Rename to live_edge_for_reg.
35831         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
35832         (move_insn_for_shrink_wrap): Split live_edge.
35833         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
35834
35835 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
35836
35837         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
35838         Delete.
35839         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
35840         * config/sparc/sparc.md (fptype_ut699): New attribute.
35841         (in_branch_delay): Return false if -mfix-ut699 is specified and
35842         fptype_ut699 is set to single.
35843         (truncdfsf2): Add fptype_ut699 attribute.
35844         (fix_truncdfsi2): Likewise.
35845         (floatsisf2): Change fptype attribute.
35846         (fix_truncsfsi2): Likewise.
35847         (negtf2_notv9): Delete.
35848         (negtf2_v9): Likewise.
35849         (negtf2_hq): New instruction.
35850         (negtf2): New instruction and splitter.
35851         (negdf2_notv9): Rewrite.
35852         (abstf2_notv9): Delete.
35853         (abstf2_hq_v9): Likewise.
35854         (abstf2_v9): Likewise.
35855         (abstf2_hq): New instruction.
35856         (abstf2): New instruction and splitter.
35857         (absdf2_notv9): Rewrite.
35858
35859 2014-05-14  Cary Coutant  <ccoutant@google.com>
35860
35861         PR debug/61013
35862         * opts.c (common_handle_option): Don't special-case "-g".
35863         (set_debug_level): Default to at least level 2 with "-g".
35864
35865 2014-05-14  DJ Delorie  <dj@redhat.com>
35866
35867         * config/msp430/msp430.c (msp430_builtin): Add
35868         MSP430_BUILTIN_DELAY_CYCLES.
35869         (msp430_init_builtins): Register void __delay_cycles(long long).
35870         (msp430_builtin_decl): Add it.
35871         (cg_magic_constant): New.
35872         (msp430_expand_delay_cycles): New.
35873         (msp430_expand_builtin): Call it.
35874         (msp430_print_operand_raw): Change integer printing from "int" to
35875         HOST_WIDE_INT.
35876         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
35877         (delay_cycles_start): New.
35878         (delay_cycles_end): New.
35879         (delay_cycles_32): New.
35880         (delay_cycles_32x): New.
35881         (delay_cycles_16): New.
35882         (delay_cycles_16x): New.
35883         (delay_cycles_2): New.
35884         (delay_cycles_1): New.
35885         * doc/extend.texi: Document __delay_cycles().
35886
35887 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
35888
35889         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
35890         length attribute computation.
35891
35892 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
35893
35894         PR debug/61188
35895         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
35896
35897 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
35898
35899         PR target/61084
35900         * config/sparc/sparc.md: Fix types of low and high in DI constant
35901         splitter.  Use gen_int_mode in some other splitters.
35902
35903 2014-05-14  Martin Jambor  <mjambor@suse.cz>
35904
35905         PR ipa/60897
35906         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
35907
35908 2014-05-14  James Norris  <jnorris@codesourcery.com>
35909
35910         * omp-low.c (expand_parallel_call): Remove shadow variable.
35911         (expand_omp_taskreg): Likewise.
35912
35913 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
35914
35915         * common/config/i386/i386-common.c
35916         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
35917         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
35918         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
35919         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
35920         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
35921         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
35922         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
35923         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
35924         xsavecintrin.h, xsavesintrin.h.
35925         (x86_64-*-*): Ditto.
35926         * config/i386/clflushoptintrin.h: New.
35927         * config/i386/xsavecintrin.h: Ditto.
35928         * config/i386/xsavesintrin.h: Ditto.
35929         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
35930         (bit_XSAVES): Ditto.
35931         (bit_XSAVES): Ditto.
35932         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
35933         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
35934         -mno-clflushopt.
35935         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
35936         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
35937         OPTION_MASK_ISA_XSAVES.
35938         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
35939         -mxsavec, -mxsaves.
35940         (PTA_CLFLUSHOPT) Define.
35941         (PTA_XSAVEC): Ditto.
35942         (PTA_XSAVES): Ditto.
35943         (ix86_option_override_internal): Handle new options.
35944         (ix86_valid_target_attribute_inner_p): Ditto.
35945         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
35946         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
35947         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
35948         (bdesc_special_args): Add __builtin_ia32_xsaves,
35949         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
35950         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
35951         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
35952         (ix86_expand_builtin): Handle new builtins.
35953         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
35954         (TARGET_CLFLUSHOPT_P): Ditto.
35955         (TARGET_XSAVEC): Ditto.
35956         (TARGET_XSAVEC_P): Ditto.
35957         (TARGET_XSAVES): Ditto.
35958         (TARGET_XSAVES_P): Ditto.
35959         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
35960         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
35961         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
35962         (ANY_XRSTOR): New.
35963         (ANY_XRSTOR64): Ditto.
35964         (xrstor): Ditto.
35965         (xrstor): Change into <xrstor>.
35966         (xrstor_rex64): Change into <xrstor>_rex64.
35967         (xrstor64): Change into <xrstor>64
35968         (clflushopt): New.
35969         * config/i386/i386.opt (mclflushopt): New.
35970         (mxsavec): Ditto.
35971         (mxsaves): Ditto.
35972         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
35973         xsavecintrin.h.
35974         * doc/invoke.texi: Document new options.
35975
35976 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
35977
35978         PR rtl-optimization/60866
35979         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
35980         Default it to -1.  Pass it down to init_simplejump_data.
35981         (init_simplejump_data): New parameter old_seqno.  Pass it down
35982         to get_seqno_for_a_jump.
35983         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
35984         initializing new jump seqno as a last resort.  Add comment.
35985         (sel_redirect_edge_and_branch): Save old seqno of the conditional
35986         jump and pass it down to sel_init_new_insn.
35987         (sel_redirect_edge_and_branch_force): Likewise.
35988
35989 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
35990
35991         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
35992         shifted values to avoid build warning.
35993
35994 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
35995
35996         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
35997         * cfgrtl.c (rtl_merge_blocks): Fix comment.
35998         (cfg_layout_merge_blocks): Likewise.
35999         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
36000
36001 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
36002
36003         PR rtl-optimization/60901
36004         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
36005         bb predecessor belongs to the same scheduling region.  Adjust comment.
36006
36007 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
36008
36009         * doc/sourcebuild.texi: (dfp_hw): Document.
36010         (p8vector_hw): Likewise.
36011         (powerpc_eabi_ok): Likewise.
36012         (powerpc_elfv2): Likewise.
36013         (powerpc_htm_ok): Likewise.
36014         (ppc_recip_hw): Likewise.
36015         (vsx_hw): Likewise.
36016
36017 2014-05-13  Cary Coutant  <ccoutant@google.com>
36018
36019         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
36020
36021 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
36022
36023         * gengtype-parse.c (require3): Eliminate in favor of...
36024         (require4): New.
36025         (require_template_declaration): Update to support optional single *
36026         on a type.
36027
36028         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
36029         (create_user_defined_type): Handle a single level of explicit
36030         pointerness within template arguments.
36031         (struct write_types_data): Add field "kind".
36032         (filter_type_name): Handle "*" character.
36033         (write_user_func_for_structure_ptr): Require a write_types_data
36034         rather than just a prefix string, so that we can look up the kind
36035         of the wtd and use it as an index into wrote_user_func_for_ptr,
36036         ensuring that such functions are written at most once.  Support
36037         subclasses by invoking the marking function of the ultimate base class.
36038         (write_user_func_for_structure_body): Require a write_types_data
36039         rather than just a prefix string, so that we can pass this to
36040         write_user_func_for_structure_ptr.
36041         (write_func_for_structure): Likewise.
36042         (ggc_wtd): Add initializer of new "kind" field.
36043         (pch_wtd): Likewise.
36044
36045         * gengtype.h (enum write_types_kinds): New.
36046         (struct type): Add field wrote_user_func_for_ptr to the "s"
36047         union member.
36048
36049 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
36050
36051         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
36052         instead of const_binop.
36053         (fold_binary_loc): Likewise.
36054
36055 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
36056
36057         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
36058         calculation to match get_ref_base_and_extent.
36059
36060 2014-05-13  Catherine Moore  <clm@codesourcery.com>
36061             Sandra Loosemore  <sandra@codesourcery.com>
36062
36063         * configure.ac: Fix assembly for explicit JALR relocation check.
36064         * configure: Regenerate.
36065
36066 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36067
36068         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
36069         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
36070         Remove associated type declarations and initialisations.
36071         (arm_expand_neon_builtin): Likewise.
36072         (neon_emit_pair_result_insn): Delete.
36073         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
36074         * config/arm/neon.md (neon_vtrn<mode>): Delete.
36075         (neon_vzip<mode>): Likewise.
36076         (neon_vuzp<mode>): Likewise.
36077
36078 2014-05-13  Richard Biener  <rguenther@suse.de>
36079
36080         PR ipa/60973
36081         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
36082         it needs revisiting whether the call still may be tail-called.
36083
36084 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36085
36086         * rtl.def (SYMBOL_REF): Remove middle "0" field.
36087         * rtl.h (block_symbol): Reduce number of fields to 2.
36088         (rtx_def): Add u2.symbol_ref_flags.
36089         (SYMBOL_REF_FLAGS): Use it.
36090         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
36091         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
36092         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
36093         Lower index of SYMBOL_REF_DATA.
36094         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
36095         Print SYMBOL_REF_FLAGS at the same time.
36096         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
36097
36098 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36099
36100         * rtl.def (VAR_LOCATION): Remove "i" field.
36101         * rtl.h (rtx_def): Add u2.var_location_status.
36102         (PAT_VAR_LOCATION_STATUS): Use it.
36103         (gen_rtx_VAR_LOCATION): Declare.
36104         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
36105         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
36106         * var-tracking.c (emit_note_insn_var_location): Remove casts.
36107
36108 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36109
36110         * rtl.def (scratch): Fix outdated comment and remove "0" field.
36111         * gengtype.c (adjust_field_rtx_def): Update accordingly.
36112
36113 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36114
36115         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
36116         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
36117         * rtl.h (rtx_def): Add insn_uid to u2 field.
36118         (RTX_FLAG_CHECK8): Delete in favor of...
36119         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
36120         (INSN_DELETED_P): Update accordingly.
36121         (INSN_UID): Use u2.insn_uid.
36122         (INSN_CHAIN_CODE_P): Define.
36123         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
36124         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
36125         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
36126         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
36127         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
36128         indices accordingly.
36129         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
36130         Update indices for insn-chain rtxes.
36131         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
36132         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
36133         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
36134         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
36135         * combine.c (try_combine): Likewise.
36136         * ira.c (setup_prohibited_mode_move_regs): Likewise.
36137
36138 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36139
36140         * rtl.def (REG): Remove middle field.
36141         * rtl.h (rtx_def): Add orignal_regno to u2.
36142         (ORIGINAL_REGNO): Use it instead of field 1.
36143         (REG_ATTRS): Lower field index accordingly.
36144         * gengtype.c (adjust_field_rtx_def): Remove handling of
36145         ORIGINAL_REGNO.  Move REG_ATTRS index down.
36146         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
36147         code that prints the REGNO.
36148
36149 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36150
36151         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
36152         GENERATOR_FILE.
36153
36154 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
36155
36156         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
36157
36158 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
36159
36160         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
36161         (alloc_iv): Lower base expressions containing ADDR_EXPR.
36162
36163 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
36164
36165         * config/aarch64/aarch64-protos.h
36166         (aarch64_hard_regno_caller_save_mode): New prototype.
36167         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
36168         New function.
36169         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
36170
36171 2014-05-13  Christian Bruel  <christian.bruel@st.com>
36172
36173         * target.def (mode_switching): New hook vector.
36174         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
36175         (mode_exit, modepriority_to_mode): Likewise.
36176         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
36177         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
36178         * target.h: Include tm.h and hard-reg-set.h.
36179         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
36180         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
36181         * doc/tm.texi Regenerate.
36182         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
36183         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
36184         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
36185         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
36186         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
36187         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
36188         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
36189         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
36190         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
36191         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
36192         (ix86_emit_mode_set): Hookify.
36193         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
36194         Delete.
36195         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
36196         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
36197         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
36198         (epiphany_mode_priority_to_mode): Remove declaration.
36199         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
36200         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
36201         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
36202         Likewise.
36203         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
36204         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
36205         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
36206
36207 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
36208
36209         PR target/61060
36210         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
36211         is const0_rtx, return immediately.  Don't test count == 0 when
36212         it is always true.
36213
36214 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36215
36216         * Makefile.in: add shrink-wrap.o.
36217         * config/i386/i386.c: include "shrink-wrap.h"
36218         * function.c: Likewise.
36219         (requires_stack_frame_p, next_block_for_reg,
36220         move_insn_for_shrink_wrap, prepare_shrink_wrap,
36221         dup_block_and_redirect): Move to shrink-wrap.c
36222         (thread_prologue_and_epilogue_insns): Extract three code segments
36223         as functions in shrink-wrap.c
36224         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
36225         shrink-wrap.h
36226         * shrink-wrap.c: New file.
36227         * shrink-wrap.h: New file.
36228
36229 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
36230
36231         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
36232         reference to Solaris.
36233
36234 2014-05-12  Mike Stump  <mikestump@comcast.net>
36235
36236         PR other/31778
36237         * genattrtab.c (filename): Add.
36238         (convert_set_attr_alternative): Improve error message.
36239         (check_defs): Restore read_md_filename for error messages.
36240         (gen_insn): Save filename.
36241
36242 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
36243
36244         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
36245         -fno-local-ivars and -fivar-visibility.
36246         * c-family/c.opt: Make -Wshadow also implicitly enable
36247         -Wshadow-ivar.
36248
36249 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
36250
36251         * doc/tm.texi: Remove reference to deleted macro.
36252         * doc/tm.texi.in: Likewise.
36253
36254 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
36255
36256         PR target/60991
36257         * config/avr/avr.c (avr_out_store_psi): Use correct constant
36258         to restore Y.
36259
36260 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
36261
36262         PR libgcc/61152
36263         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
36264         * config/arm/aout.h (License): Same.
36265         * config/arm/bpabi.h (License): Same.
36266         * config/arm/elf.h (License): Same.
36267         * config/arm/linux-elf.h (License): Same.
36268         * config/arm/linux-gas.h (License): Same.
36269         * config/arm/netbsd-elf.h (License): Same.
36270         * config/arm/uclinux-eabi.h (License): Same.
36271         * config/arm/uclinux-elf.h (License): Same.
36272         * config/arm/vxworks.h (License): Same.
36273
36274 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
36275
36276         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
36277         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
36278         number of operands to 3.
36279         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
36280         * tree-nested.c (convert_nonlocal_omp_clauses,
36281         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
36282         * gimplify.c (gimplify_scan_omp_clauses): Handle
36283         OMP_CLAUSE_LINEAR_STMT.
36284         * omp-low.c (lower_rec_input_clauses): Fix typo.
36285         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
36286         cast between Fortran boolean_type_node and C _Bool if
36287         needed.
36288
36289 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
36290
36291         PR tree-optimization/61136
36292         * wide-int.h (multiple_of_p): Define a version that doesn't return
36293         the quotient.
36294         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
36295         integer_zerop/const_binop pair.
36296         (multiple_of_p): Likewise, converting both operands to widest_int
36297         precision.
36298
36299 2014-05-09  Teresa Johnson  <tejohnson@google.com>
36300
36301         * cgraphunit.c (analyze_functions): Use correct dump file.
36302
36303 2014-05-09  Florian Weimer  <fweimer@redhat.com>
36304
36305         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
36306         expand_used_vars.
36307         (stack_protect_return_slot_p): New function.
36308         (expand_used_vars): Call stack_protect_decl_p and
36309         stack_protect_return_slot_p for -fstack-protector-strong.
36310
36311 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
36312         Andrew Haley <aph@redhat.com>
36313         Richard Sandiford <rdsandiford@googlemail.com>
36314
36315         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
36316         pages.
36317
36318 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
36319
36320         PR middle-end/61111
36321         * fold-const.c (fold_binary_loc): Changed width of mask.
36322
36323 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
36324
36325         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
36326         unsigned int initializers for regno_in, regno_out.
36327
36328 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
36329
36330         PR target/61055
36331         * config/avr/avr.md (cc): Add new attribute set_vzn.
36332         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
36333         Set cc insn attribute to set_vzn instead of set_zn for alternatives
36334         with INC, DEC or NEG.
36335         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
36336         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
36337         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
36338
36339 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36340
36341         Revert:
36342         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36343
36344         * wide-int.cc (UTItype): Define.
36345         (UDWtype): Define for appropriate W_TYPE_SIZE.
36346
36347 2014-05-09  Richard Biener  <rguenther@suse.de>
36348
36349         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
36350         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
36351         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
36352         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
36353         ssa_propagate): Adjust.
36354
36355 2014-05-08  Jeff Law  <law@redhat.com>
36356
36357         PR tree-optimization/61009
36358         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
36359         tri-state rather than a boolean.  When a block is too big to
36360         thread through, inform caller via negative return value.
36361         (thread_across_edge): If a block was too big for normal threading,
36362         then it's too big for a joiner too, so remove temporary equivalences
36363         and return immediately.
36364
36365 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
36366             Matthias Klose  <doko@ubuntu.com>
36367
36368         PR driver/61106
36369         * optc-gen.awk: Fix option handling for -Wunused-parameter.
36370
36371 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
36372
36373         PR target/59952
36374         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
36375
36376 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
36377
36378         PR target/61092
36379         * config/alpha/alpha.c: Include gimple-iterator.h.
36380         (alpha_gimple_fold_builtin): New function.  Move
36381         ALPHA_BUILTIN_UMULH folding from ...
36382         (alpha_fold_builtin): ... here.
36383         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
36384
36385 2014-05-08  Wei Mi  <wmi@google.com>
36386
36387         PR target/58066
36388         * config/i386/i386.c (ix86_compute_frame_layout): Update
36389         preferred_stack_boundary for call, expanded from tls descriptor.
36390         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
36391         to depend on SP register.
36392         (*tls_local_dynamic_base_32_gnu): Ditto.
36393         (*tls_local_dynamic_32_once): Ditto.
36394         (tls_global_dynamic_64_<mode>): Set
36395         ix86_tls_descriptor_calls_expanded_in_cfun.
36396         (tls_local_dynamic_base_64_<mode>): Ditto.
36397         (tls_global_dynamic_32): Set
36398         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
36399         to depend on SP register.
36400         (tls_local_dynamic_base_32): Ditto.
36401
36402 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36403
36404         * config/arm/arm_neon.h: Update comment.
36405         * config/arm/neon-docgen.ml: Delete.
36406         * config/arm/neon-gen.ml: Delete.
36407         * doc/arm-neon-intrinsics.texi: Update comment.
36408
36409 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36410
36411         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
36412         and v4sf versions.
36413         (vand, vorr, veor, vorn, vbic): Remove.
36414         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
36415         iterator.
36416         (neon_vsub_unspec): Likewise.
36417         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
36418
36419 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36420
36421         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
36422         (vadd_s16): Likewise.
36423         (vadd_s32): Likewise.
36424         (vadd_f32): Likewise.
36425         (vadd_u8): Likewise.
36426         (vadd_u16): Likewise.
36427         (vadd_u32): Likewise.
36428         (vadd_s64): Likewise.
36429         (vadd_u64): Likewise.
36430         (vaddq_s8): Likewise.
36431         (vaddq_s16): Likewise.
36432         (vaddq_s32): Likewise.
36433         (vaddq_s64): Likewise.
36434         (vaddq_f32): Likewise.
36435         (vaddq_u8): Likewise.
36436         (vaddq_u16): Likewise.
36437         (vaddq_u32): Likewise.
36438         (vaddq_u64): Likewise.
36439         (vmul_s8): Likewise.
36440         (vmul_s16): Likewise.
36441         (vmul_s32): Likewise.
36442         (vmul_f32): Likewise.
36443         (vmul_u8): Likewise.
36444         (vmul_u16): Likewise.
36445         (vmul_u32): Likewise.
36446         (vmul_p8): Likewise.
36447         (vmulq_s8): Likewise.
36448         (vmulq_s16): Likewise.
36449         (vmulq_s32): Likewise.
36450         (vmulq_f32): Likewise.
36451         (vmulq_u8): Likewise.
36452         (vmulq_u16): Likewise.
36453         (vmulq_u32): Likewise.
36454         (vsub_s8): Likewise.
36455         (vsub_s16): Likewise.
36456         (vsub_s32): Likewise.
36457         (vsub_f32): Likewise.
36458         (vsub_u8): Likewise.
36459         (vsub_u16): Likewise.
36460         (vsub_u32): Likewise.
36461         (vsub_s64): Likewise.
36462         (vsub_u64): Likewise.
36463         (vsubq_s8): Likewise.
36464         (vsubq_s16): Likewise.
36465         (vsubq_s32): Likewise.
36466         (vsubq_s64): Likewise.
36467         (vsubq_f32): Likewise.
36468         (vsubq_u8): Likewise.
36469         (vsubq_u16): Likewise.
36470         (vsubq_u32): Likewise.
36471         (vsubq_u64): Likewise.
36472         (vand_s8): Likewise.
36473         (vand_s16): Likewise.
36474         (vand_s32): Likewise.
36475         (vand_u8): Likewise.
36476         (vand_u16): Likewise.
36477         (vand_u32): Likewise.
36478         (vand_s64): Likewise.
36479         (vand_u64): Likewise.
36480         (vandq_s8): Likewise.
36481         (vandq_s16): Likewise.
36482         (vandq_s32): Likewise.
36483         (vandq_s64): Likewise.
36484         (vandq_u8): Likewise.
36485         (vandq_u16): Likewise.
36486         (vandq_u32): Likewise.
36487         (vandq_u64): Likewise.
36488         (vorr_s8): Likewise.
36489         (vorr_s16): Likewise.
36490         (vorr_s32): Likewise.
36491         (vorr_u8): Likewise.
36492         (vorr_u16): Likewise.
36493         (vorr_u32): Likewise.
36494         (vorr_s64): Likewise.
36495         (vorr_u64): Likewise.
36496         (vorrq_s8): Likewise.
36497         (vorrq_s16): Likewise.
36498         (vorrq_s32): Likewise.
36499         (vorrq_s64): Likewise.
36500         (vorrq_u8): Likewise.
36501         (vorrq_u16): Likewise.
36502         (vorrq_u32): Likewise.
36503         (vorrq_u64): Likewise.
36504         (veor_s8): Likewise.
36505         (veor_s16): Likewise.
36506         (veor_s32): Likewise.
36507         (veor_u8): Likewise.
36508         (veor_u16): Likewise.
36509         (veor_u32): Likewise.
36510         (veor_s64): Likewise.
36511         (veor_u64): Likewise.
36512         (veorq_s8): Likewise.
36513         (veorq_s16): Likewise.
36514         (veorq_s32): Likewise.
36515         (veorq_s64): Likewise.
36516         (veorq_u8): Likewise.
36517         (veorq_u16): Likewise.
36518         (veorq_u32): Likewise.
36519         (veorq_u64): Likewise.
36520         (vbic_s8): Likewise.
36521         (vbic_s16): Likewise.
36522         (vbic_s32): Likewise.
36523         (vbic_u8): Likewise.
36524         (vbic_u16): Likewise.
36525         (vbic_u32): Likewise.
36526         (vbic_s64): Likewise.
36527         (vbic_u64): Likewise.
36528         (vbicq_s8): Likewise.
36529         (vbicq_s16): Likewise.
36530         (vbicq_s32): Likewise.
36531         (vbicq_s64): Likewise.
36532         (vbicq_u8): Likewise.
36533         (vbicq_u16): Likewise.
36534         (vbicq_u32): Likewise.
36535         (vbicq_u64): Likewise.
36536         (vorn_s8): Likewise.
36537         (vorn_s16): Likewise.
36538         (vorn_s32): Likewise.
36539         (vorn_u8): Likewise.
36540         (vorn_u16): Likewise.
36541         (vorn_u32): Likewise.
36542         (vorn_s64): Likewise.
36543         (vorn_u64): Likewise.
36544         (vornq_s8): Likewise.
36545         (vornq_s16): Likewise.
36546         (vornq_s32): Likewise.
36547         (vornq_s64): Likewise.
36548         (vornq_u8): Likewise.
36549         (vornq_u16): Likewise.
36550         (vornq_u32): Likewise.
36551         (vornq_u64): Likewise.
36552
36553 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36554
36555         * wide-int.cc (UTItype): Define.
36556         (UDWtype): Define for appropriate W_TYPE_SIZE.
36557
36558 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
36559
36560         PR tree-optimization/59100
36561         * tree-ssa-phiopt.c: Include tree-inline.h.
36562         (neutral_element_p, absorbing_element_p): New functions.
36563         (value_replacement): Handle conditional binary operations with a
36564         neutral or absorbing element.
36565
36566 2014-05-08  Richard Biener  <rguenther@suse.de>
36567
36568         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
36569         folding the expression.
36570         (valueize_expr): Remove.
36571         (visit_reference_op_load): Do not valueize the result of
36572         vn_get_expr_for.
36573         (simplify_binary_expression): Likewise.
36574         (simplify_unary_expression): Likewise.
36575
36576 2014-05-08  Richard Biener  <rguenther@suse.de>
36577
36578         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
36579         looking at TYPE_ARG_TYPES.
36580
36581 2014-05-08  Richard Biener  <rguenther@suse.de>
36582
36583         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
36584         pointer propagation special-case.
36585
36586 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
36587
36588         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
36589         core part of address expressions.
36590
36591 2014-05-08  Alan Modra  <amodra@gmail.com>
36592
36593         PR target/60737
36594         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
36595         loads and stores when -mno-strict-align at any alignment.
36596         (expand_block_clear): Similarly.  Also correct calculation of
36597         instruction count.
36598
36599 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36600
36601         PR middle-end/39246
36602         * tree-complex.c (expand_complex_move): Keep line info when expanding
36603         complex move.
36604         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
36605         of complex expression. Use new argument to display correct location
36606         for values coming from phi statement.
36607         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
36608         (warn_uninitialized_phi): Pass location of phi argument to
36609         warn_uninit.
36610         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
36611         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
36612
36613 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
36614
36615         * config/rs6000/predicates.md (indexed_address_mem): New.
36616         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
36617         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
36618         fpstore_ux, fpstore_u.
36619         (sign_extend, indexed, update): New.
36620         (cell_micro): Adjust.
36621         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
36622         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
36623         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
36624         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
36625         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
36626         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
36627         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
36628         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
36629         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
36630         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
36631         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
36632         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
36633         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
36634         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
36635         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
36636
36637         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
36638         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
36639         *vsx_extract_<mode>_store): Adjust.
36640         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
36641         is_cracked_insn, insn_must_be_first_in_group,
36642         insn_must_be_last_in_group): Adjust.
36643
36644         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
36645         Adjust.
36646         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
36647         ppc440-fpstore): Adjust.
36648         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
36649         ppc476-fpstore): Adjust.
36650         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
36651         ppc601-fpstore): Adjust.
36652         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
36653         Adjust.
36654         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
36655         Adjust.
36656         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
36657         ppc7450-fpstore): Adjust.
36658         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
36659         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
36660         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
36661         Adjust.
36662         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
36663         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
36664         cell-fpstore, cell-fpstore-update): Adjust.
36665         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
36666         ppce300c3_store, ppce300c3_fpstore): Adjust.
36667         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
36668         e500mc_fpstore): Adjust.
36669         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
36670         e500mc64_store, e500mc64_fpstore): Adjust.
36671         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
36672         e5500_fpstore): Adjust.
36673         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
36674         e6500_fpstore): Adjust.
36675         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
36676         Adjust.
36677         * config/rs6000/power4.md (power4-load, power4-load-ext,
36678         power4-load-ext-update, power4-load-ext-update-indexed,
36679         power4-load-update-indexed, power4-load-update, power4-fpload,
36680         power4-fpload-update, power4-store, power4-store-update,
36681         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
36682         Adjust.
36683         * config/rs6000/power5.md (power5-load, power5-load-ext,
36684         power5-load-ext-update, power5-load-ext-update-indexed,
36685         power5-load-update-indexed, power5-load-update, power5-fpload,
36686         power5-fpload-update, power5-store, power5-store-update,
36687         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
36688         Adjust.
36689         * config/rs6000/power6.md (power6-load, power6-load-ext,
36690         power6-load-update, power6-load-update-indexed,
36691         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
36692         power6-fpload-update, power6-store, power6-store-update,
36693         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
36694         Adjust.
36695         * config/rs6000/power7.md (power7-load, power7-load-ext,
36696         power7-load-update, power7-load-update-indexed,
36697         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
36698         power7-fpload-update, power7-store, power7-store-update,
36699         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
36700         Adjust.
36701         * config/rs6000/power8.md (power8-load, power8-load-update,
36702         power8-load-ext, power8-load-ext-update, power8-fpload,
36703         power8-fpload-update, power8-store, power8-store-update-indexed,
36704         power8-fpstore, power8-fpstore-update): Adjust.
36705         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
36706         Adjust.
36707         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
36708         titan_lsu_store, titan_lsu_fpstore): Adjust.
36709         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
36710
36711 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
36712
36713         PR target/60884
36714         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
36715         unrolled byte insns.  Emit address increments after move insns.
36716
36717 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
36718
36719         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
36720         const_gimple, rather than a gimple.
36721         (gimple_call_builtin_p): Likewise, for the three variants.
36722
36723         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
36724         (gimple_call_builtin_p): Likewise, for the three variants.
36725
36726 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
36727
36728         PR tree-optimization/61095
36729         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
36730
36731 2014-05-07  Richard Biener  <rguenther@suse.de>
36732
36733         PR tree-optimization/61034
36734         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
36735         (maybe_skip_until): Use translate to take into account
36736         lattices when trying to do disambiguations.
36737         (get_continuation_for_phi_1): Likewise.
36738         (get_continuation_for_phi): Adjust for added translate arguments.
36739         (walk_non_aliased_vuses): Likewise.
36740         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
36741         (walk_non_aliased_vuses): Likewise.
36742         (call_may_clobber_ref_p_1): Declare.
36743         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
36744         calls.  Stop early if we are only supposed to disambiguate.
36745         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
36746
36747 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
36748
36749         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
36750         Emit an error when the function has arguments.
36751
36752 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
36753
36754         * cfgloop.h (unswitch_loops): Remove.
36755         * doc/passes.texi: Remove references to loop-unswitch.c
36756         * timevar.def (TV_LOOP_UNSWITCH): Remove.
36757
36758 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
36759
36760         * tree-vect-data-refs.c (vect_grouped_load_supported): New
36761         check for loads group of length 3.
36762         (vect_permute_load_chain): New permutations for loads group of
36763         length 3.
36764         * tree-vect-stmts.c (vect_model_load_cost): Change cost
36765         of vec_perm_shuffle for the new permutations.
36766
36767 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
36768
36769         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
36770         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
36771         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
36772         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
36773         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
36774         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
36775         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
36776         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
36777
36778 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
36779
36780         * loop-unswitch.c: Delete.
36781
36782 2014-05-07  Richard Biener  <rguenther@suse.de>
36783
36784         * config.gcc: Always set need_64bit_hwint to yes.
36785
36786 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
36787
36788         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
36789         of using optimize_size.
36790
36791 2014-05-06  Mike Stump  <mikestump@comcast.net>
36792
36793         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
36794
36795 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
36796
36797         * config/i386/sse.md (*mov<mode>_internal)
36798         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
36799         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
36800         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
36801         (*<code><mode>3, *andnot<mode>3<mask_name>)
36802         (<mask_codefor><code><mode>3<mask_name>): Only consider
36803         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
36804
36805 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
36806
36807         Revert:
36808         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
36809
36810         * lra-constraints.c (valid_address_p): Move earlier in file.
36811         Add a constraint argument to the address_info version.
36812         (satisfies_memory_constraint_p): New function.
36813         (satisfies_address_constraint_p): Likewise.
36814         (process_alt_operands, curr_insn_transform): Use them.
36815         (process_address): Pass the constraint to valid_address_p when
36816         checking address operands.
36817
36818 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
36819
36820         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
36821         to their respective blocks.  Fix inadvertent use of "node".
36822
36823 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
36824
36825         * emit-rtl.c (init_derived_machine_modes): New functionm, split
36826         out from...
36827         (init_emit_once): ...here.
36828         * rtl.h (init_derived_machine_modes): Declare.
36829         * toplev.c (do_compile): Call it even if no_backend.
36830
36831 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
36832             Mike Stump  <mikestump@comcast.net>
36833             Richard Sandiford  <rdsandiford@googlemail.com>
36834             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36835
36836         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
36837         (rtx_equal_for_memref_p): Update comment.
36838         (adjust_offset_for_component_ref): Use wide-int interfaces.
36839         * builtins.c (get_object_alignment_2): Likewise.
36840         (c_readstr): Likewise.
36841         (target_char_cast): Add comment.
36842         (determine_block_size): Use wide-int interfaces.
36843         (expand_builtin_signbit): Likewise.
36844         (fold_builtin_int_roundingfn): Likewise.
36845         (fold_builtin_bitop): Likewise.
36846         (fold_builtin_bswap): Likewise.
36847         (fold_builtin_logarithm): Use signop.
36848         (fold_builtin_pow): Likewise.
36849         (fold_builtin_memory_op): Use wide-int interfaces.
36850         (fold_builtin_object_size): Likewise.
36851         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
36852         nb_iterations_estimate.
36853         (record_niter_bound): Use wide-int interfaces.
36854         (get_estimated_loop_iterations_int): Likewise.
36855         (get_estimated_loop_iterations): Likewise.
36856         (get_max_loop_iterations): Likewise.
36857         * cfgloop.h: Include wide-int.h.
36858         (struct nb_iter_bound): Change bound to widest_int.
36859         (struct loop): Change nb_iterations_upper_bound and
36860         nb_iterations_estimate to widest_int.
36861         (record_niter_bound): Switch to use widest_int.
36862         (get_estimated_loop_iterations): Likewise.
36863         (get_max_loop_iterations): Likewise.
36864         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
36865         update for wide-int.
36866         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
36867         * combine.c (try_combine): Likewise.
36868         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
36869         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
36870         interfaces.
36871         (aarch64_float_const_representable_p): Likewise.
36872         * config/arc/arc.c: Include wide-int.h.
36873         (arc_can_use_doloop_p): Use wide-int interfaces.
36874         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
36875         (vfp3_const_double_index): Likewise.
36876         * config/avr/avr.c (avr_out_round): Likewise.
36877         (avr_fold_builtin): Likewise.
36878         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
36879         (bfin_can_use_doloop_p): Likewise.
36880         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
36881         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
36882         * config/i386/i386.c: Include wide-int.h.
36883         (ix86_data_alignment): Use wide-int interfaces.
36884         (ix86_local_alignment): Likewise.
36885         (ix86_emit_swsqrtsf): Update real_from_integer.
36886         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
36887         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
36888         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
36889         (zero_constant): Likewise.
36890         (input_operand): Likewise.
36891         (splat_input_operand): Likewise.
36892         (non_logical_cint_operand): Change const_double to const_wide_int.
36893         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
36894         (easy_altivec_constant): Remove comment.
36895         (paired_expand_vector_init): Use CONSTANT_P.
36896         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
36897         (rs6000_emit_move): Update checks.
36898         (rs6000_aggregate_candidate): Use wide-int interfaces.
36899         (rs6000_expand_ternop_builtin): Likewise.
36900         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
36901         (rs6000_assemble_integer): Likewise.
36902         (rs6000_hash_constant): Likewise.
36903         (output_toc): Likewise.
36904         (rs6000_rtx_costs): Likewise.
36905         (rs6000_emit_swrsqrt); Update call to real_from_integer.
36906         * config/rs6000/rs6000-c.c: Include wide-int.h.
36907         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
36908         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
36909         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
36910         Handle CONST_WIDE_INT.
36911         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
36912         Use tree_fits_uhwi_p.
36913         * config/sparc/sparc.c: Include wide-int.h.
36914         (sparc_fold_builtin): Use wide-int interfaces.
36915         * config/vax/vax.c: Include wide-int.h.
36916         (vax_float_literal): Use real_from_integer.
36917         * coretypes.h (struct hwivec_def): New.
36918         (hwivec): New.
36919         (const_hwivec): New.
36920         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
36921         (equiv_constant): Handle CONST_WIDE_INT.
36922         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
36923         (cselib_hash_rtx): Handle CONST_WIDE_INT.
36924         * dbxout.c (stabstr_U): Use wide-int interfaces.
36925         (dbxout_type): Update to use cst_fits_shwi_p.
36926         * defaults.h (LOG2_BITS_PER_UNIT): Define.
36927         (TARGET_SUPPORTS_WIDE_INT): Add default.
36928         * dfp.c: Include wide-int.h.
36929         (decimal_real_to_integer2): Use wide-int interfaces and rename to
36930         decimal_real_to_integer.
36931         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
36932         decimal_real_to_integer.
36933         * doc/generic.texi (Constant expressions): Update for wide_int.
36934         * doc/rtl.texi (const_double): Likewise.
36935         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
36936         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
36937         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
36938         (REAL_VALUE_FROM_INT): Remove.
36939         (TARGET_SUPPORTS_WIDE_INT): New.
36940         * doc/tm.texi: Regenerate.
36941         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
36942         * double-int.h: Include wide-int.h.
36943         (struct wi::int_traits): New.
36944         * dwarf2out.c (get_full_len): New.
36945         (dw_val_equal_p): Add case dw_val_class_wide_int.
36946         (size_of_loc_descr): Likewise.
36947         (output_loc_operands): Likewise.
36948         (insert_double): Remove.
36949         (insert_wide_int): New.
36950         (add_AT_wide): New.
36951         (print_die): Add case dw_val_class_wide_int.
36952         (attr_checksum): Likewise.
36953         (attr_checksum_ordered): Likewise.
36954         (same_dw_val_p): Likewise.
36955         (size_of_die): Likewise.
36956         (value_format): Likewise.
36957         (output_die): Likewise.
36958         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
36959         Use wide-int.
36960         (clz_loc_descriptor): Use wide-int interfaces.
36961         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
36962         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
36963         (round_up_to_align): Use wide-int interfaces.
36964         (field_byte_offset): Likewise.
36965         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
36966         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
36967         CONST_DOUBLE handling.  Use wide-int interfaces.
36968         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
36969         (gen_enumeration_type_die): Use add_AT_wide.
36970         (hash_loc_operands): Add case dw_val_class_wide_int.
36971         (compare_loc_operands): Likewise.
36972         * dwarf2out.h: Include wide-int.h.
36973         (wide_int_ptr): New.
36974         (enum dw_val_class): Add dw_val_class_wide_int.
36975         (struct dw_val_struct): Add val_wide.
36976         * emit-rtl.c (const_wide_int_htab): New.
36977         (const_wide_int_htab_hash): New.
36978         (const_wide_int_htab_eq): New.
36979         (lookup_const_wide_int): New.
36980         (const_double_htab_hash): Use wide-int interfaces.
36981         (const_double_htab_eq): Likewise.
36982         (rtx_to_double_int): Conditionally compile for wide-int.
36983         (immed_double_int_const): Rename to immed_wide_int_const and
36984         update for wide-int.
36985         (immed_double_const): Conditionally compile for wide-int.
36986         (init_emit_once): Use wide-int interfaces.
36987         * explow.c (plus_constant): Likewise.
36988         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
36989         (lshift_value): Use wide-int interfaces.
36990         (expand_mult): Likewise.
36991         (choose_multiplier): Likewise.
36992         (expand_smod_pow2): Likewise.
36993         (make_tree): Likewise.
36994         * expr.c (convert_modes): Consolidate handling of constants.
36995         Use wide-int interfaces.
36996         (emit_group_load_1): Add note.
36997         (store_expr): Update comment.
36998         (get_inner_reference): Use wide-int interfaces.
36999         (expand_constructor): Update comment.
37000         (expand_expr_real_2): Use wide-int interfaces.
37001         (expand_expr_real_1): Likewise.
37002         (reduce_to_bit_field_precision): Likewise.
37003         (const_vector_from_tree): Likewise.
37004         * final.c: Include wide-int-print.h.
37005         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
37006         * fixed-value.c: Include wide-int.h.
37007         (fixed_from_string): Use wide-int interfaces.
37008         (fixed_to_decimal): Likewise.
37009         (fixed_convert_from_real): Likewise.
37010         (real_convert_from_fixed): Likewise.
37011         * fold-const.h (mem_ref_offset): Return an offset_int.
37012         (div_if_zero_remainder): Remove code parameter.
37013         * fold-const.c (div_if_zero_remainder): Remove code parameter.
37014         Use wide-int interfaces.
37015         (may_negate_without_overflow_p): Use wide-int interfaces.
37016         (negate_expr_p): Likewise.
37017         (fold_negate_expr): Likewise.
37018         (int_const_binop_1): Likewise.
37019         (const_binop): Likewise.
37020         (fold_convert_const_int_from_int): Likewise.
37021         (fold_convert_const_int_from_real): Likewise.
37022         (fold_convert_const_int_from_fixed): Likewise.
37023         (fold_convert_const_fixed_from_int): Likewise.
37024         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
37025         (sign_bit_p): Use wide-int interfaces.
37026         (make_range_step): Likewise.
37027         (build_range_check): Likewise.  Pass an integer of the correct type
37028         instead of using integer_one_node.
37029         (range_predecessor): Pass an integer of the correct type instead
37030         of using integer_one_node.
37031         (range_successor): Likewise.
37032         (merge_ranges): Likewise.
37033         (unextend): Use wide-int interfaces.
37034         (extract_muldiv_1): Likewise.
37035         (fold_div_compare): Likewise.
37036         (fold_single_bit_test): Likewise.
37037         (fold_sign_changed_comparison): Likewise.
37038         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
37039         (fold_plusminus_mult_expr): Use wide-int interfaces.
37040         (native_encode_int): Likewise.
37041         (native_interpret_int): Likewise.
37042         (fold_unary_loc): Likewise.
37043         (pointer_may_wrap_p): Likewise.
37044         (size_low_cst): Likewise.
37045         (mask_with_tz): Likewise.
37046         (fold_binary_loc): Likewise.
37047         (fold_ternary_loc): Likewise.
37048         (multiple_of_p): Likewise.
37049         (tree_call_nonnegative_warnv_p): Update calls to
37050         tree_int_cst_min_precision and real_from_integer.
37051         (fold_negate_const): Use wide-int interfaces.
37052         (fold_abs_const): Likewise.
37053         (fold_relational_const): Use tree_int_cst_lt.
37054         (round_up_loc): Use wide-int interfaces.
37055         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
37056         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
37057         * gengtype.c: Remove include of double-int.h.
37058         (do_typedef): Use wide-int interfaces.
37059         (open_base_files): Add wide-int.h.
37060         (main): Add offset_int and widest_int typedefs.
37061         * gengtype-lex.l: Handle "^".
37062         (CXX_KEYWORD): Add "static".
37063         * gengtype-parse.c (require3): New.
37064         (require_template_declaration): Handle constant template arguments
37065         and nested templates.
37066         * gengtype-state.c: Don't include "double-int.h".
37067         * genpreds.c (write_one_predicate_function): Update comment.
37068         (write_tm_constrs_h): Add check for hval and lval use in
37069         CONST_WIDE_INT.
37070         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
37071         (add_to_sequence): Likewise.
37072         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
37073         and const_double_operand.
37074         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
37075         interfaces.
37076         * gimple-fold.c (get_base_constructor): Likewise.
37077         (fold_array_ctor_reference): Likewise.
37078         (fold_nonarray_ctor_reference): Likewise.
37079         (fold_const_aggregate_ref_1): Likewise.
37080         (gimple_val_nonnegative_real_p): Likewise.
37081         (gimple_fold_indirect_ref): Likewise.
37082         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
37083         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
37084         (struct slsr_cand_d): Change index to be widest_int.
37085         (struct incr_info_d): Change incr to be widest_int.
37086         (alloc_cand_and_find_basis): Use wide-int interfaces.
37087         (slsr_process_phi): Likewise.
37088         (backtrace_base_for_ref): Likewise.  Return a widest_int.
37089         (restructure_reference): Take a widest_int instead of a double_int.
37090         (slsr_process_ref): Use wide-int interfaces.
37091         (create_mul_ssa_cand): Likewise.
37092         (create_mul_imm_cand): Likewise.
37093         (create_add_ssa_cand): Likewise.
37094         (create_add_imm_cand): Take a widest_int instead of a double_int.
37095         (slsr_process_add): Use wide-int interfaces.
37096         (slsr_process_cast): Likewise.
37097         (slsr_process_copy): Likewise.
37098         (dump_candidate): Likewise.
37099         (dump_incr_vec): Likewise.
37100         (replace_ref): Likewise.
37101         (cand_increment): Likewise.  Return a widest_int.
37102         (cand_abs_increment): Likewise.
37103         (replace_mult_candidate): Take a widest_int instead of a double_int.
37104         (replace_unconditional_candidate): Use wide-int interfaces.
37105         (incr_vec_index): Take a widest_int instead of a double_int.
37106         (create_add_on_incoming_edge): Likewise.
37107         (create_phi_basis): Use wide-int interfaces.
37108         (replace_conditional_candidate): Likewise.
37109         (record_increment): Take a widest_int instead of a double_int.
37110         (record_phi_increments): Use wide-int interfaces.
37111         (phi_incr_cost): Take a widest_int instead of a double_int.
37112         (lowest_cost_path): Likewise.
37113         (total_savings): Likewise.
37114         (analyze_increments): Use wide-int interfaces.
37115         (ncd_with_phi): Take a widest_int instead of a double_int.
37116         (ncd_of_cand_and_phis): Likewise.
37117         (nearest_common_dominator_for_cands): Likewise.
37118         (insert_initializers): Use wide-int interfaces.
37119         (all_phi_incrs_profitable): Likewise.
37120         (replace_one_candidate): Likewise.
37121         (replace_profitable_candidates): Likewise.
37122         * godump.c: Include wide-int-print.h.
37123         (go_output_typedef): Use wide-int interfaces.
37124         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
37125         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
37126         (build_loop_iteration_domains): Likewise.
37127         * hooks.h: Include wide-int.h rather than double-int.h.
37128         (hook_bool_dint_dint_uint_bool_true): Delete.
37129         (hook_bool_wint_wint_uint_bool_true): Declare.
37130         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
37131         (hook_bool_wint_wint_uint_bool_true): New.
37132         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
37133         interfaces.
37134         (ubsan_expand_si_overflow_mul_check): Likewise.
37135         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
37136         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
37137         (get_ancestor_addr_info): Likewise.
37138         (ipa_modify_call_arguments): Likewise.
37139         * loop-doloop.c (doloop_modify): Likewise.
37140         (doloop_optimize): Likewise.
37141         * loop-iv.c (iv_number_of_iterations): Likewise.
37142         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
37143         (unroll_loop_constant_iterations): Likewise.
37144         (decide_unroll_runtime_iterations): Likewise.
37145         (unroll_loop_runtime_iterations): Likewise.
37146         (decide_peel_simple): Likewise.
37147         (decide_unroll_stupid): Likewise.
37148         * lto-streamer-in.c (streamer_read_wi): Add.
37149         (input_cfg): Use wide-int interfaces.
37150         (lto_input_tree_1): Likewise.
37151         * lto-streamer-out.c (streamer_write_wi): Add.
37152         (hash_tree): Use wide-int interfaces.
37153         (output_cfg): Likewise.
37154         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
37155         (GTFILES): Add wide-int.h and signop.h.
37156         (TAGS): Look for .cc files too.
37157         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
37158         * optabs.c (expand_subword_shift): Likewise.
37159         (expand_doubleword_shift): Likewise.
37160         (expand_absneg_bit): Likewise.
37161         (expand_copysign_absneg): Likewise.
37162         (expand_copysign_bit): Likewise.
37163         * postreload.c (reload_cse_simplify_set): Likewise.
37164         * predict.c (predict_iv_comparison): Likewise.
37165         * pretty-print.h: Include wide-int-print.h.
37166         (pp_wide_int) New.
37167         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
37168         * print-tree.c: Include wide-int-print.h.
37169         (print_node_brief): Use wide-int interfaces.
37170         (print_node): Likewise.
37171         * read-rtl.c (validate_const_wide_int): New.
37172         (read_rtx_code): Add CONST_WIDE_INT case.
37173         * real.c: Include wide-int.h.
37174         (real_to_integer2): Delete.
37175         (real_to_integer): New function, returning a wide_int.
37176         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
37177         (ten_to_ptwo): Update call to real_from_integer.
37178         (real_digit): Likewise.
37179         * real.h: Include signop.h, wide-int.h and insn-modes.h.
37180         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
37181         (REAL_VALUE_TO_INT): Delete.
37182         (real_to_integer): Declare a wide-int form.
37183         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
37184         * recog.c (const_int_operand): Improve comment.
37185         (const_scalar_int_operand): New.
37186         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
37187         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
37188         (split_double): Likewise.
37189         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
37190         (rtx_size): Likewise.
37191         (rtx_alloc_stat_v): New.
37192         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
37193         (cwi_output_hex): New.
37194         (iterative_hash_rtx): Handle CONST_WIDE_INT.
37195         (cwi_check_failed_bounds): New.
37196         * rtl.def (CONST_WIDE_INT): New.
37197         * rtl.h: Include <utility> and wide-int.h.
37198         (struct hwivec_def): New.
37199         (CWI_GET_NUM_ELEM): New.
37200         (CWI_PUT_NUM_ELEM): New.
37201         (struct rtx_def): Add num_elem and hwiv.
37202         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
37203         (CASE_CONST_UNIQUE): Likewise.
37204         (CASE_CONST_ANY): Likewise.
37205         (CONST_SCALAR_INT_P): Likewise.
37206         (CONST_WIDE_INT_P): New.
37207         (CWI_ELT): New.
37208         (HWIVEC_CHECK): New.
37209         (cwi_check_failed_bounds): New.
37210         (CWI_ELT): New.
37211         (HWIVEC_CHECK): New.
37212         (CONST_WIDE_INT_VEC) New.
37213         (CONST_WIDE_INT_NUNITS) New.
37214         (CONST_WIDE_INT_ELT) New.
37215         (rtx_mode_t): New type.
37216         (wi::int_traits <rtx_mode_t>): New.
37217         (wi::shwi): New.
37218         (wi::min_value): New.
37219         (wi::max_value): New.
37220         (rtx_alloc_v) New.
37221         (const_wide_int_alloc): New.
37222         (immed_wide_int_const): New.
37223         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
37224         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
37225         * signop.h: New file.
37226         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
37227         (simplify_const_unary_operation): Use wide-int interfaces.
37228         (simplify_binary_operation_1): Likewise.
37229         (simplify_const_binary_operation): Likewise.
37230         (simplify_const_relational_operation): Likewise.
37231         (simplify_immed_subreg): Likewise.
37232         * stmt.c (expand_case): Likewise.
37233         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
37234         signop rather than a bool.
37235         * stor-layout.c (layout_type): Use wide-int interfaces.
37236         (initialize_sizetypes): Update calls to
37237         set_min_and_max_values_for_integral_type.
37238         (set_min_and_max_values_for_integral_type): Take a signop rather
37239         than a bool.  Use wide-int interfaces.
37240         (fixup_signed_type): Update accordingly.  Remove
37241         HOST_BITS_PER_DOUBLE_INT limit.
37242         (fixup_unsigned_type): Likewise.
37243         * system.h (STATIC_CONSTANT_P): New.
37244         (STATIC_ASSERT): New.
37245         * target.def (can_use_doloop_p): Take widest_ints rather than
37246         double_ints.
37247         * target.h: Include wide-int.h rather than double-int.h.
37248         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
37249         than double_ints.
37250         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
37251         rather than INT_CST_LT_UNSIGNED.
37252         (can_use_doloop_if_innermost): Take widest_ints rather than
37253         double_ints.
37254         * tree-affine.c: Include wide-int-print.h.
37255         (double_int_ext_for_comb): Delete.
37256         (wide_int_ext_for_comb): New.
37257         (aff_combination_zero): Use wide-int interfaces.
37258         (aff_combination_const): Take a widest_int instead of a double_int.
37259         (aff_combination_elt): Use wide-int interfaces.
37260         (aff_combination_scale): Take a widest_int instead of a double_int.
37261         (aff_combination_add_elt): Likewise.
37262         (aff_combination_add_cst): Likewise.
37263         (aff_combination_add): Use wide-int interfaces.
37264         (aff_combination_convert): Likewise.
37265         (tree_to_aff_combination): Likewise.
37266         (add_elt_to_tree): Take a widest_int instead of a double_int.
37267         (aff_combination_to_tree): Use wide-int interfaces.
37268         (aff_combination_remove_elt): Likewise.
37269         (aff_combination_add_product): Take a widest_int instead of
37270         a double_int.
37271         (aff_combination_mult): Use wide-int interfaces.
37272         (aff_combination_expand): Likewise.
37273         (double_int_constant_multiple_p): Delete.
37274         (wide_int_constant_multiple_p): New.
37275         (aff_combination_constant_multiple_p): Take a widest_int pointer
37276         instead of a double_int pointer.
37277         (print_aff): Use wide-int interfaces.
37278         (get_inner_reference_aff): Take a widest_int pointer
37279         instead of a double_int pointer.
37280         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
37281         * tree-affine.h: Include wide-int.h.
37282         (struct aff_comb_elt): Change type of coef to widest_int.
37283         (struct affine_tree_combination): Change type of offset to widest_int.
37284         (double_int_ext_for_comb): Delete.
37285         (wide_int_ext_for_comb): New.
37286         (aff_combination_const): Use widest_int instead of double_int.
37287         (aff_combination_scale): Likewise.
37288         (aff_combination_add_elt): Likewise.
37289         (aff_combination_constant_multiple_p): Likewise.
37290         (get_inner_reference_aff): Likewise.
37291         (aff_comb_cannot_overlap_p): Likewise.
37292         (aff_combination_zero_p): Use wide-int interfaces.
37293         * tree.c: Include tree.h.
37294         (init_ttree): Use make_int_cst.
37295         (tree_code_size): Removed code for INTEGER_CST case.
37296         (tree_size): Add INTEGER_CST case.
37297         (make_node_stat): Update comment.
37298         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
37299         (build_int_cst_type): Use wide-int interfaces.
37300         (double_int_to_tree): Likewise.
37301         (double_int_fits_to_tree_p): Delete.
37302         (force_fit_type_double): Delete.
37303         (force_fit_type): New.
37304         (int_cst_hash_hash): Use wide-int interfaces.
37305         (int_cst_hash_eq): Likewise.
37306         (build_int_cst_wide): Delete.
37307         (wide_int_to_tree): New.
37308         (cache_integer_cst): Use wide-int interfaces.
37309         (build_low_bits_mask): Likewise.
37310         (cst_and_fits_in_hwi): Likewise.
37311         (real_value_from_int_cst): Likewise.
37312         (make_int_cst_stat): New.
37313         (integer_zerop): Use wide_int interfaces.
37314         (integer_onep): Likewise.
37315         (integer_all_onesp): Likewise.
37316         (integer_pow2p): Likewise.
37317         (integer_nonzerop): Likewise.
37318         (tree_log2): Likewise.
37319         (tree_floor_log2): Likewise.
37320         (tree_ctz): Likewise.
37321         (int_size_in_bytes): Likewise.
37322         (mem_ref_offset): Return an offset_int rather than a double_int.
37323         (build_type_attribute_qual_variant): Use wide_int interfaces.
37324         (type_hash_eq): Likewise
37325         (tree_int_cst_equal): Likewise.
37326         (tree_int_cst_lt): Delete.
37327         (tree_int_cst_compare): Likewise.
37328         (tree_fits_shwi_p): Use wide_int interfaces.
37329         (tree_fits_uhwi_p): Likewise.
37330         (tree_int_cst_sign_bit): Likewise.
37331         (tree_int_cst_sgn): Likewise.
37332         (tree_int_cst_min_precision): Take a signop rather than a bool.
37333         (simple_cst_equal): Use wide_int interfaces.
37334         (compare_tree_int): Likewise.
37335         (iterative_hash_expr): Likewise.
37336         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
37337         INT_CST_LT.
37338         (get_type_static_bounds): Use wide_int interfaces.
37339         (tree_int_cst_elt_check_failed): New.
37340         (build_common_tree_nodes): Reordered to set prec before filling in
37341         value.
37342         (int_cst_value): Check cst_and_fits_in_hwi.
37343         (widest_int_cst_value): Use wide_int interfaces.
37344         (upper_bound_in_type): Likewise.
37345         (lower_bound_in_type): Likewise.
37346         (num_ending_zeros): Likewise.
37347         (drop_tree_overflow): Likewise.
37348         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
37349         (gen_conditions_for_pow_cst_base): Likewise.
37350         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
37351         (group_case_labels_stmt): Use wide-int interfaces.
37352         (verify_gimple_assign_binary): Likewise.
37353         (print_loop): Likewise.
37354         * tree-chrec.c (tree_fold_binomial): Likewise.
37355         * tree-core.h (struct tree_base): Add int_length.
37356         (struct tree_int_cst): Change rep of value.
37357         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
37358         (dr_may_alias_p): Likewise.
37359         (max_stmt_executions_tree): Likewise.
37360         * tree.def (INTEGER_CST): Update comment.
37361         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
37362         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
37363         * tree-dump.c: Include wide-int.h and wide-int-print.h.
37364         (dequeue_and_dump): Use wide-int interfaces.
37365         * tree.h: Include wide-int.h.
37366         (NULL_TREE): Moved to earlier loc in file.
37367         (TREE_INT_CST_ELT_CHECK): New.
37368         (tree_int_cst_elt_check_failed): New.
37369         (TYPE_SIGN): New.
37370         (TREE_INT_CST): Delete.
37371         (TREE_INT_CST_LOW): Use wide-int interfaces.
37372         (TREE_INT_CST_HIGH): Delete.
37373         (TREE_INT_CST_NUNITS): New.
37374         (TREE_INT_CST_EXT_NUNITS): Likewise.
37375         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
37376         (TREE_INT_CST_ELT): Likewise.
37377         (INT_CST_LT): Delete.
37378         (tree_int_cst_elt_check): New (two forms).
37379         (type_code_size): Update comment.
37380         (make_int_cst_stat, make_int_cst): New.
37381         (tree_to_double_int): Delete.
37382         (double_int_fits_to_tree_p): Delete.
37383         (force_fit_type_double): Delete.
37384         (build_int_cstu): Replace with out-of-line function.
37385         (build_int_cst_wide): Delete.
37386         (tree_int_cst_lt): Define inline.
37387         (tree_int_cst_le): New.
37388         (tree_int_cst_compare): Define inline.
37389         (tree_int_cst_min_precision): Take a signop rather than a bool.
37390         (wi::int_traits <const_tree>): New.
37391         (wi::int_traits <tree>): New.
37392         (wi::extended_tree): New.
37393         (wi::int_traits <wi::extended_tree>): New.
37394         (wi::to_widest): New.
37395         (wi::to_offset): New.
37396         (wi::fits_to_tree_p): New.
37397         (wi::min_value): New.
37398         (wi::max_value): New.
37399         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
37400         (copy_tree_body_r): Likewise.
37401         * tree-object-size.c (compute_object_offset): Likewise.
37402         (addr_object_size): Likewise.
37403         * tree-predcom.c: Include wide-int-print.h.
37404         (struct dref_d): Change type of offset to widest_int.
37405         (dump_dref): Call wide-int printer.
37406         (aff_combination_dr_offset): Use wide-int interfaces.
37407         (determine_offset): Take a widest_int pointer rather than a
37408         double_int pointer.
37409         (split_data_refs_to_components): Use wide-int interfaces.
37410         (suitable_component_p): Likewise.
37411         (order_drefs): Likewise.
37412         (add_ref_to_chain): Likewise.
37413         (valid_initializer_p): Likewise.
37414         (determine_roots_comp): Likewise.
37415         * tree-pretty-print.c: Include wide-int-print.h.
37416         (dump_generic_node): Use wide-int interfaces.
37417         * tree-sra.c (sra_ipa_modify_expr): Likewise.
37418         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
37419         (move_fixed_address_to_symbol): Likewise.
37420         (move_hint_to_base): Likewise.
37421         (move_pointer_to_base): Likewise.
37422         (move_variant_to_index): Likewise.
37423         (most_expensive_mult_to_index): Likewise.
37424         (addr_to_parts): Likewise.
37425         (copy_ref_info): Likewise.
37426         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
37427         (indirect_refs_may_alias_p): Likewise.
37428         (stmt_kills_ref_p_1): Likewise.
37429         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
37430         * tree-ssa-ccp.c: Update comment at top of file.  Include
37431         wide-int-print.h.
37432         (struct prop_value_d): Change type of mask to widest_int.
37433         (extend_mask): New function.
37434         (dump_lattice_value): Use wide-int interfaces.
37435         (get_default_value): Likewise.
37436         (set_constant_value): Likewise.
37437         (set_value_varying): Likewise.
37438         (valid_lattice_transition): Likewise.
37439         (set_lattice_value): Likewise.
37440         (value_to_double_int): Delete.
37441         (value_to_wide_int): New.
37442         (get_value_from_alignment): Use wide-int interfaces.
37443         (get_value_for_expr): Likewise.
37444         (do_dbg_cnt): Likewise.
37445         (ccp_finalize): Likewise.
37446         (ccp_lattice_meet): Likewise.
37447         (bit_value_unop_1): Use widest_ints rather than double_ints.
37448         (bit_value_binop_1): Likewise.
37449         (bit_value_unop): Use wide-int interfaces.
37450         (bit_value_binop): Likewise.
37451         (bit_value_assume_aligned): Likewise.
37452         (evaluate_stmt): Likewise.
37453         (ccp_fold_stmt): Likewise.
37454         (visit_cond_stmt): Likewise.
37455         (ccp_visit_stmt): Likewise.
37456         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
37457         (constant_pointer_difference): Likewise.
37458         (associate_pointerplus): Likewise.
37459         (combine_conversions): Likewise.
37460         * tree-ssa-loop.h: Include wide-int.h.
37461         (struct tree_niter_desc): Change type of max to widest_int.
37462         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
37463         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
37464         (remove_redundant_iv_tests): Likewise.
37465         (canonicalize_loop_induction_variables): Likewise.
37466         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
37467         (constant_multiple_of): Take a widest_int pointer instead of
37468         a double_int pointer.
37469         (get_computation_aff): Use wide-int interfaces.
37470         (ptr_difference_cost): Likewise.
37471         (difference_cost): Likewise.
37472         (get_loop_invariant_expr_id): Likewise.
37473         (get_computation_cost_at): Likewise.
37474         (iv_elimination_compare_lt): Likewise.
37475         (may_eliminate_iv): Likewise.
37476         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
37477         instead of double_int.
37478         (max_loop_iterations): Likewise.
37479         (max_stmt_executions): Likewise.
37480         (estimated_stmt_executions): Likewise.
37481         * tree-ssa-loop-niter.c: Include wide-int-print.h.
37482         (split_to_var_and_offset): Use wide-int interfaces.
37483         (determine_value_range): Likewise.
37484         (bound_difference_of_offsetted_base): Likewise.
37485         (bounds_add): Take a widest_int instead of a double_int.
37486         (number_of_iterations_ne_max): Use wide-int interfaces.
37487         (number_of_iterations_ne): Likewise.
37488         (number_of_iterations_lt_to_ne): Likewise.
37489         (assert_loop_rolls_lt): Likewise.
37490         (number_of_iterations_lt): Likewise.
37491         (number_of_iterations_le): Likewise.
37492         (number_of_iterations_cond): Likewise.
37493         (number_of_iterations_exit): Likewise.
37494         (finite_loop_p): Likewise.
37495         (derive_constant_upper_bound_assign): Likewise.
37496         (derive_constant_upper_bound): Return a widest_int.
37497         (derive_constant_upper_bound_ops): Likewise.
37498         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
37499         (record_estimate): Take a widest_int rather than a double_int.
37500         (record_nonwrapping_iv): Use wide-int interfaces.
37501         (double_int_cmp): Delete.
37502         (wide_int_cmp): New.
37503         (bound_index): Take a widest_int rather than a double_int.
37504         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
37505         (maybe_lower_iteration_bound): Likewise.
37506         (estimate_numbers_of_iterations_loop): Likewise.
37507         (estimated_loop_iterations): Take a widest_int pointer than than
37508         a double_int pointer.
37509         (estimated_loop_iterations_int): Use wide-int interfaces.
37510         (max_loop_iterations): Take a widest_int pointer than than
37511         a double_int pointer.
37512         (max_loop_iterations_int): Use wide-int interfaces.
37513         (max_stmt_executions): Take a widest_int pointer than than
37514         a double_int pointer.
37515         (estimated_stmt_executions): Likewise.
37516         (n_of_executions_at_most): Use wide-int interfaces.
37517         (scev_probably_wraps_p): Likewise.
37518         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
37519         to real_to_integer.
37520         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
37521         interfaces.
37522         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
37523         double_ints.  Adjust for trailing_wide_ints <3> representation.
37524         (set_nonzero_bits): Likewise.
37525         (get_range_info): Return wide_ints rather than double_ints.
37526         Adjust for trailing_wide_ints <3> representation.
37527         (get_nonzero_bits): Likewise.
37528         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
37529         representation.
37530         * tree-ssanames.h (struct range_info_def): Replace min, max and
37531         nonzero_bits with a trailing_wide_ints <3>.
37532         (set_range_info): Use wide_int_refs rather than double_ints.
37533         (set_nonzero_bits): Likewise.
37534         (get_range_info): Return wide_ints rather than double_ints.
37535         (get_nonzero_bits): Likewise.
37536         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
37537         * tree-ssa-pre.c (phi_translate_1): Likewise.
37538         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
37539         (acceptable_pow_call): Likewise.
37540         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
37541         interfaces.
37542         (vn_reference_fold_indirect): Likewise.
37543         (vn_reference_maybe_forwprop_address): Likewise.
37544         (valueize_refs_1): Likewise.
37545         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
37546         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
37547         tree_int_cst_lt and tree_int_cst_le.
37548         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
37549         interfaces.
37550         (streamer_alloc_tree): Likewise.
37551         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
37552         (streamer_write_tree_header): Likewise.
37553         (streamer_write_integer_cst): Likewise.
37554         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
37555         (build_constructors): Likewise.
37556         (array_value_type): Likewise.
37557         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
37558         (vect_check_gather): Likewise.
37559         * tree-vect-generic.c (build_replicated_const): Likewise.
37560         (expand_vector_divmod): Likewise.
37561         * tree-vect-loop.c (vect_transform_loop): Likewise.
37562         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
37563         (vect_do_peeling_for_alignment): Likewise.
37564         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
37565         * tree-vrp.c: Include wide-int.h.
37566         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
37567         (extract_range_from_assert): Use wide-int interfaces.
37568         (vrp_int_const_binop): Likewise.
37569         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
37570         double_int pointers.
37571         (ranges_from_anti_range): Use wide-int interfaces.
37572         (quad_int_cmp): Delete.
37573         (quad_int_pair_sort): Likewise.
37574         (extract_range_from_binary_expr_1): Use wide-int interfaces.
37575         (extract_range_from_unary_expr_1): Likewise.
37576         (adjust_range_with_scev): Likewise.
37577         (masked_increment): Take and return wide_ints rather than double_ints.
37578         (register_edge_assert_for_2): Use wide-int interfaces.
37579         (check_array_ref): Likewise.
37580         (search_for_addr_array): Likewise.
37581         (maybe_set_nonzero_bits): Likewise.
37582         (union_ranges): Pass an integer of the correct type instead of
37583         using integer_one_node.
37584         (intersect_ranges): Likewise.
37585         (simplify_truth_ops_using_ranges): Likewise.
37586         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
37587         (range_fits_type_p): Likewise.
37588         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
37589         a bool.
37590         (simplify_conversion_using_ranges): Use wide-int interfaces.
37591         (simplify_float_conversion_using_ranges): Likewise.
37592         (vrp_finalize): Likewise.
37593         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
37594         (gimple_stringops_transform): Likewise.
37595         * varasm.c (decode_addr_const): Likewise.
37596         (const_hash_1): Likewise.
37597         (const_rtx_hash_1): Likewise
37598         (output_constant): Likewise.
37599         (array_size_for_constructor): Likewise.
37600         (output_constructor_regular_field): Likewise.
37601         (output_constructor_bitfield): Likewise.
37602         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
37603         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
37604         GENERATOR_FILEs.
37605         * gencheck.c: Define BITS_PER_UNIT.
37606         * wide-int.cc: New.
37607         * wide-int.h: New.
37608         * wide-int-print.cc: New.
37609         * wide-int-print.h: New.
37610
37611 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
37612
37613         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
37614
37615 2014-05-06  Richard Biener  <rguenther@suse.de>
37616
37617         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
37618         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
37619         (TODO_verify_all): Adjust.
37620         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
37621         TODO_verify_stmts and TODO_verify_rtl_sharing.
37622         * bb-reorder.c: Likewise.
37623         * cfgexpand.c: Likewise.
37624         * cprop.c: Likewise.
37625         * cse.c: Likewise.
37626         * function.c: Likewise.
37627         * fwprop.c: Likewise.
37628         * gcse.c: Likewise.
37629         * gimple-ssa-isolate-paths.c: Likewise.
37630         * gimple-ssa-strength-reduction.c: Likewise.
37631         * ipa-split.c: Likewise.
37632         * loop-init.c: Likewise.
37633         * loop-unroll.c: Likewise.
37634         * lower-subreg.c: Likewise.
37635         * modulo-sched.c: Likewise.
37636         * postreload-gcse.c: Likewise.
37637         * predict.c: Likewise.
37638         * recog.c: Likewise.
37639         * sched-rgn.c: Likewise.
37640         * store-motion.c: Likewise.
37641         * tracer.c: Likewise.
37642         * trans-mem.c: Likewise.
37643         * tree-call-cdce.c: Likewise.
37644         * tree-cfg.c: Likewise.
37645         * tree-cfgcleanup.c: Likewise.
37646         * tree-complex.c: Likewise.
37647         * tree-eh.c: Likewise.
37648         * tree-emutls.c: Likewise.
37649         * tree-if-conv.c: Likewise.
37650         * tree-into-ssa.c: Likewise.
37651         * tree-loop-distribution.c: Likewise.
37652         * tree-object-size.c: Likewise.
37653         * tree-parloops.c: Likewise.
37654         * tree-pass.h: Likewise.
37655         * tree-sra.c: Likewise.
37656         * tree-ssa-ccp.c: Likewise.
37657         * tree-ssa-copy.c: Likewise.
37658         * tree-ssa-copyrename.c: Likewise.
37659         * tree-ssa-dce.c: Likewise.
37660         * tree-ssa-dom.c: Likewise.
37661         * tree-ssa-dse.c: Likewise.
37662         * tree-ssa-forwprop.c: Likewise.
37663         * tree-ssa-ifcombine.c: Likewise.
37664         * tree-ssa-loop-ch.c: Likewise.
37665         * tree-ssa-loop-ivcanon.c: Likewise.
37666         * tree-ssa-loop.c: Likewise.
37667         * tree-ssa-math-opts.c: Likewise.
37668         * tree-ssa-phiopt.c: Likewise.
37669         * tree-ssa-phiprop.c: Likewise.
37670         * tree-ssa-pre.c: Likewise.
37671         * tree-ssa-reassoc.c: Likewise.
37672         * tree-ssa-sink.c: Likewise.
37673         * tree-ssa-strlen.c: Likewise.
37674         * tree-ssa-tail-merge.c: Likewise.
37675         * tree-ssa-uncprop.c: Likewise.
37676         * tree-switch-conversion.c: Likewise.
37677         * tree-tailcall.c: Likewise.
37678         * tree-vect-generic.c: Likewise.
37679         * tree-vectorizer.c: Likewise.
37680         * tree-vrp.c: Likewise.
37681         * tsan.c: Likewise.
37682         * var-tracking.c: Likewise.
37683         * bt-load.c: Likewise.
37684         * cfgcleanup.c: Likewise.
37685         * combine-stack-adj.c: Likewise.
37686         * combine.c: Likewise.
37687         * compare-elim.c: Likewise.
37688         * config/epiphany/resolve-sw-modes.c: Likewise.
37689         * config/i386/i386.c: Likewise.
37690         * config/mips/mips.c: Likewise.
37691         * config/s390/s390.c: Likewise.
37692         * config/sh/sh_treg_combine.cc: Likewise.
37693         * config/sparc/sparc.c: Likewise.
37694         * dce.c: Likewise.
37695         * dse.c: Likewise.
37696         * final.c: Likewise.
37697         * ifcvt.c: Likewise.
37698         * mode-switching.c: Likewise.
37699         * passes.c: Likewise.
37700         * postreload.c: Likewise.
37701         * ree.c: Likewise.
37702         * reg-stack.c: Likewise.
37703         * regcprop.c: Likewise.
37704         * regrename.c: Likewise.
37705         * web.c: Likewise.
37706
37707 2014-05-06  Richard Biener  <rguenther@suse.de>
37708
37709         PR middle-end/61070
37710         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
37711         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
37712
37713 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
37714
37715         PR ipa/60965
37716         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
37717
37718 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
37719             Tom de Vries  <tom@codesourcery.com>
37720
37721         * target.def (call_fusage_contains_non_callee_clobbers): New
37722         DEFHOOKPOD.
37723         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
37724         Hooks to @menu.
37725         (@node Miscellaneous Register Hooks): New node.
37726         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
37727         * doc/tm.texi: Regenerate.
37728
37729 2014-05-05  Marek Polacek  <polacek@redhat.com>
37730
37731         PR driver/61065
37732         * opts.c (common_handle_option): Call error_at instead of warning_at.
37733
37734 2014-05-05  Richard Biener  <rguenther@suse.de>
37735
37736         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
37737         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
37738         under the TODO_verify_il umbrella.
37739
37740 2014-05-05  Richard Biener  <rguenther@suse.de>
37741
37742         * passes.c (execute_function_todo): Move TODO_verify_flow under
37743         the TODO_verify_ul umbrella.
37744
37745 2014-05-05  Richard Biener  <rguenther@suse.de>
37746
37747         PR middle-end/61010
37748         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
37749         X & CST away from a CST that is the mask of a mode.
37750
37751 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
37752
37753         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
37754         int argument to enum machine_mode.
37755         (picochip_class_max_nregs): Ditto.
37756         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
37757         (picochip_class_max_nregs): Ditto.
37758
37759 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37760
37761         * target.def: Add new target hook.
37762         * doc/tm.texi: Regenerate.
37763         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
37764         * targhooks.c (default_keep_leaf_when_profiled): New function.
37765
37766         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
37767         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
37768
37769 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
37770
37771         PR tree-optimization/60363
37772         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
37773         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
37774         (update_destination_phis): New parameter.
37775         (create_edge_and_update_destination_phis): Ditto.
37776         (ssa_fix_duplicate_block_edges): Pass new arguments.
37777         (thread_single_edge): Ditto.
37778
37779 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
37780
37781         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
37782         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
37783         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
37784         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
37785         Use RS6000_BTM_HARD_FLOAT.
37786         (BU_MISC_2): Likewise.
37787         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
37788         RS6000_BTM_HARD_FLOAT.
37789         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
37790         is explicitly used.
37791         (rs6000_invalid_builtin): Add hard floating builtin support.
37792         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
37793         hard float builtins.
37794         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
37795
37796 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
37797
37798         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
37799         Add missing function* argument.
37800
37801 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
37802
37803         * lra-constraints.c (valid_address_p): Move earlier in file.
37804         Add a constraint argument to the address_info version.
37805         (satisfies_memory_constraint_p): New function.
37806         (satisfies_address_constraint_p): Likewise.
37807         (process_alt_operands, curr_insn_transform): Use them.
37808         (process_address): Pass the constraint to valid_address_p when
37809         checking address operands.
37810
37811 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
37812
37813         * config/mips/mips.c (mips_isa_rev): New variable.
37814         (mips_set_architecture): Set it.
37815         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
37816         from mips_isa_rev.
37817         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
37818         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
37819         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
37820         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
37821         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
37822         conditions in terms of mips_isa_rev.
37823         (mips_isa_rev): Declare.
37824
37825 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
37826
37827         * config/sh/sh-mem.cc: Use tabs instead of spaces.
37828         (prob_unlikely, prob_likely): Make variables const.
37829
37830 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
37831
37832         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
37833
37834 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
37835
37836         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
37837
37838 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
37839
37840         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
37841         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
37842         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
37843         functions.
37844         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
37845         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
37846         sh_pass_in_reg_p.
37847         Replace usage of ROUND_REG with sh_round_reg.
37848         Use CEIL instead of ROUND_ADVANCE.
37849
37850 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
37851
37852         PR target/61026
37853         * config/sh/sh.c: Include stdlib headers before everything else.
37854
37855 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
37856
37857         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
37858         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
37859         (gimplify_adjust_omp_clauses): Simd region is never
37860         directly nested in combined parallel.  Instead, for linear
37861         with copyin/copyout, if in combined for simd loop, make decl
37862         firstprivate/lastprivate on OMP_FOR.
37863         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
37864         expand_omp_for_static_chunk): When setting endvar, also set
37865         fd->loop.v to the same value.
37866
37867 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
37868
37869         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
37870
37871 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
37872
37873         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
37874         expression.
37875
37876 2014-05-02  Marek Polacek  <polacek@redhat.com>
37877
37878         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
37879
37880 2014-05-02  Kito Cheng  <kito@0xlab.org>
37881
37882         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
37883         to a C expression marco.
37884         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
37885         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
37886         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
37887         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
37888         HONOR_REG_ALLOC_ORDER.
37889         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
37890
37891 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
37892
37893         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
37894
37895 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
37896
37897         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
37898
37899 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
37900
37901         * tree-if-conv.c (is_cond_scalar_reduction): New function.
37902         (convert_scalar_cond_reduction): Likewise.
37903         (predicate_scalar_phi): Add recognition and transformation
37904         of simple conditioanl reduction to be vectorizable.
37905
37906 2014-05-01  Marek Polacek  <polacek@redhat.com>
37907
37908         PR c/43245
37909         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
37910
37911 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
37912
37913         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
37914         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
37915         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
37916         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
37917         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
37918         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
37919         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
37920         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
37921
37922 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
37923
37924         * config/arc/arc.opt (mlra): Move comment above option name
37925         to avoid mis-parsing as language options.
37926
37927 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37928
37929         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
37930         * config/sol2.h: ... here.
37931         * config/sol2-10.h: Remove.
37932
37933         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
37934         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
37935         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
37936         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
37937         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
37938         * config/sol2.h: ... here.
37939         (SECTION_NAME_FORMAT): Don't redefine.
37940         (STARTFILE_ARCH32_SPEC): Rename to ...
37941         (STARTFILE_ARCH_SPEC): ... this.
37942         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
37943         * config/sparc/sol2.h: ... here.
37944         (SECTION_NAME_FORMAT): Don't undef.
37945         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
37946         (SUBTARGET_EXTRA_SPECS): Remove.
37947         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
37948
37949         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
37950         (MD_STARTFILE_PREFIX): Remove.
37951         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
37952         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
37953         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
37954         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
37955         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
37956         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
37957         * config/i386/sol2.h: ... here.
37958         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
37959         * config/i386/sol2-bi.h: Remove.
37960         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
37961         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
37962
37963         * config/i386/t-sol2-64: Rename to ...
37964         * config/i386/t-sol2: ... this.
37965         * config/sparc/t-sol2-64: Rename to ...
37966         * config/sparc/t-sol2: ... this.
37967
37968         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
37969         sol2_tm_file_head, sol2_tm_file_tail.
37970         Include ${cpu_type}/sol2.h before sol2.h.
37971         Remove sol2-10.h.
37972         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
37973         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
37974         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
37975         Reflect i386/t-sol2-64 renaming.
37976         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
37977         Reflect sparc/t-sol2-64 renaming.
37978
37979 2014-04-30  Richard Biener  <rguenther@suse.de>
37980
37981         * passes.c (execute_function_todo): Move TODO_verify_stmts
37982         and TODO_verify_ssa under the TODO_verify_il umbrella.
37983         * tree-ssa.h (verify_ssa): Adjust prototype.
37984         * tree-ssa.c (verify_ssa): Add parameter to tell whether
37985         we should verify SSA operands.
37986         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
37987         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
37988         whether we should verify whether not throwing stmts have EH info.
37989         * graphite-scop-detection.c (create_sese_edges): Adjust.
37990         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
37991         * tree-eh.c (lower_try_finally_switch): Do not add the
37992         default case label twice.
37993
37994 2014-04-30  Marek Polacek  <polacek@redhat.com>
37995
37996         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
37997         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
37998         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
37999         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
38000
38001 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
38002
38003         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
38004         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
38005         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
38006         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
38007         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
38008         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
38009         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
38010         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
38011
38012 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
38013
38014         * tree-cfg.c (dump_function_to_file): Dump the return type of
38015         functions, in a line to itself before the function body, mimicking
38016         the layout of a C function.
38017
38018 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
38019
38020         PR tree-optimization/60971
38021         * tree-tailcall.c (process_assignment): Reject conversions which
38022         reduce precision.
38023
38024 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
38025
38026         * calls.c (initialize_argument_information): Always treat
38027         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
38028         (expand_call): Likewise.
38029         (emit_library_call_calue_1): Likewise.
38030         * expr.c (PUSH_ARGS_REVERSED): Do not define.
38031         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
38032         code accordingly.
38033
38034 2014-04-29  Nick Clifton  <nickc@redhat.com>
38035
38036         * config/msp430/msp430.md (umulsidi): Fix typo.
38037         (mulhisi3): Enable even inside interrupt handlers.
38038         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
38039         bigger return address pushed in large mode.
38040
38041 2014-04-29  Nick Clifton  <nickc@redhat.com>
38042
38043         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
38044         (arc_init_reg_tables): Use a machine_mode enum to iterate over
38045         available modes.
38046         * config/m32r/m32r.c (init_reg_tables): Likewise.
38047         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
38048         enum to hold the modes.
38049
38050 2014-04-29  Richard Biener  <rguenther@suse.de>
38051
38052         * dominance.c (free_dominance_info): Add overload with
38053         function parameter.
38054         (dom_info_state): Likewise.
38055         (dom_info_available_p): Likewise.
38056         * basic-block.h (free_dominance_info, dom_info_state,
38057         dom_info_available_p): Declare overloads.
38058         * passes.c (execute_function_todo): Verify that verifiers
38059         don't change dominator info state.  Drop dominator info
38060         for IPA pass invocations.
38061         * cgraph.c (release_function_body): Restore asserts that
38062         dominator information is released.
38063
38064 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
38065
38066         * doc/invoke.texi: Fix typo.
38067         * tree-vrp.c: Fix typos.
38068         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
38069
38070 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38071
38072         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
38073
38074 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
38075
38076         * config/aarch64/aarch64-builtins.c
38077         (aarch64_types_storestruct_lane_qualifiers): New.
38078         (TYPES_STORESTRUCT_LANE): Likewise.
38079         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
38080         (st3_lane): Likewise.
38081         (st4_lane): Likewise.
38082         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
38083         (vec_store_lanesci_lane<mode>): Likewise.
38084         (vec_store_lanesxi_lane<mode>): Likewise.
38085         (aarch64_st2_lane<VQ:mode>): Likewise.
38086         (aarch64_st3_lane<VQ:mode>): Likewise.
38087         (aarch64_st4_lane<VQ:mode>): Likewise.
38088         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
38089         * config/aarch64/arm_neon.h
38090         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
38091         use new macro arguments.
38092         (__ST3_LANE_FUNC): Likewise.
38093         (__ST4_LANE_FUNC): Likewise.
38094         * config/aarch64/iterators.md (V_TWO_ELEM): New.
38095         (V_THREE_ELEM): Likewise.
38096         (V_FOUR_ELEM): Likewise.
38097
38098 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
38099
38100         * doc/gimple.texi: Replace the description of the now-defunct
38101         union gimple_statement_d with a diagram showing the
38102         gimple_statement_base class hierarchy and its relationships to
38103         the GSS_ and GIMPLE_ enums.
38104
38105 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
38106
38107         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
38108         * config/aarch64/aarch64.c
38109         (aarch64_cannot_change_mode_class): Weaken conditions.
38110         (aarch64_modes_tieable_p): New.
38111         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
38112
38113 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
38114
38115         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
38116         (loadsync_<mode>): Change mode.
38117         (load_quadpti, store_quadpti): New.
38118         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
38119         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
38120
38121 2014-04-28  Martin Jambor  <mjambor@suse.cz>
38122
38123         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
38124         same alias type as the original statement.
38125         (subreplacement_assignment_data): New type.
38126         (handle_unscalarized_data_in_subtree): New type of parameter,
38127         generate new memory accesses with same alias type as the original
38128         statement.
38129         (load_assign_lhs_subreplacements): Likewise.
38130         (sra_modify_constructor_assign): Generate new memory accesses with
38131         same alias type as the original statement.
38132
38133 2014-04-28  Richard Biener  <rguenther@suse.de>
38134
38135         * tree-pass.h (TODO_verify_il): Define.
38136         (TODO_verify_all): Complete properly.
38137         * passes.c (execute_function_todo): Move existing loop-closed
38138         SSA verification under TODO_verify_il.
38139         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
38140         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
38141         Fix tree sharing issue.
38142
38143 2014-04-28  Richard Biener  <rguenther@suse.de>
38144
38145         PR middle-end/60092
38146         * builtins.def (DEF_C11_BUILTIN): Add.
38147         (BUILT_IN_ALIGNED_ALLOC): Likewise.
38148         * coretypes.h (enum function_class): Add function_c11_misc.
38149         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
38150         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
38151         (call_may_clobber_ref_p_1): Likewise.
38152         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
38153         (mark_all_reaching_defs_necessary_1): Likewise.
38154         (propagate_necessity): Likewise.
38155         (eliminate_unnecessary_stmts): Likewise.
38156         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
38157
38158 2014-04-28  Richard Biener  <rguenther@suse.de>
38159
38160         * tree-vrp.c (vrp_var_may_overflow): Remove.
38161         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
38162         with overflow immediately bump to one before that value and
38163         let iteration figure out overflow status.
38164
38165 2014-04-28  Richard Biener  <rguenther@suse.de>
38166
38167         * configure.ac: Do valgrind header checks unconditionally.
38168         Add --enable-valgrind-annotations.
38169         * system.h: Guard valgrind header inclusion with
38170         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
38171         * alloc-pool.c (pool_alloc, pool_free): Use
38172         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
38173         to guard possibly dead code.
38174         * config.in: Regenerated.
38175         * configure: Likewise.
38176
38177 2014-04-28  Jeff Law  <law@redhat.com>
38178
38179         PR tree-optimization/60902
38180         * tree-ssa-threadedge.c
38181         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
38182         over real defs when invalidating outputs from statements that do not
38183         produce useful outputs for threading.
38184
38185 2014-04-28  Richard Biener  <rguenther@suse.de>
38186
38187         PR tree-optimization/60979
38188         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
38189         SCOPs that end in a block with a successor with abnormal
38190         predecessors.
38191
38192 2014-04-28  Richard Biener  <rguenther@suse.de>
38193
38194         * tree-pass.h (execute_pass_list): Adjust prototype.
38195         * passes.c (pass_manager::execute_early_local_passes): Adjust.
38196         (do_per_function): Change callback signature, push all actual
38197         work to the callbals.
38198         (do_per_function_toporder): Likewise.
38199         (execute_function_dump): Adjust.
38200         (execute_function_todo): Likewise.
38201         (clear_last_verified): Likewise.
38202         (verify_curr_properties): Likewise.
38203         (update_properties_after_pass): Likewise.
38204         (execute_pass_list_1): Split out from ...
38205         (execute_pass_list): ... here.  Adjust.
38206         (execute_ipa_pass_list): Likewise.
38207         * cgraphunit.c (cgraph_add_new_function): Adjust.
38208         (analyze_function): Likewise.
38209         (expand_function): Likewise.
38210         * cgraph.c (release_function_body): Free dominance info
38211         here instead of asserting it was magically freed elsewhere.
38212
38213 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
38214
38215         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
38216         * configure: Regenerate.
38217         * config/sparc/sparc.opt (muser-mode): New option.
38218         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
38219         for LEON3.
38220         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
38221         * doc/invoke.texi (SPARC options): Document -muser-mode.
38222
38223 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
38224
38225         * cselib.c (find_slot_memmode): Delete.
38226         (cselib_hasher): Change compare_type to a struct.
38227         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
38228         constants.
38229         (preserve_constants_and_equivs): Adjust for new compare_type.
38230         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
38231         (wrap_constant): Delete.
38232         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
38233
38234 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
38235
38236         * doc/install.texi (Building with profile feedback): Remove
38237         outdated sentence.
38238
38239 2014-04-26  Tom de Vries  <tom@codesourcery.com>
38240
38241         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
38242         array accesses.
38243
38244 2014-04-25  Cary Coutant  <ccoutant@google.com>
38245
38246         PR debug/60929
38247         * dwarf2out.c (should_move_die_to_comdat): A type definition
38248         can contain a subprogram definition, but don't move it to a
38249         comdat unit.
38250         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
38251         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
38252         from original DIE.
38253         (clone_tree_hash): Rename to...
38254         (clone_tree_partial): ...this; change callers.  Copy
38255         DW_TAG_subprogram DIEs as declarations.
38256         (copy_decls_walk): Don't copy children of a declaration into a
38257         type unit.
38258
38259 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
38260
38261         PR target/60969
38262         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
38263         alternative 12.
38264
38265 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
38266
38267         * config/arm/predicates.md (call_insn_operand): Add long_call check.
38268         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
38269         reg for long_call.
38270         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
38271         restriction.
38272
38273 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38274
38275         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
38276
38277 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38278
38279         PR tree-optimization/60930
38280         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
38281         creating a multiply candidate by folding two constant
38282         multiplicands when the result overflows.
38283
38284 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
38285
38286         PR tree-optimization/60960
38287         * tree-vect-generic.c (expand_vector_operation): Only call
38288         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
38289
38290 2014-04-25  Tom de Vries  <tom@codesourcery.com>
38291
38292         * expr.c (clobber_reg_mode): New function.
38293         * expr.h (clobber_reg): New function.
38294
38295 2014-04-25  Tom de Vries  <tom@codesourcery.com>
38296
38297         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
38298         clobbers.
38299
38300 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
38301             Tom de Vries  <tom@codesourcery.com>
38302
38303         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
38304         handle.
38305         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
38306         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
38307         new argument to find_all_hard_reg_sets call.
38308
38309 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38310
38311         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
38312         Use HOST_WIDE_INT_C for mask literal.
38313         (aarch_rev16_shleft_mask_imm_p): Likewise.
38314
38315 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
38316
38317         PR target/60941
38318         * config/sparc/sparc.md (ashlsi3_extend): Delete.
38319
38320 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
38321
38322         PR preprocessor/56540
38323         * config/i386/i386-c.c (ix86_target_macros): Define
38324         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
38325
38326 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38327
38328         * configure.ac (tga_func): Remove.
38329         (LIB_TLS_SPEC): Remove.
38330         * configure: Regenerate.
38331         * config.in: Regenerate.
38332         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
38333
38334 2014-04-25  Richard Biener  <rguenther@suse.de>
38335
38336         PR ipa/60912
38337         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
38338         call stmt use/clobber sets during stmt walk instead of
38339         walking the possibly incomplete set of caller edges.
38340
38341 2014-04-25  Richard Biener  <rguenther@suse.de>
38342
38343         PR ipa/60911
38344         * passes.c (apply_ipa_transforms): Inline into only caller ...
38345         (execute_one_pass): ... here.  Properly bring in function
38346         bodies for nodes we want to apply IPA transforms to.
38347
38348 2014-04-24  Cong Hou  <congh@google.com>
38349
38350         PR tree-optimization/60896
38351         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
38352         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
38353         (vect_mark_pattern_stmts): Set the def type of all statements in
38354         PATTERN_DEF_SEQ as vect_internal_def.
38355
38356 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
38357
38358         * doc/extend.texi (PowerPC Built-in Functions): Document new
38359         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
38360         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
38361
38362         * config/rs6000/predicates.md (const_0_to_3_operand): New
38363         predicate to match 0..3 integer constants.
38364
38365         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
38366         to support adding miscellaneous builtin functions.
38367         (BU_DFP_MISC_2): Likewise.
38368         (BU_P7_MISC_1): Likewise.
38369         (BU_P7_MISC_2): Likewise.
38370         (BU_P8V_MISC_3): Likewise.
38371         (BU_MISC_1): Likewise.
38372         (BU_MISC_2): Likewise.
38373         (DIVWE): Add extended divide builtin functions.
38374         (DIVWEO): Likewise.
38375         (DIVWEU): Likewise.
38376         (DIVWEUO): Likewise.
38377         (DIVDE): Likewise.
38378         (DIVDEO): Likewise.
38379         (DIVDEU): Likewise.
38380         (DIVDEUO): Likewise.
38381         (DXEX): Add decimal floating-point builtin functions.
38382         (DXEXQ): Likewise.
38383         (DDEDPD): Likewise.
38384         (DDEDPDQ): Likewise.
38385         (DENBCD): Likewise.
38386         (DENBCDQ): Likewise.
38387         (DIEX): Likewise.
38388         (DIEXQ): Likewise.
38389         (DSCLI): Likewise.
38390         (DSCLIQ): Likewise.
38391         (DSCRI): Likewise.
38392         (DSCRIQ): Likewise.
38393         (CDTBCD): Add new BCD builtin functions.
38394         (CBCDTD): Likewise.
38395         (ADDG6S): Likewise.
38396         (BCDADD): Likewise.
38397         (BCDADD_LT): Likewise.
38398         (BCDADD_EQ): Likewise.
38399         (BCDADD_GT): Likewise.
38400         (BCDADD_OV): Likewise.
38401         (BCDSUB): Likewise.
38402         (BCDSUB_LT): Likewise.
38403         (BCDSUB_EQ): Likewise.
38404         (BCDSUB_GT): Likewise.
38405         (BCDSUB_OV): Likewise.
38406         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
38407         (UNPACK_TD): Likewise.
38408         (PACK_TF): Likewise.
38409         (UNPACK_TF): Likewise.
38410         (UNPACK_TF_0): Likewise.
38411         (UNPACK_TF_1): Likewise.
38412         (PACK_V1TI): Likewise.
38413         (UNPACK_V1TI): Likewise.
38414
38415         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
38416         support for decimal floating point builtin functions.
38417         (rs6000_expand_ternop_builtin): Add checks for the new builtin
38418         functions that take constant arguments.
38419         (rs6000_invalid_builtin): Add decimal floating point builtin support.
38420         (rs6000_init_builtins): Setup long double, _Decimal64, and
38421         _Decimal128 types for new builtin functions.
38422         (builtin_function_type): Set the unsigned flags appropriately for
38423         the new builtin functions.
38424         (rs6000_opt_masks): Add support for decimal floating point builtin
38425         functions.
38426
38427         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
38428         floating point builtin functions.
38429         (RS6000_BTM_COMMON): Likewise.
38430         (RS6000_BTI_long_double): Likewise.
38431         (RS6000_BTI_dfloat64): Likewise.
38432         (RS6000_BTI_dfloat128): Likewise.
38433         (long_double_type_internal_node): Likewise.
38434         (dfloat64_type_internal_node): Likewise.
38435         (dfloat128_type_internal_node): Likewise.
38436
38437         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
38438         2.07 bcd arithmetic instructions.
38439         (UNSPEC_BCDSUB): Likewise.
38440         (UNSPEC_BCD_OVERFLOW): Likewise.
38441         (UNSPEC_BCD_ADD_SUB): Likewise.
38442         (bcd_add_sub): Likewise.
38443         (BCD_TEST): Likewise.
38444         (bcd<bcd_add_sub>): Likewise.
38445         (bcd<bcd_add_sub>_test): Likewise.
38446         (bcd<bcd_add_sub>_test2): Likewise.
38447         (bcd<bcd_add_sub>_<code>): Likewise.
38448         (peephole2 for combined bcd ops): Likewise.
38449
38450         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
38451         decimal floating point builtin functions.
38452         (UNSPEC_DENBCD): Likewise.
38453         (UNSPEC_DXEX): Likewise.
38454         (UNSPEC_DIEX): Likewise.
38455         (UNSPEC_DSCLI): Likewise.
38456         (UNSPEC_DSCRI): Likewise.
38457         (D64_D128): Likewise.
38458         (dfp_suffix): Likewise.
38459         (dfp_ddedpd_<mode>): Likewise.
38460         (dfp_denbcd_<mode>): Likewise.
38461         (dfp_dxex_<mode>): Likewise.
38462         (dfp_diex_<mode>): Likewise.
38463         (dfp_dscli_<mode>): Likewise.
38464         (dfp_dscri_<mode>): Likewise.
38465
38466         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
38467         builtin functions.
38468         (UNSPEC_CDTBCD): Likewise.
38469         (UNSPEC_CBCDTD): Likewise.
38470         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
38471         (UNSPEC_DIVEO): Likewise.
38472         (UNSPEC_DIVEU): Likewise.
38473         (UNSPEC_DIVEUO): Likewise.
38474         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
38475         pack/unpack 128-bit types.
38476         (UNSPEC_PACK_128BIT): Likewise.
38477         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
38478         (udiv<mode>3): Use idiv_ldiv mode attribute.
38479         (div<mode>3): Likewise.
38480         (addg6s): Add new BCD builtin functions.
38481         (cdtbcd): Likewise.
38482         (cbcdtd): Likewise.
38483         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
38484         (div_extend): Likewise.
38485         (div<div_extend>_<mode>"): Likewise.
38486         (FP128_64): Add support for new builtin functions to pack/unpack
38487         128-bit types.
38488         (unpack<mode>): Likewise.
38489         (unpacktf_0): Likewise.
38490         (unpacktf_1): Likewise.
38491         (unpack<mode>_dm): Likewise.
38492         (unpack<mode>_nodm): Likewise.
38493         (pack<mode>): Likewise.
38494         (unpackv1ti): Likewise.
38495         (packv1ti): Likewise.
38496
38497 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
38498
38499         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
38500         is disabled.
38501
38502 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
38503
38504         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
38505         * gimplify.c (omp_is_private): Change last argument's type to int.
38506         Only diagnose lastprivate if the simd argument is 1, only diagnose
38507         linear if the simd argument is 2.
38508         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
38509         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
38510         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
38511         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
38512         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
38513         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
38514         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
38515         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
38516         * tree-nested.c (convert_nonlocal_omp_clauses,
38517         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
38518
38519 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
38520
38521         PR target/60822
38522         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
38523         operand 1.
38524
38525 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
38526
38527         * flag-types.h (enum ivar_visibility): Add.
38528
38529 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
38530
38531         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
38532         function * argument.
38533
38534 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
38535
38536         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
38537
38538 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
38539             Tom de Vries  <tom@codesourcery.com>
38540
38541         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
38542         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
38543         reg-note.
38544         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
38545         * emit-rtl.c (try_split): Same.
38546
38547 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
38548             Tom de Vries  <tom@codesourcery.com>
38549
38550         * common.opt (fuse-caller-save): New option.
38551
38552 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
38553
38554         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
38555         elements for big-endian.
38556
38557 2014-04-24  Richard Biener  <rguenther@suse.de>
38558
38559         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
38560         during TER and instead use the sepops interface for expanding
38561         non-GIMPLE_SINGLE_RHS.
38562
38563 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38564
38565         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
38566         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
38567
38568 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38569
38570         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
38571         assembler 64-bit option.
38572         * configure: Regenerate.
38573
38574 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38575
38576         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
38577         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
38578         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
38579         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
38580         (TARGET_CRYPTO): Take TARGET_SIMD into account.
38581
38582 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38583
38584         * config/aarch64/aarch64-builtins.c
38585         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
38586         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
38587         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
38588         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
38589         builtins.
38590         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
38591         (Vrevsuff): New mode attribute.
38592
38593 2014-04-24  Terry Guo  <terry.guo@arm.com>
38594
38595         * config/arm/arm.h (machine_function): Define variable
38596         after_arm_reorg here.
38597         * config/arm/arm.c (after_arm_reorg): Remove the definition.
38598         (arm_split_constant): Update the way to access variable
38599         after_arm_reorg.
38600         (arm_reorg): Ditto.
38601         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
38602
38603 2014-04-23  Tom de Vries  <tom@codesourcery.com>
38604
38605         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
38606
38607 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
38608
38609         * is-a.h: Update comments to reflect the following changes to the
38610         "pointerness" of the API, making the template parameter match the
38611         return type, allowing use of is-a.h with typedefs of pointers.
38612         (is_a_helper::cast): Return a T rather then a pointer to a T, so
38613         that the return type matches the parameter to the is_a_helper.
38614         (as_a): Likewise.
38615         (dyn_cast): Likewise.
38616
38617         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
38618         pointer from the is-a.h API.
38619
38620         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
38621         (is_a_helper <cgraph_node *>::test): ...this, matching change to
38622         is-a.h API.
38623         (is_a_helper <varpool_node>::test): Likewise, convert to...
38624         (is_a_helper <varpool_node *>::test): ...this.
38625
38626         (varpool_first_variable): Update for removal of implicit pointer
38627         from the is-a.h API.
38628         (varpool_next_variable): Likewise.
38629         (varpool_first_static_initializer): Likewise.
38630         (varpool_next_static_initializer): Likewise.
38631         (varpool_first_defined_variable): Likewise.
38632         (varpool_next_defined_variable): Likewise.
38633         (cgraph_first_defined_function): Likewise.
38634         (cgraph_next_defined_function): Likewise.
38635         (cgraph_first_function): Likewise.
38636         (cgraph_next_function): Likewise.
38637         (cgraph_first_function_with_gimple_body): Likewise.
38638         (cgraph_next_function_with_gimple_body): Likewise.
38639         (cgraph_alias_target): Likewise.
38640         (varpool_alias_target): Likewise.
38641         (cgraph_function_or_thunk_node): Likewise.
38642         (varpool_variable_node): Likewise.
38643         (symtab_real_symbol_p): Likewise.
38644         * cgraphunit.c (referred_to_p): Likewise.
38645         (analyze_functions): Likewise.
38646         (handle_alias_pairs): Likewise.
38647         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
38648         * gimple-ssa.h (gimple_vuse_op): Likewise.
38649         (gimple_vdef_op): Likewise.
38650         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
38651         * gimple.c (gimple_build_asm_1): Likewise.
38652         (gimple_build_try): Likewise.
38653         (gimple_build_resx): Likewise.
38654         (gimple_build_eh_dispatch): Likewise.
38655         (gimple_build_omp_for): Likewise.
38656         (gimple_omp_for_set_clauses): Likewise.
38657
38658         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
38659         (is_a_helper <gimple_statement_asm *>::test): ...this.
38660         (is_a_helper <gimple_statement_bind>::test): Convert to...
38661         (is_a_helper <gimple_statement_bind *>::test): ...this.
38662         (is_a_helper <gimple_statement_call>::test): Convert to...
38663         (is_a_helper <gimple_statement_call *>::test): ...this.
38664         (is_a_helper <gimple_statement_catch>::test): Convert to...
38665         (is_a_helper <gimple_statement_catch *>::test): ...this.
38666         (is_a_helper <gimple_statement_resx>::test): Convert to...
38667         (is_a_helper <gimple_statement_resx *>::test): ...this.
38668         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
38669         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
38670         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
38671         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
38672         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
38673         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
38674         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
38675         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
38676         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
38677         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
38678         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
38679         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
38680         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
38681         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
38682         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
38683         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
38684         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
38685         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
38686         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
38687         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
38688         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
38689         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
38690         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
38691         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
38692         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
38693         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
38694         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
38695         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
38696         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
38697         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
38698         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
38699         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
38700         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
38701         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
38702         (is_a_helper <gimple_statement_phi>::test): Convert to...
38703         (is_a_helper <gimple_statement_phi *>::test): ...this.
38704         (is_a_helper <gimple_statement_transaction>::test): Convert to...
38705         (is_a_helper <gimple_statement_transaction *>::test): ...this.
38706         (is_a_helper <gimple_statement_try>::test): Convert to...
38707         (is_a_helper <gimple_statement_try *>::test): ...this.
38708         (is_a_helper <gimple_statement_wce>::test): Convert to...
38709         (is_a_helper <gimple_statement_wce *>::test): ...this.
38710         (is_a_helper <const gimple_statement_asm>::test): Convert to...
38711         (is_a_helper <const gimple_statement_asm *>::test): ...this.
38712         (is_a_helper <const gimple_statement_bind>::test): Convert to...
38713         (is_a_helper <const gimple_statement_bind *>::test): ...this.
38714         (is_a_helper <const gimple_statement_call>::test): Convert to...
38715         (is_a_helper <const gimple_statement_call *>::test): ...this.
38716         (is_a_helper <const gimple_statement_catch>::test): Convert to...
38717         (is_a_helper <const gimple_statement_catch *>::test): ...this.
38718         (is_a_helper <const gimple_statement_resx>::test): Convert to...
38719         (is_a_helper <const gimple_statement_resx *>::test): ...this.
38720         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
38721         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
38722         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
38723         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
38724         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
38725         Convert to...
38726         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
38727         ...this.
38728         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
38729         Convert to...
38730         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
38731         ...this.
38732         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
38733         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
38734         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
38735         to...
38736         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
38737         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
38738         to...
38739         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
38740         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
38741         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
38742         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
38743         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
38744         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
38745         to...
38746         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
38747         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
38748         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
38749         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
38750         to...
38751         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
38752         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
38753         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
38754         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
38755         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
38756         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
38757         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
38758         (is_a_helper <const gimple_statement_phi>::test): Convert to...
38759         (is_a_helper <const gimple_statement_phi *>::test): ...this.
38760         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
38761         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
38762         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
38763         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
38764         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
38765         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
38766         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
38767         to...
38768         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
38769         ...this.
38770         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
38771         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
38772
38773         (gimple_use_ops): Update for removal of implicit pointer from the
38774         is-a.h API.
38775         (gimple_set_use_ops): Likewise.
38776         (gimple_vuse): Likewise.
38777         (gimple_vdef): Likewise.
38778         (gimple_vuse_ptr): Likewise.
38779         (gimple_vdef_ptr): Likewise.
38780         (gimple_set_vuse): Likewise.
38781         (gimple_set_vdef): Likewise.
38782         (gimple_omp_return_set_lhs): Likewise.
38783         (gimple_omp_return_lhs): Likewise.
38784         (gimple_omp_return_lhs_ptr): Likewise.
38785         (gimple_call_fntype): Likewise.
38786         (gimple_call_set_fntype): Likewise.
38787         (gimple_call_set_internal_fn): Likewise.
38788         (gimple_call_use_set): Likewise.
38789         (gimple_call_clobber_set): Likewise.
38790         (gimple_bind_vars): Likewise.
38791         (gimple_bind_set_vars): Likewise.
38792         (gimple_bind_body_ptr): Likewise.
38793         (gimple_bind_set_body): Likewise.
38794         (gimple_bind_add_stmt): Likewise.
38795         (gimple_bind_block): Likewise.
38796         (gimple_bind_set_block): Likewise.
38797         (gimple_asm_ninputs): Likewise.
38798         (gimple_asm_noutputs): Likewise.
38799         (gimple_asm_nclobbers): Likewise.
38800         (gimple_asm_nlabels): Likewise.
38801         (gimple_asm_input_op): Likewise.
38802         (gimple_asm_input_op_ptr): Likewise.
38803         (gimple_asm_output_op): Likewise.
38804         (gimple_asm_output_op_ptr): Likewise.
38805         (gimple_asm_set_output_op): Likewise.
38806         (gimple_asm_clobber_op): Likewise.
38807         (gimple_asm_set_clobber_op): Likewise.
38808         (gimple_asm_label_op): Likewise.
38809         (gimple_asm_set_label_op): Likewise.
38810         (gimple_asm_string): Likewise.
38811         (gimple_catch_types): Likewise.
38812         (gimple_catch_types_ptr): Likewise.
38813         (gimple_catch_handler_ptr): Likewise.
38814         (gimple_catch_set_types): Likewise.
38815         (gimple_catch_set_handler): Likewise.
38816         (gimple_eh_filter_types): Likewise.
38817         (gimple_eh_filter_types_ptr): Likewise.
38818         (gimple_eh_filter_failure_ptr): Likewise.
38819         (gimple_eh_filter_set_types): Likewise.
38820         (gimple_eh_filter_set_failure): Likewise.
38821         (gimple_eh_must_not_throw_fndecl): Likewise.
38822         (gimple_eh_must_not_throw_set_fndecl): Likewise.
38823         (gimple_eh_else_n_body_ptr): Likewise.
38824         (gimple_eh_else_e_body_ptr): Likewise.
38825         (gimple_eh_else_set_n_body): Likewise.
38826         (gimple_eh_else_set_e_body): Likewise.
38827         (gimple_try_eval_ptr): Likewise.
38828         (gimple_try_cleanup_ptr): Likewise.
38829         (gimple_try_set_eval): Likewise.
38830         (gimple_try_set_cleanup): Likewise.
38831         (gimple_wce_cleanup_ptr): Likewise.
38832         (gimple_wce_set_cleanup): Likewise.
38833         (gimple_phi_capacity): Likewise.
38834         (gimple_phi_num_args): Likewise.
38835         (gimple_phi_result): Likewise.
38836         (gimple_phi_result_ptr): Likewise.
38837         (gimple_phi_set_result): Likewise.
38838         (gimple_phi_arg): Likewise.
38839         (gimple_phi_set_arg): Likewise.
38840         (gimple_resx_region): Likewise.
38841         (gimple_resx_set_region): Likewise.
38842         (gimple_eh_dispatch_region): Likewise.
38843         (gimple_eh_dispatch_set_region): Likewise.
38844         (gimple_omp_critical_name): Likewise.
38845         (gimple_omp_critical_name_ptr): Likewise.
38846         (gimple_omp_critical_set_name): Likewise.
38847         (gimple_omp_for_clauses): Likewise.
38848         (gimple_omp_for_clauses_ptr): Likewise.
38849         (gimple_omp_for_set_clauses): Likewise.
38850         (gimple_omp_for_collapse): Likewise.
38851         (gimple_omp_for_index): Likewise.
38852         (gimple_omp_for_index_ptr): Likewise.
38853         (gimple_omp_for_set_index): Likewise.
38854         (gimple_omp_for_initial): Likewise.
38855         (gimple_omp_for_initial_ptr): Likewise.
38856         (gimple_omp_for_set_initial): Likewise.
38857         (gimple_omp_for_final): Likewise.
38858         (gimple_omp_for_final_ptr): Likewise.
38859         (gimple_omp_for_set_final): Likewise.
38860         (gimple_omp_for_incr): Likewise.
38861         (gimple_omp_for_incr_ptr): Likewise.
38862         (gimple_omp_for_set_incr): Likewise.
38863         (gimple_omp_for_pre_body_ptr): Likewise.
38864         (gimple_omp_for_set_pre_body): Likewise.
38865         (gimple_omp_parallel_clauses): Likewise.
38866         (gimple_omp_parallel_clauses_ptr): Likewise.
38867         (gimple_omp_parallel_set_clauses): Likewise.
38868         (gimple_omp_parallel_child_fn): Likewise.
38869         (gimple_omp_parallel_child_fn_ptr): Likewise.
38870         (gimple_omp_parallel_set_child_fn): Likewise.
38871         (gimple_omp_parallel_data_arg): Likewise.
38872         (gimple_omp_parallel_data_arg_ptr): Likewise.
38873         (gimple_omp_parallel_set_data_arg): Likewise.
38874         (gimple_omp_task_clauses): Likewise.
38875         (gimple_omp_task_clauses_ptr): Likewise.
38876         (gimple_omp_task_set_clauses): Likewise.
38877         (gimple_omp_task_child_fn): Likewise.
38878         (gimple_omp_task_child_fn_ptr): Likewise.
38879         (gimple_omp_task_set_child_fn): Likewise.
38880         (gimple_omp_task_data_arg): Likewise.
38881         (gimple_omp_task_data_arg_ptr): Likewise.
38882         (gimple_omp_task_set_data_arg): Likewise.
38883         (gimple_omp_taskreg_clauses): Likewise.
38884         (gimple_omp_taskreg_clauses_ptr): Likewise.
38885         (gimple_omp_taskreg_set_clauses): Likewise.
38886         (gimple_omp_taskreg_child_fn): Likewise.
38887         (gimple_omp_taskreg_child_fn_ptr): Likewise.
38888         (gimple_omp_taskreg_set_child_fn): Likewise.
38889         (gimple_omp_taskreg_data_arg): Likewise.
38890         (gimple_omp_taskreg_data_arg_ptr): Likewise.
38891         (gimple_omp_taskreg_set_data_arg): Likewise.
38892         (gimple_omp_task_copy_fn): Likewise.
38893         (gimple_omp_task_copy_fn_ptr): Likewise.
38894         (gimple_omp_task_set_copy_fn): Likewise.
38895         (gimple_omp_task_arg_size): Likewise.
38896         (gimple_omp_task_arg_size_ptr): Likewise.
38897         (gimple_omp_task_set_arg_size): Likewise.
38898         (gimple_omp_task_arg_align): Likewise.
38899         (gimple_omp_task_arg_align_ptr): Likewise.
38900         (gimple_omp_task_set_arg_align): Likewise.
38901         (gimple_omp_single_clauses): Likewise.
38902         (gimple_omp_single_clauses_ptr): Likewise.
38903         (gimple_omp_single_set_clauses): Likewise.
38904         (gimple_omp_target_clauses): Likewise.
38905         (gimple_omp_target_clauses_ptr): Likewise.
38906         (gimple_omp_target_set_clauses): Likewise.
38907         (gimple_omp_target_child_fn): Likewise.
38908         (gimple_omp_target_child_fn_ptr): Likewise.
38909         (gimple_omp_target_set_child_fn): Likewise.
38910         (gimple_omp_target_data_arg): Likewise.
38911         (gimple_omp_target_data_arg_ptr): Likewise.
38912         (gimple_omp_target_set_data_arg): Likewise.
38913         (gimple_omp_teams_clauses): Likewise.
38914         (gimple_omp_teams_clauses_ptr): Likewise.
38915         (gimple_omp_teams_set_clauses): Likewise.
38916         (gimple_omp_sections_clauses): Likewise.
38917         (gimple_omp_sections_clauses_ptr): Likewise.
38918         (gimple_omp_sections_set_clauses): Likewise.
38919         (gimple_omp_sections_control): Likewise.
38920         (gimple_omp_sections_control_ptr): Likewise.
38921         (gimple_omp_sections_set_control): Likewise.
38922         (gimple_omp_for_set_cond): Likewise.
38923         (gimple_omp_for_cond): Likewise.
38924         (gimple_omp_atomic_store_set_val): Likewise.
38925         (gimple_omp_atomic_store_val): Likewise.
38926         (gimple_omp_atomic_store_val_ptr): Likewise.
38927         (gimple_omp_atomic_load_set_lhs): Likewise.
38928         (gimple_omp_atomic_load_lhs): Likewise.
38929         (gimple_omp_atomic_load_lhs_ptr): Likewise.
38930         (gimple_omp_atomic_load_set_rhs): Likewise.
38931         (gimple_omp_atomic_load_rhs): Likewise.
38932         (gimple_omp_atomic_load_rhs_ptr): Likewise.
38933         (gimple_omp_continue_control_def): Likewise.
38934         (gimple_omp_continue_control_def_ptr): Likewise.
38935         (gimple_omp_continue_set_control_def): Likewise.
38936         (gimple_omp_continue_control_use): Likewise.
38937         (gimple_omp_continue_control_use_ptr): Likewise.
38938         (gimple_omp_continue_set_control_use): Likewise.
38939         (gimple_transaction_body_ptr): Likewise.
38940         (gimple_transaction_label): Likewise.
38941         (gimple_transaction_label_ptr): Likewise.
38942         (gimple_transaction_set_body): Likewise.
38943         (gimple_transaction_set_label): Likewise.
38944
38945         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
38946         * ipa-inline-analysis.c (inline_write_summary): Likewise.
38947         * ipa-ref.c (ipa_record_reference): Likewise.
38948         * ipa-reference.c (analyze_function): Likewise.
38949         (ipa_reference_write_optimization_summary): Likewise.
38950         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
38951         (address_taken_from_non_vtable_p): Likewise.
38952         (comdat_can_be_unshared_p_1): Likewise.
38953         * lto-cgraph.c (lto_output_ref): Likewise.
38954         (add_references): Likewise.
38955         (compute_ltrans_boundary): Likewise.
38956         (output_symtab): Likewise.
38957         (input_ref): Likewise.
38958         (input_cgraph_1): Likewise.
38959         (output_cgraph_opt_summary): Likewise.
38960         * lto-streamer-out.c (lto_output): Likewise.
38961         (output_symbol_p): Likewise.
38962         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
38963         (lsei_start_function_in_partition): Likewise.
38964         (lsei_next_variable_in_partition): Likewise.
38965         (lsei_start_variable_in_partition): Likewise.
38966         * symtab.c (insert_to_assembler_name_hash): Likewise.
38967         (unlink_from_assembler_name_hash): Likewise.
38968         (symtab_unregister_node): Likewise.
38969         (symtab_remove_node): Likewise.
38970         (dump_symtab_node): Likewise.
38971         (verify_symtab_base): Likewise.
38972         (verify_symtab_node): Likewise.
38973         (symtab_make_decl_local): Likewise.
38974         (symtab_alias_ultimate_target): Likewise.
38975         (symtab_resolve_alias): Likewise.
38976         (symtab_get_symbol_partitioning_class): Likewise.
38977         * tree-phinodes.c (allocate_phi_node): Likewise.
38978         (reserve_phi_args_for_new_edge): Likewise.
38979         (remove_phi_args): Likewise.
38980         * varpool.c (varpool_node_for_asm): Likewise.
38981         (varpool_remove_unreferenced_decls): Likewise.
38982
38983 2014-04-23  Jeff Law  <law@redhat.com>
38984
38985         PR tree-optimization/60902
38986         * tree-ssa-threadedge.c
38987         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
38988         invalidate outputs from statements that do not produce useful
38989         outputs for threading.
38990
38991 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
38992
38993         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
38994         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
38995         machine descriptions for Stack Smashing Protector.
38996
38997 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
38998
38999         * aarch64.md (<optab>_rol<mode>3): New pattern.
39000         (<optab>_rolsi3_uxtw): Likewise.
39001         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
39002
39003 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
39004
39005         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
39006         (arm_cortex_a12_tune): Likewise.
39007
39008 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39009
39010         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
39011
39012 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39013
39014         * config/arm/arm.md (arm_rev16si2): New pattern.
39015         (arm_rev16si2_alt): Likewise.
39016         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
39017
39018 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39019
39020         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
39021         (rev16<mode>2_alt): Likewise.
39022         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
39023         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
39024         (aarch_rev16_shleft_mask_imm_p): Likewise.
39025         (aarch_rev16_p_1): Likewise.
39026         (aarch_rev16_p): Likewise.
39027         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
39028         (aarch_rev16_shright_mask_imm_p): Likewise.
39029         (aarch_rev16_shleft_mask_imm_p): Likewise.
39030
39031 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39032
39033         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
39034         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
39035         rev cost.
39036         (cortex_a53_extra_costs): Likewise.
39037         (cortex_a57_extra_costs): Likewise.
39038         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
39039         (cortexa7_extra_costs): Likewise.
39040         (cortexa8_extra_costs): Likewise.
39041         (cortexa12_extra_costs): Likewise.
39042         (cortexa15_extra_costs): Likewise.
39043         (v7m_extra_costs): Likewise.
39044         (arm_new_rtx_costs): Handle BSWAP.
39045
39046 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39047
39048         * config/arm/arm.c (cortexa8_extra_costs): New table.
39049         (arm_cortex_a8_tune): New tuning struct.
39050         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
39051
39052 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39053
39054         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
39055
39056 2014-04-23  Richard Biener  <rguenther@suse.de>
39057
39058         * Makefile.in (OBJS): Remove loop-unswitch.o.
39059         * tree-pass.h (make_pass_rtl_unswitch): Remove.
39060         * passes.def (pass_rtl_unswitch): Likewise.
39061         * loop-init.c (gate_rtl_unswitch): Likewise.
39062         (rtl_unswitch): Likewise.
39063         (pass_data_rtl_unswitch): Likewise.
39064         (pass_rtl_unswitch): Likewise.
39065         (make_pass_rtl_unswitch): Likewise.
39066         * rtl.h (reversed_condition): Likewise.
39067         (compare_and_jump_seq): Likewise.
39068         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
39069         and make static.
39070         * loop-unroll.c (compare_and_jump_seq): Likewise.
39071
39072 2014-04-23  Richard Biener  <rguenther@suse.de>
39073
39074         PR tree-optimization/60903
39075         * tree-ssa-loop-im.c (analyze_memory_references): Remove
39076         commented code block.
39077         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
39078         loop flags to newly created BBs and edges.
39079
39080 2014-04-23  Nick Clifton  <nickc@redhat.com>
39081
39082         * config/msp430/msp430.c (msp430_handle_option): Move function
39083         to msp430-common.c
39084         (msp430_option_override): Simplify mcu and mcpu option handling.
39085         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
39086         support for -mhwmult command line option.
39087         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
39088         -mhwmult command line option.
39089         (msp430_hwmult_enabled): Delete.
39090         (msp43o_output_labelref): Add support for -mhwmult command line option.
39091         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
39092         (umulsidi3): Likewise.
39093         * config/msp430/msp430.opt (mmcu): Add Report attribute.
39094         (mcpu, mlarge, msmall): Likewise.
39095         (mhwmult): New option.
39096         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
39097         prototype.
39098         (msp430_is_f5_mcu): Remove prototype.
39099         (msp430_use_f5_series_hwmult): Add prototype.
39100         * config/msp430/msp430-opts.h: New file.
39101         * common/config/msp430: New directory.
39102         * common/config/msp430/msp430-common.c: New file.
39103         * config.gcc (msp430): Remove target_has_targetm_common.
39104         * doc/invoke.texi: Document -mhwmult command line option.
39105
39106 2014-04-23  Nick Clifton  <nickc@redhat.com>
39107
39108         * config/i386/cygwin.h (ENDFILE_SPEC): Include
39109         default-manifest.o if it can be found in the search path.
39110         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
39111
39112 2014-04-23  Terry Guo  <terry.guo@arm.com>
39113
39114         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
39115
39116 2014-04-23  Richard Biener  <rguenther@suse.de>
39117
39118         PR middle-end/60895
39119         * tree-inline.c (declare_return_variable): Use mark_addressable.
39120
39121 2014-04-23  Richard Biener  <rguenther@suse.de>
39122
39123         PR middle-end/60891
39124         * loop-init.c (loop_optimizer_init): Make sure to apply
39125         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
39126
39127 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
39128
39129         PR sanitizer/60275
39130         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
39131         New options.
39132         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
39133         if flag_sanitize_undefined_trap_on_error.
39134         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
39135         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
39136         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
39137         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
39138         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
39139         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
39140         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
39141         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
39142         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
39143         * ubsan.c (ubsan_instrument_unreachable): Return
39144         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
39145         (ubsan_expand_null_ifn): Emit __builtin_trap ()
39146         if flag_sanitize_undefined_trap_on_error and
39147         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
39148         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
39149         instrument_bool_enum_load): Emit __builtin_trap () if
39150         flag_sanitize_undefined_trap_on_error and
39151         __builtin_handle_*_abort () if !flag_sanitize_recover.
39152         * doc/invoke.texi (-fsanitize-recover,
39153         -fsanitize-undefined-trap-on-error): Document.
39154
39155 2014-04-22  Christian Bruel  <christian.bruel@st.com>
39156
39157         * config/sh/sh.md (mov<mode>): Replace movQIHI.
39158         Force immediates to SImode.
39159
39160 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
39161
39162         * config/nios2/nios2.md (UNSPEC_ROUND): New.
39163         (lroundsfsi2): New.
39164         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
39165         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
39166         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
39167         (nios2_fpu_insn): Add entry for round.
39168         (N2FPU_NO_ERRNO_P): Define.
39169         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
39170         flag_errno_math.
39171         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
39172
39173 2014-04-22  Richard Henderson  <rth@redhat.com>
39174
39175         * config/aarch64/aarch64 (addti3, subti3): New expanders.
39176         (add<GPI>3_compare0): Remove leading * from name.
39177         (add<GPI>3_carryin): Likewise.
39178         (sub<GPI>3_compare0): Likewise.
39179         (sub<GPI>3_carryin): Likewise.
39180         (<su_optab>mulditi3): New expander.
39181         (multi3): New expander.
39182         (madd<GPI>): Remove leading * from name.
39183
39184 2014-04-22  Martin Jambor  <mjambor@suse.cz>
39185
39186         * cgraphclones.c (cgraph_function_versioning): Copy
39187         ipa_transforms_to_apply instead of asserting it is empty.
39188
39189 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
39190
39191         PR target/60868
39192         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
39193         on count_exp to get mode.
39194
39195 2014-04-22  Andrew Pinski  <apinski@cavium.com>
39196
39197         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
39198         Handle TLS for ILP32.
39199         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
39200         (tlsie_small_<mode>): this and handle PTR.
39201         (tlsie_small_sidi): New pattern.
39202         (tlsle_small): Change to an expand to handle ILP32.
39203         (tlsle_small_<mode>): New pattern.
39204         (tlsdesc_small): Rename to ...
39205         (tlsdesc_small_<mode>): this and handle PTR.
39206
39207 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39208
39209         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
39210
39211 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
39212
39213         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
39214         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
39215         (aarch64_types_signed_poly_qualifiers): Likewise.
39216         (aarch64_types_unsigned_signed_qualifiers): Likewise.
39217         (aarch64_types_poly_signed_qualifiers): Likewise.
39218         (TYPES_REINTERP_SS): Type macro added.
39219         (TYPES_REINTERP_SU): Likewise.
39220         (TYPES_REINTERP_SP): Likewise.
39221         (TYPES_REINTERP_US): Likewise.
39222         (TYPES_REINTERP_PS): Likewise.
39223         (aarch64_fold_builtin): New expression folding added.
39224         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
39225         Declarations removed.
39226         (REINTERP_SS): Declarations added.
39227         (REINTERP_US): Likewise.
39228         (REINTERP_PS): Likewise.
39229         (REINTERP_SU): Likewise.
39230         (REINTERP_SP): Likewise.
39231         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
39232         (vreinterpretq_p8_f64): Likewise.
39233         (vreinterpret_p16_f64): Likewise.
39234         (vreinterpretq_p16_f64): Likewise.
39235         (vreinterpret_f32_f64): Likewise.
39236         (vreinterpretq_f32_f64): Likewise.
39237         (vreinterpret_f64_f32): Likewise.
39238         (vreinterpret_f64_p8): Likewise.
39239         (vreinterpret_f64_p16): Likewise.
39240         (vreinterpret_f64_s8): Likewise.
39241         (vreinterpret_f64_s16): Likewise.
39242         (vreinterpret_f64_s32): Likewise.
39243         (vreinterpret_f64_s64): Likewise.
39244         (vreinterpret_f64_u8): Likewise.
39245         (vreinterpret_f64_u16): Likewise.
39246         (vreinterpret_f64_u32): Likewise.
39247         (vreinterpret_f64_u64): Likewise.
39248         (vreinterpretq_f64_f32): Likewise.
39249         (vreinterpretq_f64_p8): Likewise.
39250         (vreinterpretq_f64_p16): Likewise.
39251         (vreinterpretq_f64_s8): Likewise.
39252         (vreinterpretq_f64_s16): Likewise.
39253         (vreinterpretq_f64_s32): Likewise.
39254         (vreinterpretq_f64_s64): Likewise.
39255         (vreinterpretq_f64_u8): Likewise.
39256         (vreinterpretq_f64_u16): Likewise.
39257         (vreinterpretq_f64_u32): Likewise.
39258         (vreinterpretq_f64_u64): Likewise.
39259         (vreinterpret_s64_f64): Likewise.
39260         (vreinterpretq_s64_f64): Likewise.
39261         (vreinterpret_u64_f64): Likewise.
39262         (vreinterpretq_u64_f64): Likewise.
39263         (vreinterpret_s8_f64): Likewise.
39264         (vreinterpretq_s8_f64): Likewise.
39265         (vreinterpret_s16_f64): Likewise.
39266         (vreinterpretq_s16_f64): Likewise.
39267         (vreinterpret_s32_f64): Likewise.
39268         (vreinterpretq_s32_f64): Likewise.
39269         (vreinterpret_u8_f64): Likewise.
39270         (vreinterpretq_u8_f64): Likewise.
39271         (vreinterpret_u16_f64): Likewise.
39272         (vreinterpretq_u16_f64): Likewise.
39273         (vreinterpret_u32_f64): Likewise.
39274         (vreinterpretq_u32_f64): Likewise.
39275
39276 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
39277
39278         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
39279         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
39280         (vreinterpret_p8_s8): Likewise.
39281         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
39282         (vreinterpret_p8_s16): Likewise.
39283         (vreinterpret_p8_s32): Likewise.
39284         (vreinterpret_p8_s64): Likewise.
39285         (vreinterpret_p8_f32): Likewise.
39286         (vreinterpret_p8_u8): Likewise.
39287         (vreinterpret_p8_u16): Likewise.
39288         (vreinterpret_p8_u32): Likewise.
39289         (vreinterpret_p8_u64): Likewise.
39290         (vreinterpret_p8_p16): Likewise.
39291         (vreinterpretq_p8_s8): Likewise.
39292         (vreinterpretq_p8_s16): Likewise.
39293         (vreinterpretq_p8_s32): Likewise.
39294         (vreinterpretq_p8_s64): Likewise.
39295         (vreinterpretq_p8_f32): Likewise.
39296         (vreinterpretq_p8_u8): Likewise.
39297         (vreinterpretq_p8_u16): Likewise.
39298         (vreinterpretq_p8_u32): Likewise.
39299         (vreinterpretq_p8_u64): Likewise.
39300         (vreinterpretq_p8_p16): Likewise.
39301         (vreinterpret_p16_s8): Likewise.
39302         (vreinterpret_p16_s16): Likewise.
39303         (vreinterpret_p16_s32): Likewise.
39304         (vreinterpret_p16_s64): Likewise.
39305         (vreinterpret_p16_f32): Likewise.
39306         (vreinterpret_p16_u8): Likewise.
39307         (vreinterpret_p16_u16): Likewise.
39308         (vreinterpret_p16_u32): Likewise.
39309         (vreinterpret_p16_u64): Likewise.
39310         (vreinterpret_p16_p8): Likewise.
39311         (vreinterpretq_p16_s8): Likewise.
39312         (vreinterpretq_p16_s16): Likewise.
39313         (vreinterpretq_p16_s32): Likewise.
39314         (vreinterpretq_p16_s64): Likewise.
39315         (vreinterpretq_p16_f32): Likewise.
39316         (vreinterpretq_p16_u8): Likewise.
39317         (vreinterpretq_p16_u16): Likewise.
39318         (vreinterpretq_p16_u32): Likewise.
39319         (vreinterpretq_p16_u64): Likewise.
39320         (vreinterpretq_p16_p8): Likewise.
39321         (vreinterpret_f32_s8): Likewise.
39322         (vreinterpret_f32_s16): Likewise.
39323         (vreinterpret_f32_s32): Likewise.
39324         (vreinterpret_f32_s64): Likewise.
39325         (vreinterpret_f32_u8): Likewise.
39326         (vreinterpret_f32_u16): Likewise.
39327         (vreinterpret_f32_u32): Likewise.
39328         (vreinterpret_f32_u64): Likewise.
39329         (vreinterpret_f32_p8): Likewise.
39330         (vreinterpret_f32_p16): Likewise.
39331         (vreinterpretq_f32_s8): Likewise.
39332         (vreinterpretq_f32_s16): Likewise.
39333         (vreinterpretq_f32_s32): Likewise.
39334         (vreinterpretq_f32_s64): Likewise.
39335         (vreinterpretq_f32_u8): Likewise.
39336         (vreinterpretq_f32_u16): Likewise.
39337         (vreinterpretq_f32_u32): Likewise.
39338         (vreinterpretq_f32_u64): Likewise.
39339         (vreinterpretq_f32_p8): Likewise.
39340         (vreinterpretq_f32_p16): Likewise.
39341         (vreinterpret_s64_s8): Likewise.
39342         (vreinterpret_s64_s16): Likewise.
39343         (vreinterpret_s64_s32): Likewise.
39344         (vreinterpret_s64_f32): Likewise.
39345         (vreinterpret_s64_u8): Likewise.
39346         (vreinterpret_s64_u16): Likewise.
39347         (vreinterpret_s64_u32): Likewise.
39348         (vreinterpret_s64_u64): Likewise.
39349         (vreinterpret_s64_p8): Likewise.
39350         (vreinterpret_s64_p16): Likewise.
39351         (vreinterpretq_s64_s8): Likewise.
39352         (vreinterpretq_s64_s16): Likewise.
39353         (vreinterpretq_s64_s32): Likewise.
39354         (vreinterpretq_s64_f32): Likewise.
39355         (vreinterpretq_s64_u8): Likewise.
39356         (vreinterpretq_s64_u16): Likewise.
39357         (vreinterpretq_s64_u32): Likewise.
39358         (vreinterpretq_s64_u64): Likewise.
39359         (vreinterpretq_s64_p8): Likewise.
39360         (vreinterpretq_s64_p16): Likewise.
39361         (vreinterpret_u64_s8): Likewise.
39362         (vreinterpret_u64_s16): Likewise.
39363         (vreinterpret_u64_s32): Likewise.
39364         (vreinterpret_u64_s64): Likewise.
39365         (vreinterpret_u64_f32): Likewise.
39366         (vreinterpret_u64_u8): Likewise.
39367         (vreinterpret_u64_u16): Likewise.
39368         (vreinterpret_u64_u32): Likewise.
39369         (vreinterpret_u64_p8): Likewise.
39370         (vreinterpret_u64_p16): Likewise.
39371         (vreinterpretq_u64_s8): Likewise.
39372         (vreinterpretq_u64_s16): Likewise.
39373         (vreinterpretq_u64_s32): Likewise.
39374         (vreinterpretq_u64_s64): Likewise.
39375         (vreinterpretq_u64_f32): Likewise.
39376         (vreinterpretq_u64_u8): Likewise.
39377         (vreinterpretq_u64_u16): Likewise.
39378         (vreinterpretq_u64_u32): Likewise.
39379         (vreinterpretq_u64_p8): Likewise.
39380         (vreinterpretq_u64_p16): Likewise.
39381         (vreinterpret_s8_s16): Likewise.
39382         (vreinterpret_s8_s32): Likewise.
39383         (vreinterpret_s8_s64): Likewise.
39384         (vreinterpret_s8_f32): Likewise.
39385         (vreinterpret_s8_u8): Likewise.
39386         (vreinterpret_s8_u16): Likewise.
39387         (vreinterpret_s8_u32): Likewise.
39388         (vreinterpret_s8_u64): Likewise.
39389         (vreinterpret_s8_p8): Likewise.
39390         (vreinterpret_s8_p16): Likewise.
39391         (vreinterpretq_s8_s16): Likewise.
39392         (vreinterpretq_s8_s32): Likewise.
39393         (vreinterpretq_s8_s64): Likewise.
39394         (vreinterpretq_s8_f32): Likewise.
39395         (vreinterpretq_s8_u8): Likewise.
39396         (vreinterpretq_s8_u16): Likewise.
39397         (vreinterpretq_s8_u32): Likewise.
39398         (vreinterpretq_s8_u64): Likewise.
39399         (vreinterpretq_s8_p8): Likewise.
39400         (vreinterpretq_s8_p16): Likewise.
39401         (vreinterpret_s16_s8): Likewise.
39402         (vreinterpret_s16_s32): Likewise.
39403         (vreinterpret_s16_s64): Likewise.
39404         (vreinterpret_s16_f32): Likewise.
39405         (vreinterpret_s16_u8): Likewise.
39406         (vreinterpret_s16_u16): Likewise.
39407         (vreinterpret_s16_u32): Likewise.
39408         (vreinterpret_s16_u64): Likewise.
39409         (vreinterpret_s16_p8): Likewise.
39410         (vreinterpret_s16_p16): Likewise.
39411         (vreinterpretq_s16_s8): Likewise.
39412         (vreinterpretq_s16_s32): Likewise.
39413         (vreinterpretq_s16_s64): Likewise.
39414         (vreinterpretq_s16_f32): Likewise.
39415         (vreinterpretq_s16_u8): Likewise.
39416         (vreinterpretq_s16_u16): Likewise.
39417         (vreinterpretq_s16_u32): Likewise.
39418         (vreinterpretq_s16_u64): Likewise.
39419         (vreinterpretq_s16_p8): Likewise.
39420         (vreinterpretq_s16_p16): Likewise.
39421         (vreinterpret_s32_s8): Likewise.
39422         (vreinterpret_s32_s16): Likewise.
39423         (vreinterpret_s32_s64): Likewise.
39424         (vreinterpret_s32_f32): Likewise.
39425         (vreinterpret_s32_u8): Likewise.
39426         (vreinterpret_s32_u16): Likewise.
39427         (vreinterpret_s32_u32): Likewise.
39428         (vreinterpret_s32_u64): Likewise.
39429         (vreinterpret_s32_p8): Likewise.
39430         (vreinterpret_s32_p16): Likewise.
39431         (vreinterpretq_s32_s8): Likewise.
39432         (vreinterpretq_s32_s16): Likewise.
39433         (vreinterpretq_s32_s64): Likewise.
39434         (vreinterpretq_s32_f32): Likewise.
39435         (vreinterpretq_s32_u8): Likewise.
39436         (vreinterpretq_s32_u16): Likewise.
39437         (vreinterpretq_s32_u32): Likewise.
39438         (vreinterpretq_s32_u64): Likewise.
39439         (vreinterpretq_s32_p8): Likewise.
39440         (vreinterpretq_s32_p16): Likewise.
39441         (vreinterpret_u8_s8): Likewise.
39442         (vreinterpret_u8_s16): Likewise.
39443         (vreinterpret_u8_s32): Likewise.
39444         (vreinterpret_u8_s64): Likewise.
39445         (vreinterpret_u8_f32): Likewise.
39446         (vreinterpret_u8_u16): Likewise.
39447         (vreinterpret_u8_u32): Likewise.
39448         (vreinterpret_u8_u64): Likewise.
39449         (vreinterpret_u8_p8): Likewise.
39450         (vreinterpret_u8_p16): Likewise.
39451         (vreinterpretq_u8_s8): Likewise.
39452         (vreinterpretq_u8_s16): Likewise.
39453         (vreinterpretq_u8_s32): Likewise.
39454         (vreinterpretq_u8_s64): Likewise.
39455         (vreinterpretq_u8_f32): Likewise.
39456         (vreinterpretq_u8_u16): Likewise.
39457         (vreinterpretq_u8_u32): Likewise.
39458         (vreinterpretq_u8_u64): Likewise.
39459         (vreinterpretq_u8_p8): Likewise.
39460         (vreinterpretq_u8_p16): Likewise.
39461         (vreinterpret_u16_s8): Likewise.
39462         (vreinterpret_u16_s16): Likewise.
39463         (vreinterpret_u16_s32): Likewise.
39464         (vreinterpret_u16_s64): Likewise.
39465         (vreinterpret_u16_f32): Likewise.
39466         (vreinterpret_u16_u8): Likewise.
39467         (vreinterpret_u16_u32): Likewise.
39468         (vreinterpret_u16_u64): Likewise.
39469         (vreinterpret_u16_p8): Likewise.
39470         (vreinterpret_u16_p16): Likewise.
39471         (vreinterpretq_u16_s8): Likewise.
39472         (vreinterpretq_u16_s16): Likewise.
39473         (vreinterpretq_u16_s32): Likewise.
39474         (vreinterpretq_u16_s64): Likewise.
39475         (vreinterpretq_u16_f32): Likewise.
39476         (vreinterpretq_u16_u8): Likewise.
39477         (vreinterpretq_u16_u32): Likewise.
39478         (vreinterpretq_u16_u64): Likewise.
39479         (vreinterpretq_u16_p8): Likewise.
39480         (vreinterpretq_u16_p16): Likewise.
39481         (vreinterpret_u32_s8): Likewise.
39482         (vreinterpret_u32_s16): Likewise.
39483         (vreinterpret_u32_s32): Likewise.
39484         (vreinterpret_u32_s64): Likewise.
39485         (vreinterpret_u32_f32): Likewise.
39486         (vreinterpret_u32_u8): Likewise.
39487         (vreinterpret_u32_u16): Likewise.
39488         (vreinterpret_u32_u64): Likewise.
39489         (vreinterpret_u32_p8): Likewise.
39490         (vreinterpret_u32_p16): Likewise.
39491         (vreinterpretq_u32_s8): Likewise.
39492         (vreinterpretq_u32_s16): Likewise.
39493         (vreinterpretq_u32_s32): Likewise.
39494         (vreinterpretq_u32_s64): Likewise.
39495         (vreinterpretq_u32_f32): Likewise.
39496         (vreinterpretq_u32_u8): Likewise.
39497         (vreinterpretq_u32_u16): Likewise.
39498         (vreinterpretq_u32_u64): Likewise.
39499         (vreinterpretq_u32_p8): Likewise.
39500         (vreinterpretq_u32_p16): Likewise.
39501
39502 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
39503
39504         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
39505         Pattern extended.
39506         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
39507         (sqabs): Likewise.
39508         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
39509         (vqnegd_s64): Likewise.
39510         (vqabs_s64): Likewise.
39511         (vqabsd_s64): Likewise.
39512
39513 2014-04-22  Richard Henderson  <rth@redhat.com>
39514
39515         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
39516         computation to the top of the loop.
39517
39518 2014-04-22  Renlin  <renlin.li@arm.com>
39519             Jiong Wang  <jiong.wang@arm.com>
39520
39521         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
39522         * config/aarch64/aarch64.c (aarch64_layout_frame)
39523         (aarch64_initial_elimination_offset): Likewise.
39524
39525 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
39526
39527         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
39528         Fix indentation.
39529
39530 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
39531
39532         * machmode.h (bitwise_mode_for_mode): Declare.
39533         * stor-layout.h (bitwise_type_for_mode): Likewise.
39534         * stor-layout.c (bitwise_mode_for_mode): New function.
39535         (bitwise_type_for_mode): Likewise.
39536         * builtins.c (fold_builtin_memory_op): Use it instead of
39537         int_mode_for_mode and build_nonstandard_integer_type.
39538
39539 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39540
39541         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
39542         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
39543         (*-*-solaris2*): Simplify.
39544         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
39545         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
39546         *-*-solaris2.9* handling.
39547
39548         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
39549         as bug.
39550         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
39551         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
39552         handling, simplify.
39553         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
39554         * configure: Regenerate.
39555
39556         * config/i386/sol2-9.h: Remove.
39557
39558         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
39559         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
39560         Remove Solaris 9 references.
39561
39562 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
39563
39564         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
39565         (floatuns<GPI:mode><GPF:mode>2): Remove.
39566         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
39567         and floatuns conversions.
39568         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
39569         and floatuns conversions.
39570         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
39571         (w1,w2): New mode attributes for inequal width conversions.
39572
39573 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
39574
39575         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
39576         the output asm format.
39577
39578 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
39579
39580         * config/aarch64/aarch64-simd.md
39581         (aarch64_cm<optab>di): Always split.
39582         (*aarch64_cm<optab>di): New.
39583         (aarch64_cmtstdi): Always split.
39584         (*aarch64_cmtstdi): New.
39585
39586 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
39587
39588         PR tree-optimization/60823
39589         * omp-low.c (ipa_simd_modify_function_body): Go through
39590         all SSA_NAMEs and for those refering to vector arguments
39591         which are going to be replaced adjust SSA_NAME_VAR and,
39592         if it is a default definition, change it into a non-default
39593         definition assigned at the beginning of function from new_decl.
39594         (ipa_simd_modify_stmt_ops): Rewritten.
39595         * tree-dfa.c (set_ssa_default_def): When removing default def,
39596         check for NULL loc instead of NULL *loc.
39597
39598 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39599
39600         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
39601         restrictions on core registers for DImode values in Thumb2.
39602
39603 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
39604
39605         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
39606         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
39607
39608 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
39609
39610         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
39611         (*iordi_notzesidi_di): Likewise.
39612         (*iordi_notsesidi_di): Likewise.
39613
39614 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
39615
39616         * config/arm/arm-protos.h (tune_params): New struct members.
39617         * config/arm/arm.c: Initialise tune_params per processor.
39618         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
39619         for speed, based on new tune_params.
39620
39621 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
39622
39623         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
39624         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
39625         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
39626         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
39627         * config/aarch64/arm_neon.h (vrnd_f64): Added.
39628         (vrnda_f64): Likewise.
39629         (vrndi_f64): Likewise.
39630         (vrndm_f64): Likewise.
39631         (vrndn_f64): Likewise.
39632         (vrndp_f64): Likewise.
39633         (vrndx_f64): Likewise.
39634
39635 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
39636
39637         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
39638         GET_MODE_SIZE argument is enum machine_mode.
39639
39640 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
39641
39642         PR target/60910
39643         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
39644         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
39645
39646 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
39647
39648         PR middle-end/60281
39649         * asan.c (asan_emit_stack_protection): Force the base to align to
39650         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
39651         appropriate bits if STRICT_ALIGNMENT.
39652         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
39653         when asan is on.
39654         (expand_used_vars): Leave a space in the stack frame for alignment
39655         if STRICT_ALIGNMENT.
39656
39657 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
39658
39659         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
39660         than a gimple.
39661         (gimple_store_p): Likewise.
39662         (gimple_assign_load_p): Likewise.
39663         (gimple_assign_cast_p): Likewise.
39664         (gimple_clobber_p): Likewise.
39665
39666         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
39667         rather than a gimple.
39668         (gimple_assign_cast_p): Likewise.
39669
39670 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
39671
39672         PR target/60735
39673         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
39674         If mode is DDmode and TARGET_E500_DOUBLE allow move.
39675
39676         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
39677         more debug information for E500 if -mdebug=reg.
39678
39679 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
39680
39681         PR target/60909
39682         * config/i386/i386.c (ix86_expand_builtin)
39683         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
39684         register for target RTX.
39685         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
39686
39687 2014-04-18  Cong Hou  <congh@google.com>
39688
39689         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
39690         the widen-mult pattern by handling two operands with different sizes,
39691         and operands whose size is smaller than half of the result type.
39692
39693 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
39694
39695         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
39696         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
39697         (do_estimate_edge_time): Compute it.
39698         * ipa-inline.c (want_inline_small_function_p): Bypass
39699         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
39700
39701 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
39702
39703         * ipa-inline.c (spec_rem): New static variable.
39704         (dump_overall_stats): New function.
39705         (dump_inline_stats): New function.
39706
39707 2014-04-18  Richard Henderson  <rth@redhat.com>
39708
39709         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
39710         to GET_MODE_SIZE, not a reg_class_t.
39711
39712 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39713
39714         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
39715         (vsx_xxmrglw_<mode>): Likewise.
39716
39717 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
39718
39719         PR target/60876
39720         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
39721         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
39722         (rs6000_init_hard_regno_mode_ok): Likewise.
39723
39724 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
39725
39726         * ipa-inline.c (inline_small_functions): Account only non-cold
39727         functions.
39728         * doc/invoke.texi (inline-unit-growth): Update documentation.
39729
39730 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
39731
39732         * config/rs6000/rs6000.md (addti3, subti3): New.
39733
39734 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
39735
39736         PR target/60863
39737         * config/i386/i386.c (ix86_expand_clear): Remove outdated
39738         comment.  Check optimize_insn_for_size_p instead of
39739         optimize_insn_for_speed_p.
39740
39741 2014-04-17  Martin Jambor  <mjambor@suse.cz>
39742
39743         * gimple-iterator.c (gsi_start_edge): New function.
39744         * gimple-iterator.h (gsi_start_edge): Declare.
39745         * tree-sra.c (single_non_eh_succ): New function.
39746         (disqualify_ops_if_throwing_stmt): Renamed to
39747         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
39748         having one non-EH successor BB.
39749         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
39750         generate loads into replacements.
39751         (sra_modify_assign): Likewise and and also use the simple path for
39752         such statements.
39753         (sra_modify_function_body): Commit statements on edges.
39754
39755 2014-04-17  Richard Biener  <rguenther@suse.de>
39756
39757         PR middle-end/60849
39758         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
39759         comparison results and add clarifying comment.
39760
39761 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
39762
39763         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
39764         (blank_mode): Initialize it.
39765         (emit_mode_size_inline, emit_mode_nunits_inline,
39766         emit_mode_inner_inline): New functions.
39767         (emit_insn_modes_h): Call them and surround their output with
39768         #if GCC_VERSION >= 4001 ... #endif.
39769         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
39770         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
39771         mode_* arrays if the argument is __builtin_constant_p.
39772         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
39773         is enum machine_mode.
39774
39775 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
39776
39777         * passes.c (opt_pass::execute): Adjust.
39778         (pass_manager::execute_pass_mode_switching): Likewise.
39779         (early_local_passes::execute): Likewise.
39780         (execute_one_pass): Pass cfun to the pass's execute method.
39781         * tree-pass.h (opt_pass::execute): Add function * argument.
39782         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
39783         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
39784         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
39785         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
39786         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
39787         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
39788         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
39789         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
39790         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
39791         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
39792         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
39793         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
39794         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
39795         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
39796         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
39797         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
39798         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
39799         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
39800         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
39801         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
39802         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
39803         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
39804         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
39805         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
39806         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
39807         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
39808         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
39809         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
39810         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
39811         Adjust.
39812
39813 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
39814
39815         * passes.c (opt_pass::gate): Take function * argument.
39816         (gate_all_early_local_passes): Merge into
39817         (early_local_passes::gate): this.
39818         (gate_all_early_optimizations): Merge into
39819         (all_early_optimizations::gate): this.
39820         (gate_all_optimizations): Mege into
39821         (all_optimizations::gate): this.
39822         (gate_all_optimizations_g): Merge into
39823         (all_optimizations_g::gate): this.
39824         (gate_rest_of_compilation): Mege into
39825         (rest_of_compilation::gate): this.
39826         (gate_postreload): Merge into
39827         (postreload::gate): this.
39828         (dump_one_pass): Pass cfun to the pass's gate method.
39829         (execute_ipa_summary_passes): Likewise.
39830         (execute_one_pass): Likewise.
39831         (ipa_write_summaries_2): Likewise.
39832         (ipa_write_optimization_summaries_1): Likewise.
39833         (ipa_read_summaries_1): Likewise.
39834         (ipa_read_optimization_summaries_1): Likewise.
39835         (execute_ipa_stmt_fixups): Likewise.
39836         * tree-pass.h (opt_pass::gate): Add function * argument.
39837         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
39838         combine-stack-adj.c, combine.c, compare-elim.c,
39839         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
39840         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
39841         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
39842         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
39843         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
39844         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
39845         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
39846         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
39847         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
39848         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
39849         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
39850         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
39851         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
39852         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
39853         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
39854         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
39855         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
39856         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
39857         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
39858         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
39859         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
39860         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
39861         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
39862         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
39863         var-tracking.c, vtable-verify.c, web.c: Adjust.
39864
39865 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
39866
39867         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
39868         * configure: Regenerate.
39869
39870 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
39871
39872         * passes.c (dump_one_pass): don't check pass->has_gate.
39873         (execute_ipa_summary_passes): Likewise.
39874         (execute_one_pass): Likewise.
39875         (ipa_write_summaries_2): Likewise.
39876         (ipa_write_optimization_summaries_1): Likewise.
39877         (ipa_read_optimization_summaries_1): Likewise.
39878         (execute_ipa_stmt_fixups): Likewise.
39879         * tree-pass.h (pass_data::has_gate): Remove.
39880         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
39881         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
39882         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
39883         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
39884         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
39885         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
39886         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
39887         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
39888         gimple-low.c, gimple-ssa-isolate-paths.c,
39889         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
39890         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
39891         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
39892         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
39893         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
39894         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
39895         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
39896         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
39897         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
39898         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
39899         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
39900         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
39901         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
39902         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
39903         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
39904         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
39905         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
39906         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
39907         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
39908         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
39909         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
39910         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
39911         Adjust.
39912
39913 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
39914
39915         * pass_manager.h (pass_manager::register_dump_files_1): Remove
39916         declaration.
39917         * passes.c (pass_manager::register_dump_files_1): Merge into
39918         (pass_manager::register_dump_files): this, and remove its handling of
39919         properties since the pass always has the properties anyway.
39920         (pass_manager::pass_manager): Adjust.
39921
39922 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
39923
39924         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
39925         * passes.c (pass_manager::register_dump_files_1): Remove dead code
39926         dealing with properties.
39927         (pass_manager::register_dump_files): Adjust.
39928
39929 2014-03-20  Mark Wielaard  <mjw@redhat.com>
39930
39931         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
39932         then represent the bound as normal constant value.
39933
39934 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
39935
39936         PR target/60847
39937         Forward port from 4.8 branch
39938         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
39939
39940         * config/i386/bmiintrin.h (_blsi_u32): New.
39941         (_blsi_u64): Ditto.
39942         (_blsr_u32): Ditto.
39943         (_blsr_u64): Ditto.
39944         (_blsmsk_u32): Ditto.
39945         (_blsmsk_u64): Ditto.
39946         (_tzcnt_u32): Ditto.
39947         (_tzcnt_u64): Ditto.
39948
39949 2014-04-17  Kito Cheng  <kito@0xlab.org>
39950
39951         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
39952
39953 2014-04-17  Richard Biener  <rguenther@suse.de>
39954
39955         PR middle-end/60849
39956         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
39957         boolean results for comparisons.
39958
39959 2014-04-17  Richard Biener  <rguenther@suse.de>
39960
39961         PR tree-optimization/60836
39962         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
39963         initial PHI args to be gimple values.
39964
39965 2014-04-17  Richard Biener  <rguenther@suse.de>
39966
39967         PR tree-optimization/60841
39968         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
39969         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
39970         of stmts to SLP build.
39971         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
39972         (vect_analyze_slp): Likewise.
39973         (vect_analyze_slp_instance): Likewise.
39974         (vect_build_slp_tree): Limit overall SLP tree growth.
39975         * tree-vectorizer.h (vect_analyze_data_refs,
39976         vect_analyze_slp): Adjust prototypes.
39977
39978 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
39979
39980         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
39981         Silvermont.
39982
39983 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
39984
39985         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
39986         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
39987         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
39988         for TARGET_SLOW_PSHUFB
39989
39990 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
39991
39992         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
39993         * config/i386/i386.c (intel_cost): Ditto.
39994
39995 2014-04-17  Joey Ye  <joey.ye@arm.com>
39996
39997         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
39998
39999 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
40000
40001         * opts.c (common_handle_option): Disable -fipa-reference coorectly
40002         with -fuse-profile.
40003
40004 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
40005
40006         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
40007         (type_all_derivations_known_p): New predicate.
40008         (type_all_ctors_visible_p): New predicate.
40009         (type_possibly_instantiated_p): New predicate.
40010         (get_odr_type): Compute all_derivations_known.
40011         (dump_odr_type): Dump the flag.
40012         (maybe_record_type): Cleanup.
40013         (record_target_from_binfo): Add bases_to_consider array;
40014         record bases for types w/o instances and skip CXX destructor.
40015         (possible_polymorphic_call_targets_1): Add bases_to_consider
40016         and consider_construction parameters; check if type may have instance.
40017         (get_polymorphic_call_info): Set maybe_in_construction to true
40018         when we know nothing.
40019         (record_targets_from_bases): Skip CXX destructors; they are
40020         never called for types in construction.
40021         (possible_polymorphic_call_targets): Do not record target when
40022         type may not have instance.
40023
40024 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
40025
40026         PR ipa/60854
40027         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
40028         external aliases alive, too.
40029
40030 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
40031
40032         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
40033         definition.
40034
40035 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
40036
40037         * final.c (compute_alignments): Do not apply loop alignment to a block
40038         falling through to the exit.
40039
40040 2014-04-16  Catherine Moore  <clm@codesourcery.com>
40041
40042         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
40043         Adjust constraints for microMIPS store patterns.
40044
40045 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
40046
40047         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
40048
40049 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
40050
40051         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
40052         (append_use): Run at -O0.
40053         (append_vdef): Likewise.
40054         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
40055         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
40056
40057 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
40058
40059         PR tree-optimization/60844
40060         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
40061         (propagate_op_to_single_use, remove_visited_stmt_chain,
40062         linearize_expr, repropagate_negates, reassociate_bb): Use it
40063         instead of gsi_remove.
40064
40065 2014-04-16  Martin Jambor  <mjambor@suse.cz>
40066
40067         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
40068         ipa_transforms_to_apply.
40069         (cgraph_function_versioning): Assert that old_node has empty
40070         ipa_transforms_to_apply.
40071         * trans-mem.c (ipa_tm_create_version): Likewise.
40072         * tree-inline.c (tree_function_versioning): Do not duplicate
40073         ipa_transforms_to_apply.
40074
40075 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40076
40077         PR target/60817
40078         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
40079         x86_64-*-* cases.
40080         Pass necessary as flags on 64-bit Solaris/x86.
40081         Use lowercase relocs for x86_64-*-*.
40082         * configure: Regenerate.
40083
40084 2014-04-15  Jan Hubicka  <jh@suse.cz>
40085
40086         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
40087         (maybe_record_node, likely_target_p): Use it.
40088
40089 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40090
40091         PR target/60839
40092         Revert following patch
40093
40094         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
40095
40096         PR target/60735
40097         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
40098         software floating point or no floating point registers, do not
40099         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
40100         in GPRs that occurs after we tested for GPRs that would never be
40101         true.
40102
40103         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
40104         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
40105         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
40106         specifically allow DDmode, since that does not use the SPE SIMD
40107         instructions.
40108
40109 2014-03-21  Mark Wielaard  <mjw@redhat.com>
40110
40111         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
40112         as unsigned or int depending on type and value used.
40113
40114 2014-04-15  Richard Biener  <rguenther@suse.de>
40115
40116         PR rtl-optimization/56965
40117         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
40118         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
40119         ... here.
40120         * alias.c (true_dependence_1): Do not call
40121         nonoverlapping_component_refs_p.
40122         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
40123         nonoverlapping_component_refs_p.
40124         (indirect_refs_may_alias_p): Likewise.
40125
40126 2014-04-15  Teresa Johnson  <tejohnson@google.com>
40127
40128         * cfg.c (dump_bb_info): Fix flags check.
40129         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
40130
40131 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40132
40133         PR rtl-optimization/60663
40134         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
40135         avoid 0 cost.
40136
40137 2014-04-15  Richard Biener  <rguenther@suse.de>
40138
40139         * lto-streamer.h (LTO_major_version): Bump to 4.
40140
40141 2014-04-15  Richard Biener  <rguenther@suse.de>
40142
40143         * common.opt (lto_partition_model): New enum.
40144         (flto-partition=): Merge separate options with a single with argument,
40145         add -flto-partition=one support.
40146         * flag-types.h (enum lto_partition_model): Declare.
40147         * opts.c (finish_options): Remove duplicate -flto-partition=
40148         option check.
40149         * lto-wrapper.c (run_gcc): Adjust.
40150
40151 2014-04-15  Richard Biener  <rguenther@suse.de>
40152
40153         * alias.c (ncr_compar): New function.
40154         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
40155
40156 2014-04-15  Richard Biener  <rguenther@suse.de>
40157
40158         * alias.c (record_component_aliases): Do not walk BINFOs.
40159
40160 2014-04-15  Richard Biener  <rguenther@suse.de>
40161
40162         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
40163         Add struct function argument and adjust.
40164         (find_func_aliases_for_call): Likewise.
40165         (find_func_aliases): Likewise.
40166         (find_func_clobbers): Likewise.
40167         (intra_create_variable_infos): Likewise.
40168         (compute_points_to_sets): Likewise.
40169         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
40170
40171 2014-04-15  Richard Biener  <rguenther@suse.de>
40172
40173         * tree.c (iterative_hash_expr): Use enum tree_code_class
40174         to store TREE_CODE_CLASS.
40175         (tree_block): Likewise.
40176         (tree_set_block): Likewise.
40177         * tree.h (fold_build_pointer_plus_loc): Use
40178         convert_to_ptrofftype_loc.
40179
40180 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
40181
40182         PR plugins/59335
40183         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
40184         added in 4.9.
40185
40186 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
40187
40188         * cfgloop.h (struct loop): Move force_vectorize down.
40189         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
40190         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
40191         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
40192         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
40193         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
40194         * tree-core.h (enum annot_expr_kind): Add new kind values.
40195         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
40196         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
40197         kinds.
40198         * tree.def (ANNOTATE_EXPR): Tweak comment.
40199
40200 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
40201
40202         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
40203         cxa_pure_virtual).
40204
40205 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
40206
40207         * tree.h (TYPE_IDENTIFIER): Declare.
40208         * tree.c (subrange_type_for_debug_p): Use it.
40209         * godump.c (go_format_type): Likewise.
40210         * dwarf2out.c (is_cxx_auto, modified_type_die,
40211         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
40212         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
40213
40214 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
40215
40216         PR lto/60820
40217         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
40218
40219 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
40220
40221         * config/i386/i386.c (examine_argument): Return bool.  Return true if
40222         parameter should be passed in memory.
40223         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
40224         (construct_container): Update calls to examine_argument.
40225         (function_arg_advance_64): Ditto.
40226         (return_in_memory_32): Merge with ix86_return_in_memory.
40227         (return_in_memory_64): Ditto.
40228         (return_in_memory_ms_64): Ditto.
40229
40230 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
40231
40232         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
40233         * coverage.c (coverage_compute_profile_id): Handle externally visible
40234         symbols.
40235
40236 2014-04-14  Martin Jambor  <mjambor@suse.cz>
40237
40238         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
40239         DECL_DISREGARD_INLINE_LIMITS functions.
40240
40241 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
40242
40243         PR target/60827
40244         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
40245
40246 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
40247
40248         PR target/60827
40249         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
40250         optimize_insn_for_speed_p instead of
40251         optimize_function_for_speed_p.
40252
40253 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
40254
40255         * doc/invoke.texi (free): Document AArch64.
40256
40257 2014-04-14  Richard Biener  <rguenther@suse.de>
40258
40259         PR tree-optimization/60042
40260         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
40261         (insert_into_preds_of_block): Do not prevent PHI insertion
40262         for REFERENCE exprs here ...
40263         (eliminate_dom_walker::before_dom_children): ... but prevent
40264         their use here under similar conditions when applied to the
40265         IL after PRE optimizations.
40266
40267 2014-04-14  Richard Biener  <rguenther@suse.de>
40268
40269         * passes.def: Move early points-to after early SRA.
40270
40271 2014-04-14  Richard Biener  <rguenther@suse.de>
40272
40273         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
40274         check for which sign-changes we allow when forwarding
40275         a converted value into a switch.
40276
40277 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
40278
40279         * stor-layout.c (place_field): Finalize non-constant offset for the
40280         field, if any.
40281
40282 2014-04-14  Richard Biener  <rguenther@suse.de>
40283
40284         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
40285         as argument.
40286         (expand_switch_using_bit_tests_p): Likewise.
40287         (process_switch): Compute and pass on speed_p based on the
40288         switch stmt.
40289         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
40290         optimize_bb_for_speed_p.
40291
40292 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
40293
40294         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
40295         * function.h (struct function): Rename has_force_vect_loops into
40296         has_force_vectorize_loops.
40297         * lto-streamer-in.c (input_cfg): Adjust for renaming.
40298         (input_struct_function_base): Likewise.
40299         * lto-streamer-out.c (output_cfg): Likewise.
40300         (output_struct_function_base): Likewise.
40301         * omp-low.c (expand_omp_simd): Likewise.
40302         * tree-cfg.c (move_sese_region_to_fn): Likewise.
40303         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
40304         (version_loop_for_if_conversion): Likewise.
40305         (tree_if_conversion): Likewise.
40306         (main_tree_if_conversion): Likewise.
40307         (gate_tree_if_conversion): Likewise.
40308         * tree-inline.c (copy_loops): Likewise.
40309         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
40310         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
40311         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
40312         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
40313         * tree-vectorizer.c (vectorize_loops): Likewise.
40314         * tree-vectorizer.h (unlimited_cost_model): Likewise.
40315
40316 2014-04-14  Richard Biener  <rguenther@suse.de>
40317
40318         PR lto/60720
40319         * lto-streamer-out.c (wrap_refs): New function.
40320         (lto_output): Wrap symbol references in global initializes in
40321         type-preserving MEM_REFs.
40322
40323 2014-04-14  Christian Bruel  <christian.bruel@st.com>
40324
40325         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
40326
40327 2014-04-14  Christian Bruel  <christian.bruel@st.com>
40328
40329         * config/sh/sh.md (setmemqi): New expand pattern.
40330         * config/sh/sh.h (CLEAR_RATIO): Define.
40331         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
40332         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
40333
40334 2014-04-14  Richard Biener  <rguenther@suse.de>
40335
40336         PR middle-end/55022
40337         * fold-const.c (negate_expr_p): Don't negate directional rounding
40338         division.
40339         (fold_negate_expr): Likewise.
40340
40341 2014-04-14  Richard Biener  <rguenther@suse.de>
40342
40343         PR tree-optimization/59817
40344         PR tree-optimization/60453
40345         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
40346         recursion to catch all CHRECs in the scalar evolution and restrict
40347         the predicate for the remains appropriately.
40348
40349 2014-04-12  Catherine Moore  <clm@codesourcery.com>
40350
40351         * config/mips/constraints.md: Add new register constraint "kb".
40352         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
40353         (*movhi_internal): Likewise.
40354         (*movqi_internal): Likewise.
40355         * config/mips/mips.h (M16_STORE_REGS): New register class.
40356         (REG_CLASS_NAMES): Add M16_STORE_REGS.
40357         (REG_CLASS_CONTENTS): Likewise.
40358         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
40359
40360 2014-04-11  Tobias Burnus  <burnus@net-b.de>
40361
40362         PR c/60194
40363         * doc/invoke.texi (-Wformat-signedness): Document it.
40364         (Wformat=2): Mention that this enables -Wformat-signedness.
40365
40366 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
40367
40368         * common/config/epiphany/epiphany-common.c
40369         (epiphany_option_optimization_table): Enable section anchors by
40370         default at -O1 or higher.
40371         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
40372         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
40373         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
40374         carries no extra cost.
40375         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
40376         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
40377         * config/epiphany/predicates.md (memclob_operand): New predicate.
40378         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
40379         Use memclob_operand predicate and X constraint for operand 3.
40380
40381 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
40382
40383         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
40384         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
40385         its operands.
40386
40387 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
40388
40389         PR rtl-optimization/60651
40390         * mode-switching.c (optimize_mode_switching): Make sure to emit
40391         sets of a lower numbered entity before sets of a higher numbered
40392         entity to a mode of the same or lower priority.
40393         When creating a seginfo for a basic block that starts with a code
40394         label, move the insertion point past the code label.
40395         (new_seginfo): Document and enforce requirement that
40396         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
40397         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
40398         * doc/tm.texi: Regenerate.
40399
40400 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
40401
40402         PR target/60811
40403         * config/arc/arc.c (arc_save_restore): Fix assert typo.
40404
40405 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
40406
40407         * BASE-VER: Set to 4.10.0.
40408
40409 2014-04-11  Tobias Burnus  <burnus@net-b.de>
40410
40411         PR other/59055
40412         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
40413         * doc/gcc.texi (Service): Update description in the @menu
40414         * doc/invoke.texi (Option Summary): Remove misplaced and
40415         duplicated @menu.
40416
40417 2014-04-11  Steve Ellcey  <sellcey@mips.com>
40418             Jakub Jelinek  <jakub@redhat.com>
40419
40420         PR middle-end/60556
40421         * expr.c (convert_move): Use emit_store_flag_force instead of
40422         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
40423         argument to it.
40424
40425 2014-04-11  Richard Biener  <rguenther@suse.de>
40426
40427         PR middle-end/60797
40428         * varasm.c (assemble_alias): Avoid endless error reporting
40429         recursion by setting TREE_ASM_WRITTEN.
40430
40431 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
40432
40433         * config/s390/s390.md: Add a splitter for NOT rtx.
40434
40435 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
40436
40437         PR rtl-optimization/60663
40438         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
40439
40440 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
40441             Jakub Jelinek  <jakub@redhat.com>
40442
40443         PR lto/60567
40444         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
40445         flag from decl_node to node.
40446
40447 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
40448
40449         PR debug/60655
40450         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
40451         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
40452         ameliorating the cases where it can be.
40453
40454 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
40455
40456         Revert
40457         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
40458
40459         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
40460         (loadsync_<mode>): Change mode.
40461         (load_quadpti, store_quadpti): New.
40462         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40463         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40464         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
40465
40466 2014-04-09  Cong Hou  <congh@google.com>
40467
40468         PR testsuite/60773
40469         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
40470         documentation.
40471
40472 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40473
40474         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
40475         instead of vnor to exploit possible fusion opportunity in the
40476         future.
40477         (altivec_expand_vec_perm_const_le): Likewise.
40478
40479 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
40480
40481         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
40482         (loadsync_<mode>): Change mode.
40483         (load_quadpti, store_quadpti): New.
40484         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40485         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40486
40487 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
40488
40489         PR target/60763
40490         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
40491         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
40492         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
40493
40494 2014-04-08  Richard Biener  <rguenther@suse.de>
40495
40496         PR middle-end/60706
40497         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
40498         a 64bit widest int print double-int similar to on HWI64 hosts.
40499
40500 2014-04-08  Richard Biener  <rguenther@suse.de>
40501
40502         PR tree-optimization/60785
40503         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
40504         default defs properly.
40505
40506 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
40507
40508         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
40509         (Weffc++): Likewise.
40510
40511 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
40512
40513         * ipa-devirt.c (maybe_record_node): When node is not recorded,
40514         set completep to false rather than true.
40515
40516 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
40517
40518         PR target/60504
40519         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
40520         ARM_TARGET2_DWARF_FORMAT.
40521
40522 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
40523
40524         PR target/60609
40525         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
40526         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
40527         ADDR_DIFF_VEC.
40528
40529 2014-04-07  Richard Biener  <rguenther@suse.de>
40530
40531         PR tree-optimization/60766
40532         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
40533         (may_eliminate_iv): Convert cand_value_at result to desired type.
40534
40535 2014-04-07  Jason Merrill  <jason@redhat.com>
40536
40537         PR c++/60731
40538         * common.opt (-fno-gnu-unique): Add.
40539         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
40540
40541 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40542
40543         * haifa-sched.c: Fix outdated function reference and minor
40544         grammar errors in introductory comment.
40545
40546 2014-04-07  Richard Biener  <rguenther@suse.de>
40547
40548         PR middle-end/60750
40549         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
40550         for noreturn calls.
40551         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
40552
40553 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
40554
40555         PR debug/55794
40556         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
40557         size accounting for thunks.
40558         (pa_asm_output_mi_thunk): Use final_start_function() and
40559         final_end_function() to output function start and end directives.
40560
40561 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
40562
40563         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
40564         device specific ISA/ feature information. Remove short_sp and
40565         errata_skip ds.  Add avr_device_specific_features enum to have device
40566         specific info.
40567         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
40568         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
40569         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
40570         updated device specific info.
40571         * config/avr/avr-mcus.def: Merge device specific details to
40572         dev_attribute field.
40573         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
40574         errata_skip.
40575         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
40576         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
40577         assembler if RMW isa supported by current device.
40578         * config/avr/genmultilib.awk: Update as device info structure changed.
40579         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
40580
40581 2014-04-04  Cong Hou  <congh@google.com>
40582
40583         PR tree-optimization/60656
40584         * tree-vect-stmts.c (supportable_widening_operation):
40585         Fix a bug that elements in a vector with vect_used_by_reduction
40586         property are incorrectly reordered when the operation on it is not
40587         consistant with the one in reduction operation.
40588
40589 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
40590
40591         PR rtl-optimization/60155
40592         * gcse.c (record_set_data): New function.
40593         (single_set_gcse): New function.
40594         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
40595         (hoist_code): Likewise.
40596         (get_pressure_class_and_nregs): Likewise.
40597
40598 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
40599
40600         * explow.c (probe_stack_range): Emit a final optimization blockage.
40601
40602 2014-04-04  Anthony Green  <green@moxielogic.com>
40603
40604         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
40605         typos.
40606
40607 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
40608
40609         PR ipa/59626
40610         * lto-cgraph.c (input_overwrite_node): Check that partitioning
40611         flags are set only during streaming.
40612         * ipa.c (process_references, walk_polymorphic_call_targets,
40613         symtab_remove_unreachable_nodes): Drop bodies of always inline
40614         after early inlining.
40615         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
40616
40617 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
40618         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
40619
40620         PR debug/60655
40621         * dwarf2out.c (const_ok_for_output_1): Reject expressions
40622         containing a NOT.
40623
40624 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40625
40626         PR bootstrap/60743
40627         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
40628         duration.
40629         (cortex_a53_fdivd): Likewise.
40630
40631 2014-04-04  Martin Jambor  <mjambor@suse.cz>
40632
40633         PR ipa/60640
40634         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
40635         Adjust all callers.
40636         * cgraph.c (clone_of_p): Also return true if thunks match.
40637         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
40638         cgraph_function_or_thunk_node and an obsolete comment.
40639         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
40640         file.
40641         (build_function_decl_skip_args): Likewise.
40642         (set_new_clone_decl_and_node_flags): New function.
40643         (duplicate_thunk_for_node): Likewise.
40644         (redirect_edge_duplicating_thunks): Likewise.
40645         (cgraph_clone_node): New parameter args_to_skip, pass it to
40646         redirect_edge_duplicating_thunks which is called instead of
40647         cgraph_redirect_edge_callee.
40648         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
40649         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
40650
40651 2014-04-04  Jeff Law  <law@redhat.com>
40652
40653         PR target/60657
40654         * config/arm/predicates.md (const_int_I_operand): New predicate.
40655         (const_int_M_operand): Similarly.
40656         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
40657         const_int_operand.
40658         (insv_t2, extv_reg, extzv_t2): Likewise.
40659         (load_multiple_with_writeback): Similarly for const_int_I_operand.
40660         (pop_multiple_with_writeback_and_return): Likewise.
40661         (vfp_pop_multiple_with_writeback): Likewise
40662
40663 2014-04-04  Richard Biener  <rguenther@suse.de>
40664
40665         PR ipa/60746
40666         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
40667         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
40668         non-GIMPLE_LABELs.
40669         * gimplify.h (gimple_add_tmp_var_fn): Declare.
40670         * gimplify.c (gimple_add_tmp_var_fn): New function.
40671         * gimple-expr.h (create_tmp_reg_fn): Declare.
40672         * gimple-expr.c (create_tmp_reg_fn): New function.
40673         * gimple-low.c (record_vars_into): Don't change cfun.
40674         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
40675         code generation without cfun.
40676
40677 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
40678
40679         PR bootstrap/60719
40680         * Makefile.in (install-driver): Fix shell scripting.
40681
40682 2014-04-03  Cong Hou  <congh@google.com>
40683
40684         PR tree-optimization/60505
40685         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
40686         threshold of number of iterations below which no vectorization
40687         will be done.
40688         * tree-vect-loop.c (new_loop_vec_info):
40689         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
40690         * tree-vect-loop.c (vect_analyze_loop_operations):
40691         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
40692         * tree-vect-loop.c (vect_transform_loop):
40693         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
40694         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
40695         of iterations of the loop and see if we should build the epilogue.
40696
40697 2014-04-03  Richard Biener  <rguenther@suse.de>
40698
40699         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
40700         (streamer_tree_cache_create): Adjust.
40701         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
40702         to allow optional nodes array.
40703         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
40704         (streamer_tree_cache_append): Likewise.
40705         (streamer_tree_cache_create): Create nodes array optionally
40706         as specified by parameter.
40707         * lto-streamer-out.c (create_output_block): Avoid maintaining
40708         the node array in the writer cache.
40709         (DFS_write_tree): Remove assertion.
40710         (produce_asm_for_decls): Free the out decl state hash table early.
40711         * lto-streamer-in.c (lto_data_in_create): Adjust for
40712         streamer_tree_cache_create prototype change.
40713
40714 2014-04-03  Richard Biener  <rguenther@suse.de>
40715
40716         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
40717         set TREE_CHAIN to NULL_TREE.
40718
40719 2014-04-03  Richard Biener  <rguenther@suse.de>
40720
40721         PR tree-optimization/60740
40722         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
40723         over all GIMPLE_COND operands.
40724
40725 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
40726
40727         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
40728         (Weffc++): Remove Scott's numbering, merge lists and reference
40729         Wnon-virtual-dtor.
40730
40731 2014-04-03  Nick Clifton  <nickc@redhat.com>
40732
40733         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
40734         properly.
40735
40736 2014-04-03  Martin Jambor  <mjambor@suse.cz>
40737
40738         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
40739         mention gcc_unreachable before failing.
40740         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
40741         removed symbols.
40742
40743 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
40744
40745         PR ipa/60659
40746         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
40747         inconsistent code and instead mark the context inconsistent.
40748         (possible_polymorphic_call_targets): For inconsistent contexts
40749         return empty complete list.
40750
40751 2014-04-02  Anthony Green  <green@moxielogic.com>
40752
40753         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
40754         (extendqisi2, extendhisi2): Define.
40755         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
40756         (WCHAR_TYPE): Change to unsigned int.
40757
40758 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40759
40760         PR tree-optimization/60733
40761         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
40762         insertion point for PHI candidates to be the end of the feeding
40763         block for the PHI argument.
40764
40765 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
40766
40767         PR rtl-optimization/60650
40768         * lra-constraints.c (process_alt_operands): Decrease reject for
40769         earlyclobber matching.
40770
40771 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
40772
40773         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
40774
40775 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
40776
40777         * config/spu/spu.c (pad_bb): Do not crash when the last
40778         insn is CODE_FOR_blockage.
40779
40780 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
40781
40782         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
40783         lies outside the target mode.
40784
40785 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
40786
40787         PR target/60735
40788         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
40789         software floating point or no floating point registers, do not
40790         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
40791         in GPRs that occurs after we tested for GPRs that would never be
40792         true.
40793
40794         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
40795         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
40796         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
40797         specifically allow DDmode, since that does not use the SPE SIMD
40798         instructions.
40799
40800 2014-04-02  Richard Biener  <rguenther@suse.de>
40801
40802         PR middle-end/60729
40803         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
40804         MODE_INTs.  Properly use negv_optab.
40805         (expand_abs): Likewise.
40806
40807 2014-04-02  Richard Biener  <rguenther@suse.de>
40808
40809         PR bootstrap/60719
40810         * Makefile.in (install-driver): Guard extra installs with special
40811         names properly.
40812
40813 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
40814
40815         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
40816         Document vec_vgbbd.
40817
40818 2014-04-01  Richard Henderson  <rth@redhat.com>
40819
40820         PR target/60704
40821         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
40822         alternative enabled before register allocation.
40823
40824 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
40825
40826         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
40827         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
40828         typo.
40829         (nios2_large_got_address): Remove unneeded 'sym' parameter.
40830         (nios2_got_address): Update nios2_large_got_address call site.
40831         (nios2_delegitimize_address): New function.
40832         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
40833         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
40834         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
40835
40836 2014-04-01  Martin Husemann  <martin@duskware.de>
40837
40838         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
40839         for -mabi=32.
40840
40841 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
40842
40843         PR rtl-optimization/60604
40844         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
40845         check from register_operand.
40846         (register_operand): Redefine in terms of general_operand.
40847         (nonmemory_operand): Use register_operand for the non-constant cases.
40848
40849 2014-04-01  Richard Biener  <rguenther@suse.de>
40850
40851         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
40852
40853 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40854
40855         * doc/invoke.texi (mapp-regs): Clarify.
40856
40857 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
40858
40859         * config/i386/avx512fintrin.h (__v32hi): Define type.
40860         (__v64qi): Likewise.
40861         (_mm512_set1_epi8): Define.
40862         (_mm512_set1_epi16): Define.
40863         (_mm512_set4_epi32): Define.
40864         (_mm512_set4_epi64): Define.
40865         (_mm512_set4_pd): Define.
40866         (_mm512_set4_ps): Define.
40867         (_mm512_setr4_epi64): Define.
40868         (_mm512_setr4_epi32): Define.
40869         (_mm512_setr4_pd): Define.
40870         (_mm512_setr4_ps): Define.
40871         (_mm512_setzero_epi32): Define.
40872
40873 2014-03-31  Martin Jambor  <mjambor@suse.cz>
40874
40875         PR middle-end/60647
40876         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
40877         callsite_arguments_match_p.  Updated all callers.  Also check types of
40878         corresponding formal parameters and actual arguments.
40879         (not_all_callers_have_enough_arguments_p) Renamed to
40880         some_callers_have_mismatched_arguments_p.
40881
40882 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
40883
40884         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
40885
40886 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
40887
40888         PR target/60034
40889         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
40890         section anchor.
40891
40892 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
40893
40894         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
40895         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
40896         Split out
40897         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
40898         Use FMAMODE_NOVF512 mode iterator.
40899         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
40900         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
40901         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
40902         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
40903         Split out
40904         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
40905         Use VF_128_256 mode iterator.
40906         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
40907         Ditto.
40908
40909 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
40910
40911         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
40912         static chain if needed.
40913
40914 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
40915
40916         PR target/60697
40917         * lra-constraints.c (index_part_to_reg): New.
40918         (process_address): Use it.
40919
40920 2014-03-27  Jeff Law  <law@redhat.com>
40921             Jakub Jelinek  <jakub@redhat.com>
40922
40923         PR target/60648
40924         * expr.c (do_tablejump): Use simplify_gen_binary rather than
40925         gen_rtx_{PLUS,MULT} to build up the address expression.
40926
40927         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
40928         creating non-canonical RTL.
40929
40930 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
40931
40932         PR ipa/60243
40933         * ipa-inline.c (want_inline_small_function_p): Short circuit large
40934         functions; reorganize to make cheap checks first.
40935         (inline_small_functions): Do not estimate growth when dumping;
40936         it is expensive.
40937         * ipa-inline.h (inline_summary): Add min_size.
40938         (growth_likely_positive): New function.
40939         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
40940         (set_cond_stmt_execution_predicate): Cleanup.
40941         (estimate_edge_size_and_time): Compute min_size.
40942         (estimate_calls_size_and_time): Likewise.
40943         (estimate_node_size_and_time): Likewise.
40944         (inline_update_overall_summary): Update min_size.
40945         (do_estimate_edge_time): Likewise.
40946         (do_estimate_edge_size): Update.
40947         (do_estimate_edge_hints): Update.
40948         (growth_likely_positive): New function.
40949
40950 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
40951
40952         PR target/60693
40953         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
40954         also if addr has VOIDmode.
40955
40956 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40957
40958         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
40959         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
40960         Declare extern.
40961         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
40962         instructions as well as AdvancedSIMD loads.
40963
40964 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40965
40966         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
40967         Use crypto_aese type.
40968         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
40969         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
40970         crypto_aese, crypto_aesmc.  Move to types.md.
40971         * config/arm/types.md (crypto_aes): Split into crypto_aese,
40972         crypto_aesmc.
40973         * config/arm/iterators.md (crypto_type): Likewise.
40974
40975 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
40976
40977         * cgraph.c: Include expr.h and tree-dfa.h.
40978         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
40979         remove LHS.
40980
40981 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
40982
40983         PR target/60675
40984         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
40985         regs from checking multi-reg pseudos.
40986
40987 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
40988
40989         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
40990
40991 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
40992
40993         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
40994         if it would clobber the stack pointer, even temporarily.
40995
40996 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
40997
40998         * mode-switching.c: Make small adjustments to the top comment.
40999
41000 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
41001
41002         * config/rs6000/constraints.md (wD constraint): New constraint to
41003         match the constant integer to get the top DImode/DFmode out of a
41004         vector in a VSX register.
41005
41006         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
41007         match the constant integer to get the top DImode/DFmode out of a
41008         vector in a VSX register.
41009
41010         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
41011         for ISA 2.07.
41012
41013         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
41014         vbpermq builtins.
41015
41016         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
41017         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
41018
41019         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
41020         Optimize vec_extract of 64-bit values, where the value being
41021         extracted is in the top word, where we can use scalar
41022         instructions.  Add direct move and store support.  Combine the big
41023         endian/little endian vector select load support into a single insn.
41024         (vsx_extract_<mode>_internal1): Likewise.
41025         (vsx_extract_<mode>_internal2): Likewise.
41026         (vsx_extract_<mode>_load): Likewise.
41027         (vsx_extract_<mode>_store): Likewise.
41028         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
41029         combined into vsx_extract_<mode>_load.
41030         (vsx_extract_<mode>_one_le): Likewise.
41031
41032         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
41033         define the top 64-bit vector element.
41034
41035         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
41036         constraint.
41037
41038         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
41039         Document vec_vbpermq builtin.
41040
41041         PR target/60672
41042         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
41043         enable use of xxsldwi and xxpermdi builtin functions.
41044         (vec_xxpermdi): Likewise.
41045
41046         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
41047         Document use of vec_xxsldwi and vec_xxpermdi builtins.
41048
41049 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
41050
41051         PR rtl-optimization/60650
41052         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
41053         first_p.  Use it.
41054         (find_spills_for): New.
41055         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
41056         Spill all pseudos on the second iteration.
41057
41058 2014-03-27  Marek Polacek  <polacek@redhat.com>
41059
41060         PR c/50347
41061         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
41062         types.
41063
41064 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
41065
41066         * config/s390/s390.c (s390_can_use_return_insn): Check for
41067         call-saved FPRs on 31 bit.
41068
41069 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
41070
41071         PR middle-end/60682
41072         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
41073         if they need regimplification, just drop them instead of
41074         calling gimple_regimplify_operands on them.
41075
41076 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41077
41078         PR target/60580
41079         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
41080         (aarch64_frame_pointer_required): Adjust logic.
41081         (aarch64_can_eliminate): Adjust logic.
41082         (aarch64_override_options_after_change): Adjust logic.
41083
41084 2014-03-27  Dehao Chen  <dehao@google.com>
41085
41086         * ipa-inline.c (early_inliner): Update node's inline info.
41087
41088 2014-03-26  Dehao Chen  <dehao@google.com>
41089
41090         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
41091         compiler inserted conditional jumps for NAN float check.
41092
41093 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
41094
41095         * ubsan.h (ubsan_create_data): Change second argument's type
41096         to const location_t *.
41097         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
41098         _("<unknown>").
41099         (ubsan_create_data): Change second argument to const location_t *PLOC.
41100         Create Loc field whenever PLOC is non-NULL.
41101         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
41102         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
41103         callers.
41104
41105         PR other/59545
41106         * real.c (real_to_integer2): Change type of low to UHWI.
41107
41108 2014-03-26  Tobias Burnus  <burnus@net-b.de>
41109
41110         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
41111         (CILK_SELF_SPECS): New define.
41112         (driver_self_specs): Use it.
41113
41114 2014-03-26  Richard Biener  <rguenther@suse.de>
41115
41116         * tree-pretty-print.c (percent_K_format): Implement special
41117         case for LTO and its stripped down BLOCK tree.
41118
41119 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
41120
41121         PR sanitizer/60636
41122         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
41123
41124         * tree-vrp.c (simplify_internal_call_using_ranges): If only
41125         one range is range_int_cst_p, but not both, at least optimize
41126         addition/subtraction of 0 and multiplication by 0 or 1.
41127         * gimple-fold.c (gimple_fold_call): Fold
41128         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
41129         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
41130         INTEGER_CSTs, try to fold at least x * 0 and y - y.
41131
41132 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
41133
41134         PR rtl-optimization/60452
41135         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
41136         <case REG>: Return 1 for invalid offsets from the frame pointer.
41137
41138 2014-03-26  Marek Polacek  <polacek@redhat.com>
41139
41140         PR c/37428
41141         * doc/extend.texi (C Extensions): Mention variable-length arrays in
41142         a structure/union.
41143
41144 2014-03-26  Marek Polacek  <polacek@redhat.com>
41145
41146         PR c/39525
41147         * doc/extend.texi (Designated Inits): Describe what happens to omitted
41148         field members.
41149
41150 2014-03-26  Marek Polacek  <polacek@redhat.com>
41151
41152         PR other/59545
41153         * ira-color.c (update_conflict_hard_regno_costs): Perform the
41154         multiplication in unsigned type.
41155
41156 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
41157
41158         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
41159
41160 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
41161
41162         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
41163
41164 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
41165
41166         PR ipa/60315
41167         * cif-code.def (UNREACHABLE) New code.
41168         * ipa-inline.c (inline_small_functions): Skip edges to
41169         __builtlin_unreachable.
41170         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
41171         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
41172         predicate to __bulitin_unreachable.
41173         (set_cond_stmt_execution_predicate): Fix issue when
41174         invert_tree_comparison returns ERROR_MARK.
41175         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
41176         propagate to inline clones.
41177         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
41178         to unreachable.
41179         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
41180         * cgraphclones.c (cgraph_clone_node): If call destination is already
41181         ureachable, do not redirect it back.
41182         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
41183         unreachable.
41184
41185 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
41186
41187         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
41188         Do not modify inline clones.
41189
41190 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
41191
41192         * config/i386/i386.md (general_sext_operand): New mode attr.
41193         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
41194         don't generate (sign_extend (const_int)).
41195         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
41196         operands[2].  Use We constraint instead of <i> and
41197         <general_sext_operand> predicate instead of <general_operand>.
41198         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
41199         * config/i386/constraints.md (We): New constraint.
41200         * config/i386/predicates.md (x86_64_sext_operand,
41201         sext_operand): New predicates.
41202
41203 2014-03-25  Martin Jambor  <mjambor@suse.cz>
41204
41205         PR ipa/60600
41206         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
41207         inconsistent devirtualizations to __builtin_unreachable.
41208
41209 2014-03-25  Marek Polacek  <polacek@redhat.com>
41210
41211         PR c/35449
41212         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
41213
41214 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
41215
41216         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
41217         order of elements for big-endian.
41218
41219 2014-03-25  Richard Biener  <rguenther@suse.de>
41220
41221         PR middle-end/60635
41222         * gimplify-me.c (gimple_regimplify_operands): Update the
41223         re-gimplifed stmt.
41224
41225 2014-03-25  Martin Jambor  <mjambor@suse.cz>
41226
41227         PR ipa/59176
41228         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
41229         (lto_output_varpool_node): Likewise.
41230         (input_overwrite_node): Likewise.
41231         (input_varpool_node): Likewise.
41232
41233 2014-03-25  Richard Biener  <rguenther@suse.de>
41234
41235         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
41236         (run_gcc): Likewise.
41237
41238 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
41239
41240         * combine.c (simplify_compare_const): Add MODE argument.
41241         Handle mode_width 0 as very large mode_width.
41242         (try_combine, simplify_comparison): Adjust callers.
41243
41244         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
41245         type to avoid signed integer overflow.
41246         * explow.c (plus_constant): Likewise.
41247
41248 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
41249
41250         * doc/generic.texi: Correct typos.
41251
41252 2014-03-24  Tobias Burnus  <burnus@net-b.de>
41253
41254         * doc/invoke.texi (-flto): Expand section about
41255         using static libraries with LTO.
41256
41257 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
41258
41259         PR rtl-optimization/60501
41260         * optabs.def (addptr3_optab): New optab.
41261         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
41262         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
41263         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
41264
41265         * lra.c (emit_add3_insn): Use the addptr pattern if available.
41266
41267         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
41268
41269 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
41270
41271         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
41272         _mm512_set1_pd.
41273
41274         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
41275         (_mm256_undefined_ps): Define.
41276         (_mm256_undefined_pd): Define.
41277         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
41278         (_mm_undefined_pd): Define.
41279         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
41280         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
41281         (_mm512_undefined_ps): Define.
41282         (_mm512_undefined_pd): Define.
41283         Use _mm*_undefined_*.
41284         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
41285
41286 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
41287
41288         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
41289         (lshr_simd): DI mode added.
41290         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
41291         (aarch64_ushr_simddi): Likewise.
41292         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
41293         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
41294         (vshrd_n_u64): Likewise.
41295
41296 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41297
41298         * Makefile.in (s-macro_list): Depend on cc1.
41299
41300 2014-03-23  Teresa Johnson  <tejohnson@google.com>
41301
41302         * ipa-utils.c (ipa_print_order): Use specified dump file.
41303
41304 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
41305
41306         PR rtl-optimization/60601
41307         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
41308
41309         * gcc.c (eval_spec_function): Initialize save_growing_value.
41310
41311 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
41312
41313         PR sanitizer/60613
41314         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
41315         code == MINUS_EXPR, never swap op0 with op1.
41316
41317         * toplev.c (init_local_tick): Avoid signed integer multiplication
41318         overflow.
41319         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
41320         shift by first operand's bitsize.
41321
41322 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
41323
41324         PR target/60610
41325         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
41326         redefine to 1 or 0.
41327         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
41328         TARGET_ISA_64BIT_P(x).
41329
41330 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41331
41332         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
41333         pattern for vector nor instead of subtract from splat(-1).
41334         (altivec_expand_vec_perm_const_le): Likewise.
41335
41336 2014-03-21  Richard Henderson  <rth@twiddle.net>
41337
41338         PR target/60598
41339         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
41340         related insns after epilogue_completed.
41341
41342 2014-03-21  Martin Jambor  <mjambor@suse.cz>
41343
41344         PR ipa/59176
41345         * cgraph.h (symtab_node): New flag body_removed.
41346         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
41347         when removing bodies.
41348         * symtab.c (dump_symtab_base): Dump body_removed flag.
41349         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
41350         had their bodies removed.
41351
41352 2014-03-21  Martin Jambor  <mjambor@suse.cz>
41353
41354         PR ipa/60419
41355         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
41356         in the border.
41357
41358 2014-03-21  Richard Biener  <rguenther@suse.de>
41359
41360         PR tree-optimization/60577
41361         * tree-core.h (struct tree_base): Document nothrow_flag use
41362         in DECL_NONALIASED.
41363         * tree.h (DECL_NONALIASED): New.
41364         (may_be_aliased): Adjust.
41365         * coverage.c (build_var): Set DECL_NONALIASED.
41366
41367 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
41368
41369         * expr.c (expand_expr_real_1): Remove outdated comment.
41370
41371 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
41372
41373         PR middle-end/60597
41374         * ira.c (adjust_cleared_regs): Call copy_rtx on
41375         *reg_equiv[REGNO (loc)].src_p before passing it to
41376         simplify_replace_fn_rtx.
41377
41378         PR target/60568
41379         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
41380         into CONST, put pic register as first operand of PLUS.  Use
41381         gen_const_mem for both 32-bit and 64-bit PIC got loads.
41382
41383 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41384
41385         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
41386
41387 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
41388
41389         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
41390         around for store forwarding issue in the FPU on the UT699.
41391         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
41392         loads and operations if -mfix-ut699 is specified.
41393         (divtf3_hq): Tweak attribute.
41394         (sqrttf2_hq): Likewise.
41395
41396 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
41397
41398         * calls.c (store_one_arg): Remove incorrect const qualification on the
41399         type of the temporary.
41400         * cfgexpand.c (expand_return): Likewise.
41401         * expr.c (expand_constructor): Likewise.
41402         (expand_expr_real_1): Likewise.
41403
41404 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
41405
41406         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
41407         of parts.
41408
41409 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
41410
41411         PR target/60039
41412         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
41413
41414 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
41415
41416         * config/arm/aarch-common-protos.h
41417         (alu_cost_table): Fix spelling of "extend".
41418         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
41419
41420 2014-03-19  Richard Biener  <rguenther@suse.de>
41421
41422         PR middle-end/60553
41423         * tree-core.h (tree_type_common): Re-order pointer members
41424         to reduce recursion depth during GC walks.
41425
41426 2014-03-19  Marek Polacek  <polacek@redhat.com>
41427
41428         PR sanitizer/60569
41429         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
41430         before accessing it.
41431
41432 2014-03-19  Richard Biener  <rguenther@suse.de>
41433
41434         PR lto/59543
41435         * lto-streamer-in.c (input_function): In WPA stage do not drop
41436         debug stmts.
41437
41438 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
41439
41440         PR tree-optimization/60559
41441         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
41442         with build_zero_cst assignment.
41443
41444 2014-03-18  Kai Tietz  <ktietz@redhat.com>
41445
41446         PR rtl-optimization/56356
41447         * sdbout.c (sdbout_parms): Verify that parms'
41448         incoming argument is valid.
41449         (sdbout_reg_parms): Likewise.
41450
41451 2014-03-18  Richard Henderson  <rth@redhat.com>
41452
41453         PR target/60562
41454         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
41455         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
41456         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
41457
41458 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
41459
41460         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
41461         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
41462         Italicize plugin event names in description.  Explain that
41463         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
41464         Remind that no GCC functions should be called after PLUGIN_FINISH.
41465         Explain what pragmas with expansion are.
41466
41467 2014-03-18  Martin Liska  <mliska@suse.cz>
41468
41469         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
41470         gimple call statement is update.
41471         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
41472         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
41473
41474 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
41475
41476         PR sanitizer/60557
41477         * ubsan.c (ubsan_instrument_unreachable): Call
41478         initialize_sanitizer_builtins.
41479         (ubsan_pass): Likewise.
41480
41481         PR sanitizer/60535
41482         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
41483         varpool_finalize_decl instead of rest_of_decl_compilation.
41484
41485 2014-03-18  Richard Biener  <rguenther@suse.de>
41486
41487         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
41488         by using bitmap_and_compl instead of bitmap_and_compl_into.
41489         (df_rd_transfer_function): Likewise.
41490
41491 2014-03-18  Richard Biener  <rguenther@suse.de>
41492
41493         * doc/lto.texi (fresolution): Fix typo.
41494
41495 2014-03-18  Richard Biener  <rguenther@suse.de>
41496
41497         * doc/invoke.texi (flto): Update for changes in 4.9.
41498
41499 2014-03-18  Richard Biener  <rguenther@suse.de>
41500
41501         * doc/loop.texi: Remove section on the removed lambda framework.
41502         Update loop docs with recent changes in preserving loop structure.
41503
41504 2014-03-18  Richard Biener  <rguenther@suse.de>
41505
41506         * doc/lto.texi (-fresolution): Document.
41507
41508 2014-03-18  Richard Biener  <rguenther@suse.de>
41509
41510         * doc/contrib.texi: Adjust my name.
41511
41512 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
41513
41514         PR ipa/58721
41515         * internal-fn.c: Include diagnostic-core.h.
41516         (expand_BUILTIN_EXPECT): New function.
41517         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
41518         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
41519         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
41520         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
41521         IFN_BUILTIN_EXPECT.
41522         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
41523         Revert 3 argument __builtin_expect code.
41524         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
41525         * gimple-fold.c (gimple_fold_call): Likewise.
41526         * tree.h (fold_builtin_expect): New prototype.
41527         * builtins.c (build_builtin_expect_predicate): Add predictor
41528         argument, if non-NULL, create 3 argument __builtin_expect.
41529         (fold_builtin_expect): No longer static.  Add ARG2 argument,
41530         pass it through to build_builtin_expect_predicate.
41531         (fold_builtin_2): Adjust caller.
41532         (fold_builtin_3): Handle BUILT_IN_EXPECT.
41533         * internal-fn.def (BUILTIN_EXPECT): New.
41534
41535 2014-03-18  Tobias Burnus  <burnus@net-b.de>
41536
41537         PR ipa/58721
41538         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
41539         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
41540         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
41541
41542 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
41543
41544         PR ipa/58721
41545         * predict.c (combine_predictions_for_bb): Fix up formatting.
41546         (expr_expected_value_1, expr_expected_value): Add predictor argument,
41547         fill what it points to if non-NULL.
41548         (tree_predict_by_opcode): Adjust caller, use the predictor.
41549         * predict.def (PRED_COMPARE_AND_SWAP): Add.
41550
41551 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
41552
41553         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
41554         proper constant for the store mode.
41555
41556 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
41557
41558         * symtab.c (change_decl_assembler_name): Fix transparent alias
41559         chain construction.
41560
41561 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
41562
41563         * config/aarch64/aarch64.c: Correct the comments about the
41564         aarch64 stack layout.
41565
41566 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
41567
41568         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
41569         check for GF_OMP_FOR_KIND_FOR.
41570
41571 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
41572
41573         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
41574         ymm and zmm register names.
41575
41576 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
41577
41578         PR target/60516
41579         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
41580         note creation for the 2010-08-31 changes.
41581
41582 2014-03-17  Marek Polacek  <polacek@redhat.com>
41583
41584         PR middle-end/60534
41585         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
41586         as -fno-tree-loop-vectorize.
41587         (expand_omp_simd): Likewise.
41588
41589 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
41590
41591         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
41592         (eligible_for_call_delay): New prototype.
41593         * config/sparc/sparc.c (tls_call_delay): Rename into...
41594         (eligible_for_call_delay): ...this.  Return false if the instruction
41595         cannot be put in the delay slot of a branch.
41596         (eligible_for_restore_insn): Simplify.
41597         (eligible_for_return_delay): Return false if the instruction cannot be
41598         put in the delay slot of a branch and simplify.
41599         (eligible_for_sibcall_delay): Return false if the instruction cannot be
41600         put in the delay slot of a branch.
41601         * config/sparc/sparc.md (fix_ut699): New attribute.
41602         (tls_call_delay): Delete.
41603         (in_call_delay): Reimplement.
41604         (eligible_for_sibcall_delay): Rename into...
41605         (in_sibcall_delay): ...this.
41606         (eligible_for_return_delay): Rename into...
41607         (in_return_delay): ...this.
41608         (in_branch_delay): Reimplement.
41609         (in_uncond_branch_delay): Delete.
41610         (in_annul_branch_delay): Delete.
41611
41612 2014-03-14  Richard Henderson  <rth@redhat.com>
41613
41614         PR target/60525
41615         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
41616         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
41617         (*floathi<X87MODEF>2_i387_with_temp): Remove.
41618         (floathi splitters): Remove.
41619         (float<SWI48x>xf2): New pattern.
41620         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
41621         code that tried to handle DImode for 32-bit, but which was excluded
41622         by the pattern's condition.  Drop allocation of stack temporary.
41623         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
41624         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
41625         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
41626         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
41627         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
41628         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
41629         (*float<SWI48><MODEF>2_sse_interunit): Remove.
41630         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
41631         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
41632         (*float<SWI48x><X87MODEF>2_i387): Remove.
41633         (all float _with_temp splitters): Remove.
41634         (*float<SWI48x><MODEF>2_i387): New pattern.
41635         (*float<SWI48><MODEF>2_sse): New pattern.
41636         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
41637         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
41638
41639 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
41640             Marek Polacek  <polacek@redhat.com>
41641
41642         PR middle-end/60484
41643         * common.opt (dump_base_name_prefixed): New Variable.
41644         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
41645         if x_dump_base_name_prefixed is already set, set it at the end.
41646
41647 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
41648
41649         PR rtl-optimization/60508
41650         * lra-constraints.c (get_reload_reg): Add new parameter
41651         in_subreg_p.
41652         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
41653         Pass the new parameter values.
41654
41655 2014-03-14  Richard Biener  <rguenther@suse.de>
41656
41657         * common.opt: Revert unintented changes from r205065.
41658         * opts.c: Likewise.
41659
41660 2014-03-14  Richard Biener  <rguenther@suse.de>
41661
41662         PR middle-end/60518
41663         * cfghooks.c (split_block): Properly adjust all loops the
41664         block was a latch of.
41665
41666 2014-03-14  Martin Jambor  <mjambor@suse.cz>
41667
41668         PR lto/60461
41669         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
41670         and simplify it.
41671
41672 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
41673
41674         PR target/59396
41675         * config/avr/avr.c (avr_set_current_function): Pass function name
41676         through default_strip_name_encoding before sanity checking instead
41677         of skipping the first char of the assembler name.
41678
41679 2014-03-13  Richard Henderson  <rth@redhat.com>
41680
41681         PR debug/60438
41682         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
41683         (ix86_force_to_memory, ix86_free_from_memory): Remove.
41684         * config/i386/i386-protos.h: Likewise.
41685         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
41686         in the expander instead of a splitter.
41687         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
41688         any possibility of requiring a memory.
41689         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
41690         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
41691         (fp branch splitters): Update for ix86_split_fp_branch.
41692         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
41693         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
41694         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
41695         (*fop_<MODEF>_2_i387): Remove f/r alternative.
41696         (*fop_<MODEF>_3_i387): Likewise.
41697         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
41698         (splitters for the fop_* register patterns): Remove.
41699         (fscalexf4_i387): Rename from *fscalexf4_i387.
41700         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
41701
41702 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
41703
41704         PR tree-optimization/59779
41705         * tree-dfa.c (get_ref_base_and_extent): Use double_int
41706         type for bitsize and maxsize instead of HOST_WIDE_INT.
41707
41708 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
41709
41710         PR rtl-optimization/57320
41711         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
41712         the CFG after thread_prologue_and_epilogue_insns.
41713
41714 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
41715
41716         PR rtl-optimization/57189
41717         * lra-constraints.c (process_alt_operands): Disfavor spilling
41718         vector pseudos.
41719
41720 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
41721
41722         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
41723
41724 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
41725
41726         PR tree-optimization/59025
41727         PR middle-end/60418
41728         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
41729         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
41730
41731 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
41732
41733         PR target/60486
41734         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
41735         calls of avr_out_plus_1.
41736
41737 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
41738
41739         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
41740         BB's single pred and update the father loop's latch info later.
41741
41742 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
41743
41744         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
41745         (VEC_M): Likewise.
41746         (VEC_N): Likewise.
41747         (VEC_R): Likewise.
41748         (VEC_base): Likewise.
41749         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
41750         registers, we need to swap double words in little endian mode.
41751
41752         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
41753         to be a container mode for 128-bit integer operations added in ISA
41754         2.07.  Unlike TImode and PTImode, the preferred register set is
41755         the Altivec/VMX registers for the 128-bit operations.
41756
41757         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
41758         declarations.
41759         (rs6000_split_128bit_ok_p): Likewise.
41760
41761         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
41762         macros for creating ISA 2.07 normal and overloaded builtin
41763         functions with 3 arguments.
41764         (BU_P8V_OVERLOAD_3): Likewise.
41765         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
41766         for use as overloaded functions.
41767         (VPERM_1TI_UNS): Likewise.
41768         (VSEL_1TI): Likewise.
41769         (VSEL_1TI_UNS): Likewise.
41770         (ST_INTERNAL_1ti): Likewise.
41771         (LD_INTERNAL_1ti): Likewise.
41772         (XXSEL_1TI): Likewise.
41773         (XXSEL_1TI_UNS): Likewise.
41774         (VPERM_1TI): Likewise.
41775         (VPERM_1TI_UNS): Likewise.
41776         (XXPERMDI_1TI): Likewise.
41777         (SET_1TI): Likewise.
41778         (LXVD2X_V1TI): Likewise.
41779         (STXVD2X_V1TI): Likewise.
41780         (VEC_INIT_V1TI): Likewise.
41781         (VEC_SET_V1TI): Likewise.
41782         (VEC_EXT_V1TI): Likewise.
41783         (EQV_V1TI): Likewise.
41784         (NAND_V1TI): Likewise.
41785         (ORC_V1TI): Likewise.
41786         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
41787         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
41788         overloaded builtin.
41789         (VADDUQM): Likewise.
41790         (VSUBCUQ): Likewise.
41791         (VADDEUQM): Likewise.
41792         (VADDECUQ): Likewise.
41793         (VSUBEUQM): Likewise.
41794         (VSUBECUQ): Likewise.
41795
41796         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
41797         __int128_t and __uint128_t types.
41798         (__uint128_type): Likewise.
41799         (altivec_categorize_keyword): Add support for vector __int128_t,
41800         vector __uint128_t, vector __int128, and vector unsigned __int128
41801         as a container type for TImode operations that need to be done in
41802         VSX/Altivec registers.
41803         (rs6000_macro_to_expand): Likewise.
41804         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
41805         to support 128-bit integer instructions vaddcuq, vadduqm,
41806         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
41807         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
41808
41809         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
41810         for V1TImode, and set up preferences to use VSX/Altivec registers.
41811         Setup VSX reload handlers.
41812         (rs6000_debug_reg_global): Likewise.
41813         (rs6000_init_hard_regno_mode_ok): Likewise.
41814         (rs6000_preferred_simd_mode): Likewise.
41815         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
41816         (easy_altivec_constant): Likewise.
41817         (output_vec_const_move): Likewise.
41818         (rs6000_expand_vector_set): Convert V1TImode set and extract to
41819         simple move.
41820         (rs6000_expand_vector_extract): Likewise.
41821         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
41822         addressing.
41823         (rs6000_const_vec): Add support for V1TImode.
41824         (rs6000_emit_le_vsx_load): Swap double words when loading or
41825         storing TImode/V1TImode.
41826         (rs6000_emit_le_vsx_store): Likewise.
41827         (rs6000_emit_le_vsx_move): Likewise.
41828         (rs6000_emit_move): Add support for V1TImode.
41829         (altivec_expand_ld_builtin): Likewise.
41830         (altivec_expand_st_builtin): Likewise.
41831         (altivec_expand_vec_init_builtin): Likewise.
41832         (altivec_expand_builtin): Likewise.
41833         (rs6000_init_builtins): Add support for V1TImode type.  Add
41834         support for ISA 2.07 128-bit integer builtins.  Define type names
41835         for the VSX/Altivec vector types.
41836         (altivec_init_builtins): Add support for overloaded vector
41837         functions with V1TImode type.
41838         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
41839         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
41840         external function.
41841         (rs6000_split_128bit_ok_p): Likewise.
41842         (rs6000_handle_altivec_attribute): Create V1TImode from vector
41843         __int128_t and vector __uint128_t.
41844
41845         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
41846         and mode attributes.
41847         (VSX_M): Likewise.
41848         (VSX_M2): Likewise.
41849         (VSm): Likewise.
41850         (VSs): Likewise.
41851         (VSr): Likewise.
41852         (VSv): Likewise.
41853         (VS_scalar): Likewise.
41854         (VS_double): Likewise.
41855         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
41856
41857         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
41858         we support the ISA 2.07 128-bit integer arithmetic instructions.
41859         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
41860         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
41861         and TImode types for use with the builtin functions.
41862         (V1TI_type_node): Likewise.
41863         (unsigned_V1TI_type_node): Likewise.
41864         (intTI_type_internal_node): Likewise.
41865         (uintTI_type_internal_node): Likewise.
41866
41867         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
41868         128-bit builtin functions.
41869         (UNSPEC_VADDEUQM): Likewise.
41870         (UNSPEC_VADDECUQ): Likewise.
41871         (UNSPEC_VSUBCUQ): Likewise.
41872         (UNSPEC_VSUBEUQM): Likewise.
41873         (UNSPEC_VSUBECUQ): Likewise.
41874         (VM): Add V1TImode to vector mode iterators.
41875         (VM2): Likewise.
41876         (VI_unit): Likewise.
41877         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
41878         (altivec_vaddcuq): Likewise.
41879         (altivec_vsubuqm): Likewise.
41880         (altivec_vsubcuq): Likewise.
41881         (altivec_vaddeuqm): Likewise.
41882         (altivec_vaddecuq): Likewise.
41883         (altivec_vsubeuqm): Likewise.
41884         (altivec_vsubecuq): Likewise.
41885
41886         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
41887         mode iterators.
41888         (BOOL_128): Likewise.
41889         (BOOL_REGS_OUTPUT): Likewise.
41890         (BOOL_REGS_OP1): Likewise.
41891         (BOOL_REGS_OP2): Likewise.
41892         (BOOL_REGS_UNARY): Likewise.
41893         (BOOL_REGS_AND_CR0): Likewise.
41894
41895         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
41896         128-bit integer builtin support.
41897         (vec_vadduqm): Likewise.
41898         (vec_vaddecuq): Likewise.
41899         (vec_vaddeuqm): Likewise.
41900         (vec_vsubecuq): Likewise.
41901         (vec_vsubeuqm): Likewise.
41902         (vec_vsubcuq): Likewise.
41903         (vec_vsubuqm): Likewise.
41904
41905         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
41906         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
41907         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
41908         128-bit integer add/subtract to ISA 2.07.
41909
41910 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
41911
41912         * config/arc/arc.c (arc_predicate_delay_insns):
41913         Fix third argument passed to conditionalize_nonjump.
41914
41915 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
41916
41917         * config/aarch64/aarch64-builtins.c
41918         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
41919         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
41920         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
41921         instead of __builtin_lfloor.
41922         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
41923
41924 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
41925
41926         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
41927         (tree_ssa_ifcombine_bb_1): New function.
41928         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
41929         is an empty forwarder block to then_bb or vice versa and then_bb
41930         and else_bb are effectively swapped.
41931
41932 2014-03-12  Christian Bruel  <christian.bruel@st.com>
41933
41934         PR target/60264
41935         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
41936         REG_CFA_DEF_CFA note.
41937         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
41938         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
41939
41940 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
41941
41942         PR tree-optimization/60454
41943         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
41944
41945 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41946
41947         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
41948         Do not define target_cpu_default2 to generic.
41949         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
41950         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
41951         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
41952
41953 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
41954             Marc Glisse  <marc.glisse@inria.fr>
41955
41956         PR tree-optimization/60502
41957         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
41958         instead of build_low_bits_mask.
41959
41960 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
41961
41962         PR middle-end/60482
41963         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
41964         if there are multiple uses, but op doesn't live on E edge.
41965         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
41966         clobber stmts before __builtin_unreachable.
41967
41968 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
41969
41970         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
41971         hard_frame_pointer_rtx.
41972         * cse.c (cse_insn): Remove volatile check.
41973         * cselib.c (cselib_process_insn): Likewise.
41974         * dse.c (scan_insn): Likewise.
41975
41976 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
41977
41978         * config/arc/arc.c (conditionalize_nonjump): New function,
41979         broken out of ...
41980         (arc_ifcvt): ... this.
41981         (arc_predicate_delay_insns): Use it.
41982
41983 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
41984
41985         * config/arc/predicates.md (extend_operand): During/after reload,
41986         allow const_int_operand.
41987         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
41988         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
41989         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
41990         to "i".
41991         (umulsi3_highpart_i): Likewise.
41992
41993 2014-03-11  Richard Biener  <rguenther@suse.de>
41994
41995         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
41996         Add asserts to guard possible wrong-code bugs.
41997
41998 2014-03-11  Richard Biener  <rguenther@suse.de>
41999
42000         PR tree-optimization/60429
42001         PR tree-optimization/60485
42002         * tree-ssa-structalias.c (set_union_with_increment): Properly
42003         take into account all fields that overlap the shifted vars.
42004         (do_sd_constraint): Likewise.
42005         (do_ds_constraint): Likewise.
42006         (get_constraint_for_ptr_offset): Likewise.
42007
42008 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
42009
42010         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
42011         (nios2_compute_frame_layout):
42012         Add calculation of cfun->machine->fp_save_offset.
42013         (nios2_expand_prologue): Correct setting of frame pointer register
42014         in prologue.
42015         (nios2_expand_epilogue): Update recovery of stack pointer from
42016         frame pointer accordingly.
42017         (nios2_initial_elimination_offset): Update calculation of offset
42018         for eliminating to HARD_FRAME_POINTER_REGNUM.
42019
42020 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
42021
42022         PR ipa/60457
42023         * ipa.c (symtab_remove_unreachable_nodes): Don't call
42024         cgraph_get_create_node on VAR_DECLs.
42025
42026 2014-03-10  Richard Biener  <rguenther@suse.de>
42027
42028         PR middle-end/60474
42029         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
42030
42031 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
42032
42033         * config/vms/vms.opt (vms_float_format): New variable.
42034
42035 2014-03-08  Tobias Burnus  <burnus@net-b.de>
42036
42037         * doc/invoke.texi (-fcilkplus): Update implementation status.
42038
42039 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
42040             Richard Biener  <rguenther@suse.de>
42041
42042         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
42043         consistently accross all TUs.
42044         (run_gcc): Enable -fshort-double automatically at link at link-time
42045         and disallow override.
42046
42047 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
42048
42049         PR target/58271
42050         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
42051         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
42052         if they can't be used.
42053
42054 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42055
42056         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
42057         for Solaris 11/x86 ld.
42058         * configure: Regenerate.
42059
42060 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42061
42062         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
42063         (LIB_TLS_SPEC): Save as ld_tls_libs.
42064         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
42065         (HAVE_AS_IX86_TLSLDM): New test.
42066         * configure, config.in: Regenerate.
42067         * config/i386/i386.c (legitimize_tls_address): Fall back to
42068         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
42069         cannot support TLS_MODEL_LOCAL_DYNAMIC.
42070         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
42071         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
42072
42073 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
42074
42075         * common.opt (fira-loop-pressure): Mark as optimization.
42076
42077 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
42078
42079         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
42080         an OpenMP mappable type.
42081
42082 2014-03-06  Matthias Klose  <doko@ubuntu.com>
42083
42084         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
42085         MULTILIB_OSDIRNAMES is not defined.
42086
42087 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
42088             Meador Inge  <meadori@codesourcery.com>
42089
42090         PR target/58595
42091         * config/arm/arm.c (arm_tls_symbol_p): Remove.
42092         (arm_legitimize_address): Call legitimize_tls_address for any
42093         arm_tls_referenced_p expression, handle constant addend.  Call it
42094         before testing for !TARGET_ARM.
42095         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
42096
42097 2014-03-06  Richard Biener  <rguenther@suse.de>
42098
42099         PR middle-end/60445
42100         PR lto/60424
42101         PR lto/60427
42102         Revert
42103         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
42104
42105         * tree-streamer.c (record_common_node): Assert we don't record
42106         nodes with type double.
42107         (preload_common_node): Skip type double, complex double and double
42108         pointer since it is now frontend dependent due to fshort-double option.
42109
42110 2014-03-06  Richard Biener  <rguenther@suse.de>
42111
42112         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
42113         or -fno-lto is specified and the linker has full plugin support.
42114         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
42115         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
42116         * lto-wrapper.c (merge_and_complain): Merge compile-time
42117         optimization levels.
42118         (run_gcc): And pass it through to the link options.
42119
42120 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
42121
42122         PR debug/60381
42123         Revert:
42124         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
42125         PR debug/59992
42126         * cselib.c (remove_useless_values): Skip to avoid quadratic
42127         behavior if the condition moved from...
42128         (cselib_process_insn): ... here holds.
42129
42130 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
42131
42132         PR plugins/59335
42133         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
42134         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
42135
42136         PR plugins/59335
42137         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
42138         (TM_H): Add x86-tune.def.
42139
42140 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42141
42142         * config/aarch64/aarch64.c (generic_tunings):
42143         Use cortexa57_extra_costs.
42144
42145 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
42146
42147         PR lto/60404
42148         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
42149         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
42150         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
42151         cost for in_lto_p.
42152
42153 2014-03-04  Heiher  <r@hev.cc>
42154
42155         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
42156         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
42157
42158 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
42159
42160         * config/i386/predicates.md (const2356_operand): Change to ...
42161         (const2367_operand): ... this.
42162         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
42163         const2367_operand.
42164         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
42165         (*avx512pf_scatterpf<mode>sf): Ditto.
42166         (avx512pf_scatterpf<mode>df): Ditto.
42167         (*avx512pf_scatterpf<mode>df_mask): Ditto.
42168         (*avx512pf_scatterpf<mode>df): Ditto.
42169         * config/i386/i386.c (ix86_expand_builtin): Update
42170         incorrect hint operand error message.
42171
42172 2014-03-04  Richard Biener  <rguenther@suse.de>
42173
42174         * lto-section-in.c (lto_get_section_data): Fix const cast.
42175
42176 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
42177
42178         * tree-streamer.c (record_common_node): Assert we don't record
42179         nodes with type double.
42180         (preload_common_node): Skip type double, complex double and double
42181         pointer since it is now frontend dependent due to fshort-double option.
42182
42183 2014-03-04  Richard Biener  <rguenther@suse.de>
42184
42185         PR lto/60405
42186         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
42187         (lto_input_toplevel_asms): Likewise.
42188         * lto-section-in.c (lto_get_section_data): Instead do it here
42189         for every section.
42190
42191 2014-03-04  Richard Biener  <rguenther@suse.de>
42192
42193         PR tree-optimization/60382
42194         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
42195         dead PHIs a reduction.
42196
42197 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
42198
42199         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
42200         hint value.
42201         (_mm_prefetch): Move out of GCC target("sse") pragma.
42202         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
42203         GCC target("prfchw") pragma.
42204         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
42205         for locality <= 2.
42206         * config/i386/i386.c (ix86_option_override_internal): Enable
42207         -mprfchw with -mprefetchwt1.
42208
42209 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
42210
42211         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
42212         Mark as varying.
42213
42214 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
42215
42216         * opts.h (CL_PCH_IGNORE): Define.
42217         * targhooks.c (option_affects_pch_p):
42218         Return false for options that have CL_PCH_IGNORE set.
42219         * opt-functions.awk: Process PchIgnore.
42220         * doc/options.texi: Document PchIgnore.
42221
42222         * config/arc/arc.opt (misize): Add PchIgnore property.
42223
42224 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42225
42226         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
42227         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
42228         constraint on constants to permit them being loaded into
42229         GENERAL_REGS or BASE_REGS.
42230
42231 2014-03-03  Nick Clifton  <nickc@redhat.com>
42232
42233         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
42234         anti-cacnonical alternatives.
42235         (negandhi3_real): New pattern.
42236         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
42237
42238 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
42239
42240         * config/avr/avr-mcus.def: Remove atxmega16x1.
42241         * config/avr/avr-tables.opt: Regenerate.
42242         * config/avr/t-multilib: Regenerate.
42243         * doc/avr-mmcu.texi: Regenerate.
42244
42245 2014-03-03  Tobias Grosser  <tobias@grosser.es>
42246             Mircea Namolaru  <mircea.namolaru@inria.fr>
42247
42248         PR tree-optimization/58028
42249         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
42250         scalar dimensions.
42251
42252 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42253
42254         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
42255         not handled by recognizers.
42256
42257 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
42258
42259         PR middle-end/60175
42260         * function.c (expand_function_end): Don't emit
42261         clobber_return_register sequence if clobber_after is a BARRIER.
42262         * cfgexpand.c (construct_exit_block): Append instructions before
42263         return_label to prev_bb.
42264
42265 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42266
42267         * config/rs6000/constraints.md: Document reserved use of "wc".
42268
42269 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
42270
42271         PR ipa/60150
42272         * ipa.c (function_and_variable_visibility): When dissolving comdat
42273         group, also set all symbols to local.
42274
42275 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
42276
42277         PR ipa/60306
42278
42279         Revert:
42280         2013-12-14  Jan Hubicka  <jh@suse.cz>
42281         PR middle-end/58477
42282         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
42283
42284 2014-03-02  Jon Beniston  <jon@beniston.com>
42285
42286         PR bootstrap/48230
42287         PR bootstrap/50927
42288         PR bootstrap/52466
42289         PR target/46898
42290         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
42291         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
42292         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
42293         (simple_return, *simple_return): New patterns
42294         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
42295         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
42296
42297 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
42298
42299         * dwarf2out.c (gen_subprogram_die): Tidy.
42300
42301 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
42302
42303         PR target/60071
42304         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
42305         (*mov_t_msb_neg_negc): ... this new insn.
42306
42307 2014-02-28  Jason Merrill  <jason@redhat.com>
42308
42309         PR c++/58678
42310         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
42311         function.
42312
42313 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
42314
42315         PR c++/60314
42316         * dwarf2out.c (decltype_auto_die): New static.
42317         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
42318         (gen_type_die_with_usage): Handle 'decltype(auto)'.
42319         (is_cxx_auto): Likewise.
42320
42321 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
42322
42323         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
42324         we are not using general regs only.
42325
42326 2014-02-28  Richard Biener  <rguenther@suse.de>
42327
42328         PR target/60280
42329         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
42330         previous fix and only allow to remove trivial pre-headers
42331         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
42332         (remove_forwarder_block): Properly update the latch of a loop.
42333
42334 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
42335
42336         PR debug/59992
42337         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
42338         (cselib_preserved_hash_table): New.
42339         (preserve_constants_and_equivs): Move preserved vals to it.
42340         (cselib_find_slot): Look it up first.
42341         (cselib_init): Initialize it.
42342         (cselib_finish): Release it.
42343         (dump_cselib_table): Dump it.
42344
42345 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
42346
42347         PR debug/59992
42348         * cselib.c (remove_useless_values): Skip to avoid quadratic
42349         behavior if the condition moved from...
42350         (cselib_process_insn): ... here holds.
42351
42352 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
42353
42354         PR debug/57232
42355         * var-tracking.c (vt_initialize): Apply the same condition to
42356         preserve the CFA base value.
42357
42358 2014-02-28  Joey Ye  <joey.ye@arm.com>
42359
42360         PR target/PR60169
42361         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
42362         if reload in progress or completed.
42363
42364 2014-02-28  Tobias Burnus  <burnus@net-b.de>
42365
42366         PR middle-end/60147
42367         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
42368         NAMELIST_DECL.
42369
42370 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
42371
42372         * doc/tm.texi.in (Condition Code Status): Update documention for
42373         relative locations of cc0-setter and cc0-user.
42374
42375 2014-02-27  Jeff Law  <law@redhat.com>
42376
42377         PR rtl-optimization/52714
42378         * combine.c (try_combine): When splitting an unrecognized PARALLEL
42379         into two independent simple sets, if I3 is a jump, ensure the
42380         pattern we place into I3 is a (set (pc) ...).
42381
42382 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
42383             Jeff Law  <law@redhat.com>
42384
42385         PR rtl-optimization/49847
42386         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
42387         are in different blocks.
42388         * doc/tm.texi (Condition Code Status): Update documention for
42389         relative locations of cc0-setter and cc0-user.
42390
42391 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
42392
42393         PR target/59222
42394         * lra.c (lra_emit_add): Check SUBREG too.
42395
42396 2014-02-27  Andreas Schwab  <schwab@suse.de>
42397
42398         * config/m68k/m68k.c (m68k_option_override): Disable
42399         -flive-range-shrinkage for classic m68k.
42400         (m68k_override_options_after_change): Likewise.
42401
42402 2014-02-27  Marek Polacek  <polacek@redhat.com>
42403
42404         PR middle-end/59223
42405         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
42406         -Wmaybe-uninitialized.
42407
42408 2014-02-27  Alan Modra  <amodra@gmail.com>
42409
42410         PR target/57936
42411         * reload1.c (emit_input_reload_insns): When reload_override_in,
42412         set old to rl->in_reg when rl->in_reg is a subreg.
42413
42414 2014-02-26  Richard Biener  <rguenther@suse.de>
42415
42416         PR bootstrap/60343
42417         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
42418
42419 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
42420
42421         * common/config/i386/predicates.md (const1256_operand): Remove.
42422         (const2356_operand): New.
42423         (const_1_to_2_operand): Remove.
42424         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
42425         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
42426         (*avx512pf_gatherpf<mode>sf): Ditto.
42427         (avx512pf_gatherpf<mode>df): Ditto.
42428         (*avx512pf_gatherpf<mode>df_mask): Ditto.
42429         (*avx512pf_gatherpf<mode>df): Ditto.
42430         (avx512pf_scatterpf<mode>sf): Ditto.
42431         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
42432         (*avx512pf_scatterpf<mode>sf): Ditto.
42433         (avx512pf_scatterpf<mode>df): Ditto.
42434         (*avx512pf_scatterpf<mode>df_mask): Ditto.
42435         (*avx512pf_scatterpf<mode>df): Ditto.
42436         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
42437
42438 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
42439
42440         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
42441         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
42442         (_mm512_mask_testn_epi64_mask): Move to ...
42443         * config/i386/avx512cdintrin.h: Here.
42444         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
42445         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
42446         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
42447         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
42448         TARGET_AVX512F from TARGET_AVX512CD.
42449
42450 2014-02-26  Richard Biener  <rguenther@suse.de>
42451
42452         PR ipa/60327
42453         * ipa.c (walk_polymorphic_call_targets): Properly guard
42454         call to inline_update_overall_summary.
42455
42456 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
42457
42458         PR target/60280
42459         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
42460         and latches only if requested.  Fix latch if it is removed.
42461         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
42462         LOOPS_HAVE_PREHEADERS.
42463
42464 2014-02-25  Andrew Pinski  <apinski@cavium.com>
42465
42466         * builtins.c (expand_builtin_thread_pointer): Create a new target
42467         when the target is NULL.
42468
42469 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
42470
42471         PR rtl-optimization/60317
42472         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
42473         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
42474         * lra-assigns.c: Include params.h.
42475         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
42476         other reload pseudos considerations.
42477
42478 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42479
42480         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
42481         to use canonical form for nor<mode>3.
42482
42483 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42484
42485         PR target/55426
42486         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
42487         conversions.
42488
42489 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
42490
42491         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
42492         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
42493         (ix86_handle_option): Handle OPT_mprefetchwt1.
42494         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
42495         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
42496         PREFETCHWT1 CPUID.
42497         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
42498         OPTION_MASK_ISA_PREFETCHWT1.
42499         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
42500         (PTA_PREFETCHWT1): New.
42501         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
42502         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
42503         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
42504         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
42505         (*prefetch_avx512pf_<mode>_: Change into ...
42506         (*prefetch_prefetchwt1_<mode>: This.
42507         * config/i386/i386.opt (mprefetchwt1): New.
42508         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
42509         (_mm_prefetch): Handle intent to write.
42510         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
42511
42512 2014-02-25  Richard Biener  <rguenther@suse.de>
42513
42514         PR middle-end/60291
42515         * emit-rtl.c (mem_attrs_htab): Remove.
42516         (mem_attrs_htab_hash): Likewise.
42517         (mem_attrs_htab_eq): Likewise.
42518         (set_mem_attrs): Always allocate new mem-attrs when something changed.
42519         (init_emit_once): Do not allocate mem_attrs_htab.
42520
42521 2014-02-25  Richard Biener  <rguenther@suse.de>
42522
42523         PR lto/60319
42524         * lto-opts.c (lto_write_options): Output non-explicit conservative
42525         -fwrapv, -fno-trapv and -fno-strict-overflow.
42526         * lto-wrapper.c (merge_and_complain): Handle merging those options.
42527         (run_gcc): And pass them through.
42528
42529 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
42530
42531         * sel-sched.c (calculate_new_fences): New parameter ptime.
42532         Calculate it as a maximum over all fence cycles.
42533         (sel_sched_region_2): Adjust the call to calculate_new_fences.
42534         Print the final schedule timing when sched_verbose.
42535
42536 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
42537
42538         PR rtl-optimization/60292
42539         * sel-sched.c (fill_vec_av_set): Do not reset target availability
42540         bit fot the fence instruction.
42541
42542 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
42543
42544         * calls.h: Fix typo in comment.
42545
42546 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
42547
42548         * config/pa/pa.c (pa_output_move_double): Don't valididate when
42549         adjusting offsetable addresses.
42550
42551 2014-02-24  Guozhi Wei  <carrot@google.com>
42552
42553         * sparseset.h (sparseset_pop): Fix the wrong index.
42554
42555 2014-02-24  Walter Lee  <walt@tilera.com>
42556
42557         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
42558         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
42559         triplet.
42560         * common/config/tilegx/tilegx-common.c
42561         (TARGET_DEFAULT_TARGET_FLAGS): Define.
42562         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
42563         (LINK_SPEC): Ditto.
42564         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
42565         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
42566         (tilegx_gimplify_va_arg_expr): Handle big endian.
42567         (tilegx_expand_unaligned_load): Ditto.
42568         (tilegx_expand_unaligned_store): Ditto.
42569         (TARGET_RETURN_IN_MSB): New.
42570         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
42571         (TARGET_ENDIAN_DEFAULT): New.
42572         (TARGET_BIG_ENDIAN): Handle big endian.
42573         (BYTES_BIG_ENDIAN): Ditto.
42574         (WORDS_BIG_ENDIAN): Ditto.
42575         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
42576         (ENDIAN_SPEC): New.
42577         (EXTRA_SPECS): New.
42578         * config/tilegx/tilegx.md (extv): Handle big endian.
42579         (extzv): Ditto.
42580         (insn_st<n>): Ditto.
42581         (insn_st<n>_add<bitsuffix>): Ditto.
42582         (insn_stnt<n>): Ditto.
42583         (insn_stnt<n>_add<bitsuffix>):Ditto.
42584         (vec_interleave_highv8qi): Handle big endian.
42585         (vec_interleave_highv8qi_be): New.
42586         (vec_interleave_highv8qi_le): New.
42587         (insn_v1int_h): Handle big endian.
42588         (vec_interleave_lowv8qi): Handle big endian.
42589         (vec_interleave_lowv8qi_be): New.
42590         (vec_interleave_lowv8qi_le): New.
42591         (insn_v1int_l): Handle big endian.
42592         (vec_interleave_highv4hi): Handle big endian.
42593         (vec_interleave_highv4hi_be): New.
42594         (vec_interleave_highv4hi_le): New.
42595         (insn_v2int_h): Handle big endian.
42596         (vec_interleave_lowv4hi): Handle big endian.
42597         (vec_interleave_lowv4hi_be): New.
42598         (vec_interleave_lowv4hi_le): New.
42599         (insn_v2int_l): Handle big endian.
42600         (vec_interleave_highv2si): Handle big endian.
42601         (vec_interleave_highv2si_be): New.
42602         (vec_interleave_highv2si_le): New.
42603         (insn_v4int_h): Handle big endian.
42604         (vec_interleave_lowv2si): Handle big endian.
42605         (vec_interleave_lowv2si_be): New.
42606         (vec_interleave_lowv2si_le): New.
42607         (insn_v4int_l): Handle big endian.
42608         * config/tilegx/tilegx.opt (mbig-endian): New option.
42609         (mlittle-endian): New option.
42610         * doc/install.texi: Document tilegxbe-linux.
42611         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
42612
42613 2014-02-24  Martin Jambor  <mjambor@suse.cz>
42614
42615         PR ipa/60266
42616         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
42617         there are no parameter descriptors.
42618
42619 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
42620
42621         PR rtl-optimization/60268
42622         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
42623         initialization to ...
42624         (sched_rgn_init): ... here.
42625         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
42626
42627 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
42628
42629         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
42630         names.
42631
42632 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
42633
42634         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
42635         definition.
42636
42637 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
42638
42639         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
42640         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
42641
42642 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
42643
42644         * config/microblaze/predicates.md: Add cmp_op predicate.
42645         * config/microblaze/microblaze.md: Add branch_compare instruction
42646         which uses cmp_op predicate and emits cmp insn before branch.
42647         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
42648         to microblaze_expand_conditional_branch and consolidate logic.
42649         (microblaze_expand_conditional_branch): emit branch_compare
42650         insn instead of handling cmp op separate from branch insn.
42651
42652 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42653
42654         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
42655         to permit subregs.
42656
42657 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42658
42659         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
42660         define_insn with define_expand and new define_insn
42661         *altivec_lve<VI_char>x_internal.
42662         (altivec_stve<VI_char>x): Replace define_insn with define_expand
42663         and new define_insn *altivec_stve<VI_char>x_internal.
42664         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
42665         prototype.
42666         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
42667         lve*x built-ins.
42668         (altivec_expand_stvex_be): New function.
42669
42670 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
42671
42672         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
42673         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
42674         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
42675         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
42676
42677 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
42678
42679         PR target/60298
42680         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
42681         instead of emit_move_insn.
42682
42683 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42684
42685         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
42686         vspltw with vsldoi.
42687         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
42688         gen_altivec_vsumsws.
42689
42690 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42691
42692         * config/rs6000/altivec.md (altivec_lvxl): Rename as
42693         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
42694         (altivec_lvxl_<mode>): New define_expand incorporating
42695         -maltivec=be semantics where needed.
42696         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
42697         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
42698         semantics where needed.
42699         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
42700         (altivec_stvx_<mode>): New define_expand incorporating
42701         -maltivec=be semantics where needed.
42702         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
42703         VM2 iterator instead of V4SI.
42704         (altivec_stvxl_<mode>): New define_expand incorporating
42705         -maltivec=be semantics where needed.
42706         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
42707         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
42708         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
42709         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
42710         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
42711         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
42712         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
42713         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
42714         ALTIVEC_BUILTIN_STVXL.
42715         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
42716         (altivec_expand_stvx_be): Likewise.
42717         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
42718         (altivec_expand_lvx_be): Likewise.
42719         (altivec_expand_stvx_be): Likewise.
42720         (altivec_expand_builtin): Add cases for
42721         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
42722         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
42723         (altivec_init_builtins): Add definitions for
42724         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
42725         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
42726
42727 2014-02-21  Catherine Moore  <clm@codesourcery.com>
42728
42729         * doc/invoke.texi (mvirt, mno-virt): Document.
42730         * config/mips/mips.opt (mvirt): New option.
42731         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
42732
42733 2014-02-21  Richard Biener  <rguenther@suse.de>
42734
42735         PR tree-optimization/60276
42736         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
42737         (STMT_VINFO_MIN_NEG_DIST): New macro.
42738         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
42739         STMT_VINFO_MIN_NEG_DIST.
42740         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
42741         made for negative dependence distances still hold.
42742
42743 2014-02-21  Richard Biener  <rguenther@suse.de>
42744
42745         PR middle-end/60291
42746         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
42747         DECL_INITIAL for globals not in the current function context.
42748
42749 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
42750
42751         PR tree-optimization/56490
42752         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
42753         * tree-ssa-uninit.c: Include params.h.
42754         (compute_control_dep_chain): Add num_calls argument, return false
42755         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
42756         num_calls to recursive call.
42757         (find_predicates): Change dep_chain into normal array,
42758         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
42759         variable and adjust compute_control_dep_chain caller.
42760         (find_def_preds): Likewise.
42761
42762 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
42763
42764         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
42765         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
42766
42767 2014-02-21  Nick Clifton  <nickc@redhat.com>
42768
42769         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
42770         (pushhi1): Likewise.
42771         (popqi1): Add mode to pre_dec.
42772         (pophi1): Likewise.
42773
42774 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
42775
42776         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
42777         mode for mask of V8SFmode permutation.
42778
42779 2014-02-20  Richard Henderson  <rth@redhat.com>
42780
42781         PR c++/60272
42782         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
42783         a new pseudo for OLDVAL.
42784
42785 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
42786
42787         PR target/57896
42788         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
42789         gen_reg_rtx if d->testing_p.
42790         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
42791         if d->testing_p and we will certainly return true.
42792         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
42793         if d->testing_p.
42794
42795 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
42796
42797         * emit-rtl.c (gen_reg_rtx): Assert that
42798         crtl->emit.regno_pointer_align_length is non-zero.
42799
42800 2014-02-20  Richard Henderson  <rth@redhat.com>
42801
42802         PR c++/60272
42803         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
42804         on failure the store back into EXPECT.
42805
42806 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
42807             Sandra Loosemore  <sandra@codesourcery.com>
42808
42809         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
42810         * config/nios2/nios2.c (nios2_function_profiler): Add
42811         -fPIC (flag_pic == 2) support.
42812         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
42813         (nios2_large_offset_p): New function.
42814         (nios2_unspec_reloc_p): Move up position, update to use
42815         nios2_large_offset_p.
42816         (nios2_unspec_address): Remove function.
42817         (nios2_unspec_offset): New function.
42818         (nios2_large_got_address): New function.
42819         (nios2_got_address): Add large offset support.
42820         (nios2_legitimize_tls_address): Update usage of removed and new
42821         functions.
42822         (nios2_symbol_binds_local_p): New function.
42823         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
42824         (nios2_legitimize_address): Update to use nios2_large_offset_p.
42825         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
42826         (nios2_print_operand): Merge H/L processing, add hiadj/lo
42827         processing for (const (unspec ...)).
42828         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
42829
42830 2014-02-20  Richard Biener  <rguenther@suse.de>
42831
42832         * tree-cfg.c (replace_uses_by): Mark altered BBs before
42833         doing the substitution.
42834         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
42835
42836 2014-02-20  Martin Jambor  <mjambor@suse.cz>
42837
42838         PR ipa/55260
42839         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
42840         info when checking whether lattices are bottom.
42841
42842 2014-02-20  Richard Biener  <rguenther@suse.de>
42843
42844         PR middle-end/60221
42845         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
42846         regions at -O0.
42847
42848 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
42849
42850         PR ipa/58555
42851         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
42852         parameter specifying the scaling.
42853         (inline_call): Update.
42854         (want_inline_recursively): Guard division by zero.
42855         (recursive_inlining): Update.
42856         * ipa-inline.h (clone_inlined_nodes): Update.
42857
42858 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
42859
42860         PR target/60204
42861         * config/i386/i386.c (classify_argument): Pass structures of size
42862         64 bytes or less in register.
42863
42864 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
42865             Kirill Yukhin  <kirill.yukhin@intel.com>
42866
42867         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
42868         (_mm_rcp28_round_ss): Ditto.
42869         (_mm_rsqrt28_round_sd): Ditto.
42870         (_mm_rsqrt28_round_ss): Ditto.
42871         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
42872         (_mm_rcp14_round_ss): Ditto.
42873         (_mm_rsqrt14_round_sd): Ditto.
42874         (_mm_rsqrt14_round_ss): Ditto.
42875         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
42876         the first input operand, get rid of match_dup.
42877         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
42878         attribute to sse.
42879         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
42880         Ditto.
42881         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
42882         operand as the first input operand, set type attribute.
42883         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
42884         Set type attribute.
42885         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
42886         operand as the first input operand, set type attribute.
42887
42888 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42889
42890         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
42891         bit of zero.
42892
42893 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
42894
42895         PR target/60207
42896         * config/i386/i386.c (construct_container): Remove TFmode check
42897         for X86_64_INTEGER_CLASS.
42898
42899 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
42900
42901         PR target/59794
42902         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
42903         only when -Wpsabi is enabled.
42904
42905 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
42906
42907         PR target/59799
42908         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
42909         passing arrays in registers are the same as for structs, so remove the
42910         special case for them.
42911
42912 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
42913
42914         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
42915         destination type, extract only the valid bits if the source type is not
42916         integral and has a different mode.
42917
42918 2014-02-19  Richard Biener  <rguenther@suse.de>
42919
42920         PR ipa/60243
42921         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
42922         for all calls.
42923
42924 2014-02-19  Richard Biener  <rguenther@suse.de>
42925
42926         PR ipa/60243
42927         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
42928         (ipa_modify_call_arguments): Emit an argument load explicitely and
42929         preserve virtual SSA form there and for the replacement call.
42930         Do not update SSA form nor free dominance info.
42931
42932 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
42933
42934         * ipa.c (function_and_variable_visibility): Also clear WEAK
42935         flag when disolving COMDAT_GROUP.
42936
42937 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
42938
42939         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
42940         * ipa-prop.c (ipa_set_jf_known_type): Return early when
42941         not devirtualizing.
42942         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
42943         do more sanity checks.
42944         (detect_type_change): Return true when giving up early.
42945         (compute_complex_assign_jump_func): Fix type parameter of
42946         ipa_set_ancestor_jf.
42947         (compute_complex_ancestor_jump_func): Likewise.
42948         (update_jump_functions_after_inlining): Fix updating of
42949         ancestor function.
42950         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
42951
42952 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
42953
42954         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
42955         inline clones when edge disappears.
42956
42957 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
42958
42959         PR target/60203
42960         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
42961         Split 64-bit moves into 2 patterns.  Do not allow the use of
42962         direct move for TDmode in little endian, since the decimal value
42963         has little endian bytes within a word, but the 64-bit pieces are
42964         ordered in a big endian fashion, and normal subreg's of TDmode are
42965         not allowed.
42966         (mov<mode>_64bit_dm): Likewise.
42967         (movtd_64bit_nodm): Likewise.
42968
42969 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
42970
42971         PR tree-optimization/60174
42972         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
42973         statement of an SSA_NAME that occurs in an abnormal PHI node.
42974
42975 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
42976
42977         PR sanitizer/60142
42978         * final.c (SEEN_BB): Remove.
42979         (SEEN_NOTE, SEEN_EMITTED): Renumber.
42980         (final_scan_insn): Don't force_source_line on second
42981         NOTE_INSN_BASIC_BLOCK.
42982
42983 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
42984
42985         PR target/60205
42986         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
42987         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
42988         (type_natural_mode): Warn ABI change when %zmm register is not
42989         available for AVX512F vector value passing.
42990
42991 2014-02-18  Kai Tietz  <ktietz@redhat.com>
42992
42993         PR target/60193
42994         * config/i386/i386.c (ix86_expand_prologue): Use value in
42995         rax register as displacement when restoring %r10 or %rax.
42996         Fix wrong offset when restoring both registers.
42997
42998 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
42999
43000         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
43001         assertion with conditional return.
43002
43003 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
43004             Uros Bizjak  <ubizjak@gmail.com>
43005
43006         PR driver/60233
43007         * config/i386/driver-i386.c (host_detect_local_cpu): If
43008         YMM state is not saved by the OS, also clear has_f16c.  Move
43009         CPUID 0x80000001 handling before YMM state saving checking.
43010
43011 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
43012
43013         PR rtl-optimization/58960
43014         * haifa-sched.c (alloc_global_sched_pressure_data): New,
43015         factored out from ...
43016         (sched_init): ... here.
43017         (free_global_sched_pressure_data): New, factored out from ...
43018         (sched_finish): ... here.
43019         * sched-int.h (free_global_sched_pressure_data): Declare.
43020         * sched-rgn.c (nr_regions_initial): New static global.
43021         (haifa_find_rgns): Initialize it.
43022         (schedule_region): Disable sched-pressure for the newly
43023         generated regions.
43024
43025 2014-02-17  Richard Biener  <rguenther@suse.de>
43026
43027         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
43028         release SSA defs of pattern stmts.
43029
43030 2014-02-17  Richard Biener  <rguenther@suse.de>
43031
43032         * tree-inline.c (expand_call_inline): Release the virtual
43033         operand defined by the call we are about to inline.
43034
43035 2014-02-17  Richard Biener  <rguenther@suse.de>
43036
43037         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
43038
43039 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
43040             Ilya Tocar  <ilya.tocar@intel.com>
43041
43042         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
43043         arguments order in builtin.
43044         (_mm512_permutexvar_epi64): Ditto.
43045         (_mm512_mask_permutexvar_epi64): Ditto
43046         (_mm512_maskz_permutexvar_epi32): Ditto
43047         (_mm512_permutexvar_epi32): Ditto
43048         (_mm512_mask_permutexvar_epi32): Ditto
43049
43050 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43051
43052         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
43053         (p8_vmrgow): Likewise.
43054
43055 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43056
43057         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
43058         endian targets.
43059
43060 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
43061
43062         PR target/60203
43063         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
43064         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
43065         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
43066         using direct move instructions on ISA 2.07.  Also adjust
43067         instruction length for 64-bit.
43068         (mov<mode>_64bit, TFmode/TDmode): Likewise.
43069         (mov<mode>_32bit, TFmode/TDmode): Likewise.
43070
43071 2014-02-15  Alan Modra  <amodra@gmail.com>
43072
43073         PR target/58675
43074         PR target/57935
43075         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
43076         find_replacement on parts of insn rtl that might be reloaded.
43077
43078 2014-02-15  Richard Biener  <rguenther@suse.de>
43079
43080         PR tree-optimization/60183
43081         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
43082         (tree_ssa_phiprop): Calculate and free post-dominators.
43083
43084 2014-02-14  Jeff Law  <law@redhat.com>
43085
43086         PR rtl-optimization/60131
43087         * ree.c (get_extended_src_reg): New function.
43088         (combine_reaching_defs): Use it rather than assuming location of REG.
43089         (find_and_remove_re): Verify first operand of extension is
43090         a REG before adding the insns to the copy list.
43091
43092 2014-02-14  Roland McGrath  <mcgrathr@google.com>
43093
43094         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
43095         * configure: Regenerated.
43096         * config.in: Regenerated.
43097         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
43098         instead of ASM_SHORT.
43099
43100 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
43101             Richard Earnshaw  <rearnsha@arm.com>
43102
43103         PR rtl-optimization/59535
43104         * lra-constraints.c (process_alt_operands): Encourage alternative
43105         when unassigned pseudo class is superset of the alternative class.
43106         (inherit_reload_reg): Don't inherit when optimizing for code size.
43107         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
43108         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
43109         modes not less than 4 for Thumb1.
43110
43111 2014-02-14  Kyle McMartin  <kyle@redhat.com>
43112
43113         PR pch/60010
43114         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
43115
43116 2014-02-14  Richard Biener  <rguenther@suse.de>
43117
43118         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
43119         (get_frame_arg): Drop the assert with langhook types_compatible_p.
43120         Do not strip INDIRECT_REFs.
43121
43122 2014-02-14  Richard Biener  <rguenther@suse.de>
43123
43124         PR lto/60179
43125         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
43126         DECL_FUNCTION_SPECIFIC_TARGET.
43127         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
43128         * tree-streamer-out.c (pack_ts_target_option): Remove.
43129         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
43130         (write_ts_function_decl_tree_pointers): Do not stream
43131         DECL_FUNCTION_SPECIFIC_TARGET.
43132         * tree-streamer-in.c (unpack_ts_target_option): Remove.
43133         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
43134         (lto_input_ts_function_decl_tree_pointers): Do not stream
43135         DECL_FUNCTION_SPECIFIC_TARGET.
43136
43137 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
43138
43139         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
43140         (get_initial_def_for_induction, vectorizable_induction): Ignore
43141         debug stmts when looking for exit_phi.
43142         (vectorizable_live_operation): Fix up condition.
43143
43144 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
43145
43146         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
43147         nreverse() because it changes the content of original tree list.
43148
43149 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
43150
43151         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
43152         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
43153
43154 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
43155
43156         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
43157         GNU coding standards.
43158
43159 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
43160
43161         PR debug/60152
43162         * dwarf2out.c (gen_subprogram_die): Don't call
43163         add_calling_convention_attribute if subr_die is old_die.
43164
43165 2014-02-13  Sharad Singhai  <singhai@google.com>
43166
43167         * doc/optinfo.texi: Fix order of nodes.
43168
43169 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
43170
43171         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
43172         operands[2], not operands[3].
43173
43174 2014-02-13  Richard Biener  <rguenther@suse.de>
43175
43176         PR bootstrap/59878
43177         * doc/install.texi (ISL): Update recommended version to 0.12.2,
43178         mention the possibility of an in-tree build.
43179         (CLooG): Update recommended version to 0.18.1, mention the
43180         possibility of an in-tree build and clarify that the ISL
43181         bundled with CLooG does not work.
43182
43183 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
43184
43185         PR target/43546
43186         * expr.c (compress_float_constant): If x is a hard register,
43187         extend into a pseudo and then move to x.
43188
43189 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
43190
43191         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
43192         caused by bad second argument to warning_at() with -mhotpatch and
43193         nested functions (e.g. with gfortran).
43194
43195 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
43196
43197         * opts.c (option_name): Remove "enabled by default" rider.
43198
43199 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
43200
43201         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
43202
43203 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
43204             Uros Bizjak  <ubizjak@gmail.com>
43205
43206         PR target/60151
43207         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
43208         * configure: Regenerated.
43209
43210 2014-02-12  Richard Biener  <rguenther@suse.de>
43211
43212         * vec.c (vec_prefix::calculate_allocation): Move as
43213         inline variant to vec.h.
43214         (vec_prefix::calculate_allocation_1): New out-of-line version.
43215         * vec.h (vec_prefix::calculate_allocation_1): Declare.
43216         (vec_prefix::m_has_auto_buf): Rename to ...
43217         (vec_prefix::m_using_auto_storage): ... this.
43218         (vec_prefix::calculate_allocation): Inline the easy cases
43219         and dispatch to calculate_allocation_1 which doesn't need the
43220         prefix address.
43221         (va_heap::reserve): Use gcc_checking_assert.
43222         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
43223         m_using_auto_storage.
43224         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
43225         member and adjust.
43226         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
43227         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
43228         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
43229
43230 2014-02-12  Richard Biener  <rguenther@suse.de>
43231
43232         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
43233         when we found a dependence.
43234
43235 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
43236
43237         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
43238         common code...
43239         (maybe_fold_stmt): ... into this new function.
43240         * omp-low.c (lower_omp): Update comment.
43241
43242         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
43243         last use.
43244
43245         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
43246         dereference.
43247
43248 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
43249
43250         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
43251         identifiers in comments.
43252         (cortexa53_extra_costs): Likewise.
43253         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
43254         (cortexa7_extra_costs): Likewise.
43255         (cortexa12_extra_costs): Likewise.
43256         (cortexa15_extra_costs): Likewise.
43257         (v7m_extra_costs): Likewise.
43258
43259 2014-02-12  Richard Biener  <rguenther@suse.de>
43260
43261         PR middle-end/60092
43262         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
43263         of posix_memalign being successful.
43264         (lower_stmt): Restrict lowering of posix_memalign to when
43265         -ftree-bit-ccp is enabled.
43266
43267 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
43268
43269         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
43270         arg_loc.
43271         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
43272
43273 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
43274
43275         PR rtl-optimization/60116
43276         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
43277         other_insn once the combination has been validated.
43278
43279 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
43280
43281         PR lto/59468
43282         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
43283         and wrapper.
43284         * ipa-devirt.c: Include demangle.h
43285         (odr_violation_reported): New static variable.
43286         (add_type_duplicate): Update odr_violations.
43287         (maybe_record_node): Add completep parameter; update it.
43288         (record_target_from_binfo): Add COMPLETEP parameter;
43289         update it as needed.
43290         (possible_polymorphic_call_targets_1): Likewise.
43291         (struct polymorphic_call_target_d): Add nonconstruction_targets;
43292         rename FINAL to COMPLETE.
43293         (record_targets_from_bases): Sanity check we found the binfo;
43294         fix COMPLETEP updating.
43295         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
43296         parameter, fix computing of COMPLETEP.
43297         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
43298         at LTO time do demangling.
43299         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
43300         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
43301         parameter.
43302         (gimple_get_virt_method_for_binfo): Likewise.
43303         * gimple-fold.h (gimple_get_virt_method_for_binfo,
43304         gimple_get_virt_method_for_vtable): Update prototypes.
43305
43306 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
43307
43308         PR target/49008
43309         * genautomata.c (add_presence_absence): Fix typo with
43310         {final_}presence_list.
43311
43312 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
43313
43314         PR target/60137
43315         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
43316         for VSX/Altivec vectors that land in GPR registers.
43317
43318 2014-02-11  Richard Henderson  <rth@redhat.com>
43319             Jakub Jelinek  <jakub@redhat.com>
43320
43321         PR debug/59776
43322         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
43323         around drhs if type conversion to lacc->type is not useless.
43324
43325 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43326
43327         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
43328         tuning struct.
43329         (cortex-a57.cortex-a53): Likewise.
43330         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
43331
43332 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43333
43334         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
43335         arm_restrict_it.
43336
43337 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
43338
43339         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
43340         add_options_for_arm_vfp3.
43341
43342 2014-02-11  Jeff Law  <law@redhat.com>
43343
43344         PR middle-end/54041
43345         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
43346         object with an undesirable mode.
43347
43348 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43349
43350         PR libgomp/60107
43351         * config/i386/sol2-9.h: New file.
43352         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
43353         *-*-solaris2.9*): Use it.
43354
43355 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
43356
43357         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
43358         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
43359
43360 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
43361
43362         * config/microblaze/microblaze.c: Extend mcpu version format
43363
43364 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
43365
43366         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
43367
43368 2014-02-10  Richard Henderson  <rth@redhat.com>
43369
43370         PR target/59927
43371         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
43372         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
43373         ms-abi vs -mno-accumulate-outgoing-args.
43374         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
43375         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
43376         respect to ms-abi.
43377
43378 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
43379
43380         PR middle-end/60080
43381         * cfgexpand.c (expand_asm_operands): Attach source location to
43382         ASM_INPUT rtx objects.
43383         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
43384
43385 2014-02-10  Nick Clifton  <nickc@redhat.com>
43386
43387         * config/mn10300/mn10300.c (popcount): New function.
43388         (mn10300_expand_prologue): Include saved registers in stack usage
43389         count.
43390
43391 2014-02-10  Jeff Law  <law@redhat.com>
43392
43393         PR middle-end/52306
43394         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
43395         when changing the SET_DEST of a prior insn to avoid an input reload.
43396
43397 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
43398
43399         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
43400         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
43401         -mcall-openbsd, or -mcall-linux.
43402         (CC1_ENDIAN_BIG_SPEC): Remove.
43403         (CC1_ENDIAN_LITTLE_SPEC): Remove.
43404         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
43405         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
43406         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
43407         and %cc1_endian_default.
43408         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
43409
43410 2014-02-10  Richard Biener  <rguenther@suse.de>
43411
43412         PR tree-optimization/60115
43413         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
43414         MEM_REF handling.  Properly verify that the accesses are not
43415         out of the objects bound.
43416
43417 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43418
43419         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
43420         coretex to cortex.
43421
43422 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
43423
43424         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
43425         proper constants and fix formatting.
43426         (possible_polymorphic_call_targets): Fix formatting.
43427
43428 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
43429             Ilya Tocar  <ilya.tocar@intel.com>
43430
43431         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
43432         (_mm512_loadu_epi32): Renamed into...
43433         (_mm512_loadu_si512): This.
43434         (_mm512_storeu_epi32): Renamed into...
43435         (_mm512_storeu_si512): This.
43436         (_mm512_maskz_ceil_ps): Removed.
43437         (_mm512_maskz_ceil_pd): Ditto.
43438         (_mm512_maskz_floor_ps): Ditto.
43439         (_mm512_maskz_floor_pd): Ditto.
43440         (_mm512_floor_round_ps): Ditto.
43441         (_mm512_floor_round_pd): Ditto.
43442         (_mm512_ceil_round_ps): Ditto.
43443         (_mm512_ceil_round_pd): Ditto.
43444         (_mm512_mask_floor_round_ps): Ditto.
43445         (_mm512_mask_floor_round_pd): Ditto.
43446         (_mm512_mask_ceil_round_ps): Ditto.
43447         (_mm512_mask_ceil_round_pd): Ditto.
43448         (_mm512_maskz_floor_round_ps): Ditto.
43449         (_mm512_maskz_floor_round_pd): Ditto.
43450         (_mm512_maskz_ceil_round_ps): Ditto.
43451         (_mm512_maskz_ceil_round_pd): Ditto.
43452         (_mm512_expand_pd): Ditto.
43453         (_mm512_expand_ps): Ditto.
43454         * config/i386/i386.c (ix86_builtins): Remove
43455         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
43456         (bdesc_args): Ditto.
43457         * config/i386/predicates.md (const1256_operand): New.
43458         (const_1_to_2_operand): Ditto.
43459         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
43460         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
43461         (*avx512pf_gatherpf<mode>sf): Ditto.
43462         (avx512pf_gatherpf<mode>df): Ditto.
43463         (*avx512pf_gatherpf<mode>df_mask): Ditto.
43464         (*avx512pf_gatherpf<mode>df): Ditto.
43465         (avx512pf_scatterpf<mode>sf): Ditto.
43466         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43467         (*avx512pf_scatterpf<mode>sf): Ditto.
43468         (avx512pf_scatterpf<mode>df): Ditto.
43469         (*avx512pf_scatterpf<mode>df_mask): Ditto.
43470         (*avx512pf_scatterpf<mode>df): Ditto.
43471         (avx512f_expand<mode>): Removed.
43472         (<shift_insn><mode>3<mask_name>): Change predicate type.
43473
43474 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
43475
43476         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
43477         not at the end of datarefs vector use ordered_remove to avoid
43478         reordering datarefs vector.
43479
43480         PR c/59984
43481         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
43482         mark local addressable non-static vars as GOVD_PRIVATE
43483         instead of GOVD_LOCAL.
43484         * omp-low.c (lower_omp_for): Move gimple_bind_vars
43485         and BLOCK_VARS of gimple_bind_block to new_stmt rather
43486         than copying them.
43487
43488         PR middle-end/60092
43489         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
43490         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
43491         assume_aligned or alloc_align attributes.
43492         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
43493         arguments.  Handle also assume_aligned and alloc_align attributes.
43494         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
43495         calls to functions with assume_aligned or alloc_align attributes.
43496         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
43497
43498 2014-02-08  Terry Guo  <terry.guo@arm.com>
43499
43500         * doc/invoke.texi: Document ARM -march=armv7e-m.
43501
43502 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
43503
43504         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
43505         flag on __cilkrts_rethrow builtin.
43506
43507         PR ipa/60026
43508         * ipa-cp.c (determine_versionability): Fail at -O0
43509         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
43510         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
43511
43512         Revert:
43513         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
43514
43515         PR ipa/60026
43516         * tree-inline.c (copy_forbidden): Fail for
43517         __attribute__((optimize (0))) functions.
43518
43519 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
43520
43521         * varpool.c: Include pointer-set.h.
43522         (varpool_remove_unreferenced_decls): Variables in other partitions
43523         will not be output; be however careful to not lose information
43524         about partitioning.
43525
43526 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
43527
43528         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
43529         lookup in the vtable constructor.
43530
43531 2014-02-07  Jeff Law  <law@redhat.com>
43532
43533         PR target/40977
43534         * config/m68k/m68k.md (ashldi_extsi): Turn into a
43535         define_insn_and_split.
43536
43537         * ipa-inline.c (inline_small_functions): Fix typos.
43538
43539 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
43540
43541         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
43542         (s390_can_use_return_insn): Declare.
43543         * config/s390/s390.h (EPILOGUE_USES): Define.
43544         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
43545         instructions.
43546         (s390_chunkify_start): Handle return JUMP_LABELs.
43547         (s390_early_mach): Emit a main_pool instruction on the entry edge.
43548         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
43549         (s390_can_use_return_insn): New functions.
43550         (s390_fix_long_loop_prediction): Handle conditional returns.
43551         (TARGET_SET_UP_BY_PROLOGUE): Define.
43552         * config/s390/s390.md (ANY_RETURN): New code iterator.
43553         (*creturn, *csimple_return, return, simple_return): New patterns.
43554
43555 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
43556
43557         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
43558         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
43559         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
43560         REG_CFA_RESTORE list when deciding not to restore a register.
43561
43562 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
43563
43564         * config/s390/s390.c: Include tree-pass.h and context.h.
43565         (s390_early_mach): New function, split out from...
43566         (s390_emit_prologue): ...here.
43567         (pass_data_s390_early_mach): New pass structure.
43568         (pass_s390_early_mach): New class.
43569         (s390_option_override): Create and register early_mach pass.
43570         Move to end of file.
43571
43572 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
43573
43574         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
43575         to match for the exit block.
43576
43577 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43578
43579         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
43580         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
43581         Reject misaligned operands.
43582
43583 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43584
43585         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
43586
43587 2014-02-07  Richard Biener  <rguenther@suse.de>
43588
43589         PR middle-end/60092
43590         * gimple-low.c (lower_builtin_posix_memalign): New function.
43591         (lower_stmt): Call it to lower posix_memalign in a way
43592         to make alignment info accessible.
43593
43594 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
43595
43596         PR c++/60082
43597         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
43598         __builtin_setjmp_receiver.
43599
43600 2014-02-07  Richard Biener  <rguenther@suse.de>
43601
43602         PR middle-end/60092
43603         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
43604         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
43605         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
43606         Handle BUILT_IN_POSIX_MEMALIGN.
43607         (find_func_clobbers): Likewise.
43608         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
43609         (call_may_clobber_ref_p_1): Likewise.
43610
43611 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
43612
43613         PR ipa/59918
43614         * ipa-devirt.c (record_target_from_binfo): Remove overactive
43615         sanity check.
43616
43617 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
43618
43619         PR ipa/59469
43620         * lto-cgraph.c (lto_output_node): Use
43621         symtab_get_symbol_partitioning_class.
43622         (lto_output_varpool_node): likewise.
43623         (symtab_get_symbol_partitioning_class): Move here from
43624         lto/lto-partition.c
43625         * cgraph.h (symbol_partitioning_class): Likewise.
43626         (symtab_get_symbol_partitioning_class): Declare.
43627
43628 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
43629
43630         * ggc.h (ggc_internal_cleared_alloc): New macro.
43631         * vec.h (vec_safe_copy): Handle memory stats.
43632         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
43633         * target-globals.c (save_target_globals): Likewise.
43634
43635 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
43636
43637         PR target/60077
43638         * expr.c (emit_move_resolve_push): Export; be bit more selective
43639         on when to clear alias set.
43640         * expr.h (emit_move_resolve_push): Declare.
43641         * function.h (struct function): Add tail_call_marked.
43642         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
43643         * config/i386/i386-protos.h (ix86_expand_push): Remove.
43644         * config/i386/i386.md (TImode move expander): De not call
43645         ix86_expand_push.
43646         (FP push expanders): Preserve memory attributes.
43647         * config/i386/sse.md (push<mode>1): Remove.
43648         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
43649         (ix86_expand_push): Remove.
43650         * config/i386/mmx.md (push<mode>1): Remove.
43651
43652 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
43653
43654         PR rtl-optimization/60030
43655         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
43656         lopart with paradoxical subreg before shifting it up by hprec.
43657
43658 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43659
43660         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
43661         Remove extra newline at end of file.
43662         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
43663         (arm_issue_rate): Handle cortexa57.
43664         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
43665         (cortex-a57.cortex-a53): Likewise.
43666
43667 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
43668
43669         PR target/59575
43670         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
43671         don't record in REG_FRAME_RELATED_EXPR registers not set in that
43672         bitmask.
43673         (arm_expand_prologue): Adjust all callers.
43674         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
43675         info, registers also at the lowest numbered registers side.  Use
43676         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
43677         XEXP.
43678
43679         PR debug/59992
43680         * var-tracking.c (adjust_mems): Before adding a SET to
43681         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
43682
43683 2014-02-06  Alan Modra  <amodra@gmail.com>
43684
43685         PR target/60032
43686         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
43687         change SDmode to DDmode when lra_in_progress.
43688
43689 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
43690
43691         PR middle-end/59150
43692         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
43693         free_data_ref on the dr first, and before goto again also set dr
43694         to the next dr.  For simd_lane_access, free old datarefs[i] before
43695         overwriting it.  For get_vectype_for_scalar_type failure, don't
43696         free_data_ref if simd_lane_access.
43697
43698         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
43699
43700         PR target/60062
43701         * tree.h (opts_for_fn): New inline function.
43702         (opt_for_fn): Define.
43703         * config/i386/i386.c (ix86_function_regparm): Use
43704         opt_for_fn (decl, optimize) instead of optimize.
43705
43706 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
43707
43708         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
43709         for SYMBOL_REF in large memory model.
43710
43711 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43712
43713         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
43714         and crypto support.
43715         (cortex-a57): Likewise.
43716         (cortex-a57.cortex-a53): Likewise.
43717
43718 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
43719             Kugan Vivekanandarajah  <kuganv@linaro.org>
43720
43721         * config/arm/arm.c (arm_vector_alignment_reachable): Check
43722         unaligned_access.
43723         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
43724
43725 2014-02-06  Richard Biener  <rguenther@suse.de>
43726
43727         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
43728         set_loop_copy and initialize_original_copy_tables.
43729
43730 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
43731
43732         * config/aarch64/aarch64-simd.md
43733         (aarch64_ashr_simddi): Change QI to SI.
43734
43735 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
43736             Jakub Jelinek  <jakub@redhat.com>
43737
43738         PR middle-end/60013
43739         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
43740         of the dataflow.
43741
43742 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43743
43744         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
43745         CODE_FOR_altivec_vpku[hw]um to
43746         CODE_FOR_altivec_vpku[hw]um_direct.
43747         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
43748         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
43749         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
43750         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
43751
43752 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43753
43754         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
43755         generation for -maltivec=be.
43756         (altivec_vsumsws): Simplify redundant test.
43757
43758 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43759
43760         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
43761         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
43762         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
43763         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
43764         gen_altivec_vpkuwum.
43765         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
43766         BYTES_BIG_ENDIAN.
43767         (altivec_vpks<VI_char>ss): Likewise.
43768         (altivec_vpks<VI_char>us): Likewise.
43769         (altivec_vpku<VI_char>us): Likewise.
43770         (altivec_vpku<VI_char>um): Likewise.
43771         (altivec_vpku<VI_char>um_direct): New (copy of
43772         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
43773         internal use).
43774         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
43775         target is little endian and -maltivec=be is not specified.
43776         (*altivec_vupkhs<VU_char>_direct): New (copy of
43777         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
43778         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
43779         target is little endian and -maltivec=be is not specified.
43780         (*altivec_vupkls<VU_char>_direct): New (copy of
43781         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
43782         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
43783         little endian and -maltivec=be is not specified.
43784         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
43785         little endian and -maltivec=be is not specified.
43786
43787 2014-02-05  Richard Henderson  <rth@redhat.com>
43788
43789         PR debug/52727
43790         * combine-stack-adj.c: Revert r206943.
43791         * sched-int.h (struct deps_desc): Add last_args_size.
43792         * sched-deps.c (init_deps): Initialize it.
43793         (sched_analyze_insn): Add OUTPUT dependencies between insns that
43794         contain REG_ARGS_SIZE notes.
43795
43796 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
43797
43798         * lto-cgraph.c (asm_nodes_output): Make global.
43799         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
43800         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
43801         (driver_handle_option): Handle OPT_fwpa.
43802
43803 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
43804
43805         PR ipa/59947
43806         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
43807         a comment typo and formatting issue.  If odr_hash hasn't been
43808         created, return vNULL and set *completep to false.
43809
43810         PR middle-end/57499
43811         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
43812         bb with no successors.
43813
43814 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
43815
43816         PR target/59718
43817         * doc/invoke.texi (-march): Clarify documentation for ARM.
43818         (-mtune): Likewise.
43819         (-mcpu): Likewise.
43820
43821 2014-02-05  Richard Biener  <rguenther@suse.de>
43822
43823         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
43824         when not vectorizing because of too many alias checks.
43825         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
43826         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
43827
43828 2014-02-05  Nick Clifton  <nickc@redhat.com>
43829
43830         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
43831         accept extended registers in any mode when compiling for the MN10300.
43832
43833 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
43834
43835         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
43836         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
43837         sanitization attributes.
43838         (can_inline_edge_p): Likewise.
43839         (sanitize_attrs_match_for_inline_p): New function.
43840
43841 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
43842
43843         * ipa-prop.c (detect_type_change): Shor circuit testing of
43844         type changes on THIS pointer.
43845
43846 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
43847
43848         PR target/59777
43849         * config/pa/pa.c (legitimize_tls_address): Return original address
43850         if not passed a SYMBOL_REF rtx.
43851         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
43852         addresses.
43853         (pa_emit_move_sequence): Simplify TLS source operands.
43854         (pa_legitimate_constant_p): Reject all TLS constants.
43855         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
43856         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
43857
43858 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
43859
43860         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
43861         groups when we know they are controlled by LTO.
43862         * varasm.c (default_binds_local_p_1): If object is in other partition,
43863         it will be resolved locally.
43864
43865 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
43866
43867         * config/host-linux.c (linux_gt_pch_use_address): Don't
43868         use SSIZE_MAX because it is not always defined.
43869
43870 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
43871
43872         PR bootstrap/59913
43873         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
43874         threshold for pseudo splitting.
43875         (update_ebb_live_info): Process call argument hard registers and
43876         hard registers from insn definition too.
43877         (max_small_class_regs_num): New constant.
43878         (inherit_in_ebb): Update live hard regs through EBBs.  Update
43879         reloads_num only for small register classes.  Don't split for
43880         outputs of jumps.
43881
43882 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
43883
43884         PR ipa/60058
43885         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
43886         is non-null.
43887
43888 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
43889
43890         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
43891         visibility is safe.
43892
43893 2014-02-04  Marek Polacek  <polacek@redhat.com>
43894
43895         * gdbinit.in (pel): Define.
43896
43897 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
43898
43899         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
43900         behavior.
43901
43902 2014-02-04  Richard Biener  <rguenther@suse.de>
43903
43904         PR lto/59723
43905         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
43906         in function context local.
43907         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
43908         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
43909         similar to LTO_imported_decl_ref.
43910
43911 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
43912
43913         PR tree-optimization/60002
43914         * cgraphclones.c (build_function_decl_skip_args): Clear
43915         DECL_LANG_SPECIFIC.
43916
43917         PR tree-optimization/60023
43918         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
43919         false to gsi_replace.
43920         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
43921         has been in some EH region and vec_stmt could throw, add
43922         vec_stmt into the same EH region.
43923         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
43924         has no lhs, ignore it.
43925         * internal-fn.c (expand_MASK_LOAD): Likewise.
43926
43927         PR ipa/60026
43928         * tree-inline.c (copy_forbidden): Fail for
43929         __attribute__((optimize (0))) functions.
43930
43931         PR other/58712
43932         * omp-low.c (simd_clone_struct_copy): If from->inbranch
43933         is set, copy one less argument.
43934         (expand_simd_clones): Don't subtract clone_info->inbranch
43935         from simd_clone_struct_alloc argument.
43936
43937         PR rtl-optimization/57915
43938         * recog.c (simplify_while_replacing): If all unary/binary/relational
43939         operation arguments are constant, attempt to simplify those.
43940
43941         PR middle-end/59261
43942         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
43943         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
43944
43945 2014-02-04  Richard Biener  <rguenther@suse.de>
43946
43947         PR tree-optimization/60012
43948         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
43949         TBAA disambiguation to all DDRs.
43950
43951 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43952
43953         PR target/59788
43954         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
43955         (LINK_SPEC): Use it for -shared, -shared-libgcc.
43956
43957 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
43958
43959         PR ipa/59882
43960         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
43961
43962 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
43963
43964         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
43965         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
43966
43967 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
43968
43969         PR ipa/59831
43970         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
43971         to figure out targets of polymorphic calls with known decl.
43972         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
43973         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
43974         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
43975         (get_polymorphic_call_info): ... here.
43976         (get_polymorphic_call_info_from_invariant): New function.
43977
43978 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
43979
43980         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
43981         lookup via vtable pointer; check for type consistency
43982         and turn inconsitent facts into UNREACHABLE.
43983         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
43984         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
43985         type inconsistent querries; return UNREACHABLE instead.
43986
43987 2014-02-03  Richard Henderson  <rth@twiddle.net>
43988
43989         PR tree-opt/59924
43990         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
43991         already processed this node.
43992         (normalize_one_pred_1): Pass along mark_set.
43993         (normalize_one_pred): Create and destroy a pointer_set_t.
43994         (normalize_one_pred_chain): Likewise.
43995
43996 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
43997
43998         PR gcov-profile/58602
43999         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
44000
44001 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
44002
44003         PR ipa/59831
44004         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
44005         -fno-devirtualize; try to devirtualize by the knowledge of
44006         virtual table pointer given by aggregate propagation.
44007         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
44008         (ipa_print_node_jump_functions): Dump also offset that
44009         is relevant for polymorphic calls.
44010         (determine_known_aggregate_parts): Add arg_type parameter; use it
44011         instead of determining the type from pointer type.
44012         (ipa_compute_jump_functions_for_edge): Update call of
44013         determine_known_aggregate_parts.
44014         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
44015         (gimple_get_virt_method_for_binfo): ... here; simplify using
44016         vtable_pointer_value_to_vtable.
44017         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
44018         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
44019         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
44020         (vtable_pointer_value_to_vtable): Break out from ...; handle also
44021         POINTER_PLUS_EXPR.
44022         (vtable_pointer_value_to_binfo): ... here.
44023         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
44024
44025 2014-02-03  Teresa Johnson  <tejohnson@google.com>
44026
44027         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
44028         redef of outer loop index variable.
44029
44030 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
44031
44032         PR c++/53017
44033         PR c++/59211
44034         * doc/extend.texi (Function Attributes): Typo.
44035
44036 2014-02-03  Cong Hou  <congh@google.com>
44037
44038         PR tree-optimization/60000
44039         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
44040         if the vectorized statement is a store.  A store statement can only
44041         appear at the end of pattern statements.
44042
44043 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
44044
44045         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
44046         (ix86_option_override_internal): Default long double to 64-bit for
44047         32-bit Bionic and to 128-bit for 64-bit Bionic.
44048
44049         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
44050         TARGET_LONG_DOUBLE_128 is true.
44051         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
44052
44053         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
44054         (mlong-double-64): Negate -mlong-double-128.
44055         (mlong-double-128): New option.
44056
44057         * config/i386/i386-c.c (ix86_target_macros): Define
44058         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
44059
44060         * doc/invoke.texi: Document -mlong-double-128.
44061
44062 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
44063
44064         PR rtl-optimization/60024
44065         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
44066
44067 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
44068
44069         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
44070
44071 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
44072
44073         PR rtl-optimization/57662
44074         * sel-sched.c (code_motion_path_driver): Do not mark already not
44075         existing blocks in the visiting bitmap.
44076
44077 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
44078
44079         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
44080         on the insn being emitted.
44081
44082 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
44083             Will Deacon  <will.deacon@arm.com>
44084
44085         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
44086
44087 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44088
44089         * config/arm/arm-tables.opt: Regenerate.
44090
44091 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44092
44093         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
44094         for vector types other than V16QImode.
44095         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
44096         define_expand, and call altivec_expand_vec_perm_le when producing
44097         code with little endian element order.
44098         (*altivec_vperm_<mode>_internal): New insn having previous
44099         behavior of altivec_vperm_<mode>.
44100         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
44101         altivec_expand_vec_perm_le when producing code with little endian
44102         element order.
44103         (*altivec_vperm_<mode>_uns_internal): New insn having previous
44104         behavior of altivec_vperm_<mode>_uns.
44105
44106 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44107
44108         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
44109         (altivec_vsumsws): Add handling for -maltivec=be with a little
44110         endian target.
44111         (altivec_vsumsws_direct): New.
44112         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
44113         gen_altivec_vsumsws.
44114
44115 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
44116
44117         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
44118         vtable_pointer_value_to_binfo): New functions.
44119         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
44120         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
44121
44122 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
44123
44124         * config/nios2/nios2.md (load_got_register): Initialize GOT
44125         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
44126         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
44127
44128 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
44129
44130         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
44131         preserverd by passthrough, do not propagate the type.
44132
44133 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
44134
44135         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
44136         (mips_atomic_assign_expand_fenv): New function.
44137         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
44138
44139 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
44140
44141         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
44142         (__builtin_mips_set_fcsr): Likewise.
44143         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
44144         MIPS_USI_FTYPE_VOID.
44145         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
44146         (mips16_expand_set_fcsr): Likewise.
44147         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
44148         (mips16_set_fcsr_stub): Likewise.
44149         (mips16_get_fcsr_one_only_stub): New class.
44150         (mips16_set_fcsr_one_only_stub): Likewise.
44151         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
44152         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
44153         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
44154         (hard_float): New availability predicate.
44155         (mips_builtins): Add get_fcsr and set_fcsr.
44156         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
44157         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
44158         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
44159         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
44160         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
44161         patterns.
44162
44163 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
44164
44165         * config/mips/mips.c (mips_one_only_stub): New class.
44166         (mips_need_mips16_rdhwr_p): Replace with...
44167         (mips16_rdhwr_stub): ...this new variable.
44168         (mips16_stub_call_address): New function.
44169         (mips16_rdhwr_one_only_stub): New class.
44170         (mips_expand_thread_pointer): Use mips16_stub_call_address.
44171         (mips_output_mips16_rdhwr): Delete.
44172         (mips_finish_stub): New function.
44173         (mips_code_end): Use it to handle rdhwr stubs.
44174
44175 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
44176
44177         PR target/60017
44178         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
44179         when calculating size of integer atomic types.
44180
44181 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
44182
44183         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
44184
44185 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
44186
44187         PR tree-optimization/60003
44188         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
44189         * profile.c (branch_prob): Use gimple_call_builtin_p
44190         to check for BUILT_IN_SETJMP_RECEIVER.
44191         * tree-inline.c (copy_bb): Call notice_special_calls.
44192
44193 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
44194
44195         PR bootstrap/59985
44196         * lra-constraints.c (process_alt_operands): Update reload_sum only
44197         on the first pass.
44198
44199 2014-01-31  Richard Henderson  <rth@redhat.com>
44200
44201         PR middle-end/60004
44202         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
44203         until after else_eh is processed.
44204
44205 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
44206
44207         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
44208         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
44209         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
44210         in smmintrin.h, remove them.
44211         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
44212         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
44213         * config/i386/i386.md (ROUND_SAE): Fix value.
44214         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
44215         (const48_operand): New.
44216         * config/i386/subst.md (round), (round_expand): Use
44217         const_4_or_8_to_11_operand.
44218         (round_saeonly), (round_saeonly_expand): Use const48_operand.
44219
44220 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
44221
44222         * config/i386/constraints.md (Yk): Swap meaning with k.
44223         * config/i386/i386.md (movhi_internal): Change Yk to k.
44224         (movqi_internal): Ditto.
44225         (*k<logic><mode>): Ditto.
44226         (*andhi_1): Ditto.
44227         (*andqi_1): Ditto.
44228         (kandn<mode>): Ditto.
44229         (*<code>hi_1): Ditto.
44230         (*<code>qi_1): Ditto.
44231         (kxnor<mode>): Ditto.
44232         (kortestzhi): Ditto.
44233         (kortestchi): Ditto.
44234         (kunpckhi): Ditto.
44235         (*one_cmplhi2_1): Ditto.
44236         (*one_cmplqi2_1): Ditto.
44237         * config/i386/sse.md (): Change k to Yk.
44238         (avx512f_load<mode>_mask): Ditto.
44239         (avx512f_blendm<mode>): Ditto.
44240         (avx512f_store<mode>_mask): Ditto.
44241         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
44242         (avx512f_storedqu<mode>_mask): Ditto.
44243         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
44244         Ditto.
44245         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
44246         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
44247         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
44248         (avx512f_maskcmp<mode>3): Ditto.
44249         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
44250         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
44251         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
44252         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
44253         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
44254         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
44255         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
44256         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
44257         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
44258         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
44259         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
44260         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
44261         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
44262         (vec_extract_lo_<mode>_maskm): Ditto.
44263         (vec_extract_hi_<mode>_maskm): Ditto.
44264         (avx512f_vternlog<mode>_mask): Ditto.
44265         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
44266         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
44267         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
44268         (avx512f_<code>v8div16qi2_mask): Ditto.
44269         (avx512f_<code>v8div16qi2_mask_store): Ditto.
44270         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
44271         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
44272         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
44273         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
44274         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44275         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44276         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44277         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44278         (avx512cd_maskb_vec_dupv8di): Ditto.
44279         (avx512cd_maskw_vec_dupv16si): Ditto.
44280         (avx512f_vpermi2var<mode>3_maskz): Ditto.
44281         (avx512f_vpermi2var<mode>3_mask): Ditto.
44282         (avx512f_vpermi2var<mode>3_mask): Ditto.
44283         (avx512f_vpermt2var<mode>3_maskz): Ditto.
44284         (*avx512f_gathersi<mode>): Ditto.
44285         (*avx512f_gathersi<mode>_2): Ditto.
44286         (*avx512f_gatherdi<mode>): Ditto.
44287         (*avx512f_gatherdi<mode>_2): Ditto.
44288         (*avx512f_scattersi<mode>): Ditto.
44289         (*avx512f_scatterdi<mode>): Ditto.
44290         (avx512f_compress<mode>_mask): Ditto.
44291         (avx512f_compressstore<mode>_mask): Ditto.
44292         (avx512f_expand<mode>_mask): Ditto.
44293         * config/i386/subst.md (mask): Change k to Yk.
44294         (mask_scalar_merge): Ditto.
44295         (sd): Ditto.
44296
44297 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
44298
44299         * doc/extend.texi (Vector Extensions): Document ?: in C++.
44300
44301 2014-01-31  Richard Biener  <rguenther@suse.de>
44302
44303         PR middle-end/59990
44304         * builtins.c (fold_builtin_memory_op): Make sure to not
44305         use a floating-point mode or a boolean or enumeral type for
44306         the copy operation.
44307
44308 2014-01-30  DJ Delorie  <dj@redhat.com>
44309
44310         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
44311         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
44312         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
44313         whenever main() has an epilogue.
44314
44315 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44316
44317         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
44318         unused variable "field".
44319         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
44320         (vsx_mergeh_<mode>): Likewise.
44321         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
44322         (altivec_vmrghh): Likewise.
44323         (altivec_vmrghw): Likewise.
44324         (altivec_vmrglb): Likewise.
44325         (altivec_vmrglh): Likewise.
44326         (altivec_vmrglw): Likewise.
44327         (altivec_vspltb): Add missing uses.
44328         (altivec_vsplth): Likewise.
44329         (altivec_vspltw): Likewise.
44330         (altivec_vspltsf): Likewise.
44331
44332 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
44333
44334         PR target/59923
44335         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
44336         frame related instructions.
44337
44338 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
44339
44340         PR rtl-optimization/59959
44341         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
44342         any reload of register whose subreg is invalid.
44343
44344 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
44345
44346         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
44347         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
44348         Add missing return type - void.
44349
44350 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44351
44352         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
44353         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
44354         remove element index adjustment for endian (now handled in vsx.md
44355         and altivec.md).
44356         (altivec_expand_vec_perm_const): Use
44357         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
44358         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
44359         (vsx_xxspltw_<mode>): Adjust element index for little endian.
44360         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
44361         define_expand and a new define_insn *altivec_vspltb_internal;
44362         adjust for -maltivec=be on a little endian target.
44363         (altivec_vspltb_direct): New.
44364         (altivec_vsplth): Divide into a define_expand and a new
44365         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
44366         little endian target.
44367         (altivec_vsplth_direct): New.
44368         (altivec_vspltw): Divide into a define_expand and a new
44369         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
44370         little endian target.
44371         (altivec_vspltw_direct): New.
44372         (altivec_vspltsf): Divide into a define_expand and a new
44373         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
44374         a little endian target.
44375
44376 2014-01-30  Richard Biener  <rguenther@suse.de>
44377
44378         PR tree-optimization/59993
44379         * tree-ssa-forwprop.c (associate_pointerplus): Check we
44380         can propagate form the earlier stmt and avoid the transform
44381         when the intermediate result is needed.
44382
44383 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
44384
44385         * README.Portability: Fix typo.
44386
44387 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
44388
44389         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
44390         comparison_operator with ordered_comparison_operator.
44391
44392 2014-01-30  Nick Clifton  <nickc@redhat.com>
44393
44394         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
44395         Rename to mn10300_store_multiple_regs.
44396         * config/mn10300/mn10300.c: Likewise.
44397         * config/mn10300/mn10300.md (store_movm): Fix typo: call
44398         store_multiple_regs.
44399         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
44400         Call mn10300_store_multiple_regs.
44401
44402 2014-01-30  Nick Clifton  <nickc@redhat.com>
44403             DJ Delorie  <dj@redhat.com>
44404
44405         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
44406         %fp 2 to keep registers after it properly word-aligned.
44407         (rl78_alloc_physical_registers_umul): Handle the case where both
44408         input operands are the same.
44409
44410 2014-01-30  Richard Biener  <rguenther@suse.de>
44411
44412         PR tree-optimization/59903
44413         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
44414         check properly.
44415
44416 2014-01-30  Jason Merrill  <jason@redhat.com>
44417
44418         PR c++/59633
44419         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
44420
44421         PR c++/59645
44422         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
44423
44424 2014-01-30  Richard Biener  <rguenther@suse.de>
44425
44426         PR tree-optimization/59951
44427         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
44428
44429 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
44430
44431         PR target/59784
44432         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
44433         SFmode to DFmode case.
44434
44435 2014-01-29  DJ Delorie  <dj@redhat.com>
44436
44437         * config/msp430/msp430.opt (-minrt): New.
44438         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
44439         if -minrt given.
44440         (ENDFILE_SPEC): Likewise.
44441
44442 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
44443
44444         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
44445         (estimate_function_body_sizes): Use it.
44446
44447 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
44448
44449         PR c++/58561
44450         * dwarf2out.c (is_cxx_auto): New.
44451         (is_base_type): Use it.
44452         (gen_type_die_with_usage): Likewise.
44453
44454 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44455
44456         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
44457         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
44458         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
44459         -maltivec=be with LE targets.
44460         (vsx_mergeh_<mode>): Likewise.
44461         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
44462         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
44463         (altivec_vmrghb): Replace with define_expand and new
44464         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
44465         (altivec_vmrghb_direct): New define_insn.
44466         (altivec_vmrghh): Replace with define_expand and new
44467         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
44468         (altivec_vmrghh_direct): New define_insn.
44469         (altivec_vmrghw): Replace with define_expand and new
44470         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
44471         (altivec_vmrghw_direct): New define_insn.
44472         (*altivec_vmrghsf): Adjust for endianness.
44473         (altivec_vmrglb): Replace with define_expand and new
44474         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
44475         (altivec_vmrglb_direct): New define_insn.
44476         (altivec_vmrglh): Replace with define_expand and new
44477         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
44478         (altivec_vmrglh_direct): New define_insn.
44479         (altivec_vmrglw): Replace with define_expand and new
44480         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
44481         (altivec_vmrglw_direct): New define_insn.
44482         (*altivec_vmrglsf): Adjust for endianness.
44483         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
44484         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
44485         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
44486         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
44487         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
44488         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
44489         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
44490         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
44491
44492 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
44493
44494         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
44495         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
44496         whitespace.
44497
44498 2014-01-29  Richard Biener  <rguenther@suse.de>
44499
44500         PR tree-optimization/58742
44501         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
44502         associate_pointerplus_align.
44503         (associate_pointerplus_diff): New function.
44504         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
44505         and associate_pointerplus_diff.
44506
44507 2014-01-29  Richard Biener  <rguenther@suse.de>
44508
44509         * lto-streamer.h (LTO_major_version): Bump to 3.
44510         (LTO_minor_version): Reset to 0.
44511
44512 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
44513
44514         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
44515         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
44516         (arm_file_start): Generate correct asm header for armv7ve.
44517         * config/arm/bpabi.h: Add multilib support for armv7ve.
44518         * config/arm/driver-arm.c: Change the architectures of cortex-a7
44519         and cortex-a15 to armv7ve.
44520         * config/arm/t-aprofile: Add multilib support for armv7ve.
44521         * doc/invoke.texi: Document -march=armv7ve.
44522
44523 2014-01-29  Richard Biener  <rguenther@suse.de>
44524
44525         PR tree-optimization/58742
44526         * tree-ssa-forwprop.c (associate_plusminus): Return true
44527         if we changed sth, defer EH cleanup to ...
44528         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
44529         (simplify_mult): New function.
44530
44531 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
44532
44533         PR middle-end/59917
44534         PR tree-optimization/59920
44535         * tree.c (build_common_builtin_nodes): Remove
44536         __builtin_setjmp_dispatcher initialization.
44537         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
44538         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
44539         instead of gsi_after_labels + manually skipping debug stmts.
44540         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
44541         ignore bbs with IFN_ABNORMAL_DISPATCHER.
44542         * tree-inline.c (copy_edges_for_bb): Remove
44543         can_make_abnormal_goto argument, instead add abnormal_goto_dest
44544         argument.  Ignore computed_goto_p stmts.  Don't call
44545         make_abnormal_goto_edges.  If a call might need abnormal edges
44546         for non-local gotos, see if it already has an edge to
44547         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
44548         with true argument, don't do anything then, otherwise add
44549         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
44550         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
44551         caller.
44552         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
44553         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
44554         (lower_stmt): Don't set data->calls_builtin_setjmp.
44555         (lower_builtin_setjmp): Adjust comment.
44556         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
44557         * tree-cfg.c (found_computed_goto): Remove.
44558         (factor_computed_gotos): Remove.
44559         (make_goto_expr_edges): Return bool, true for computed gotos.
44560         Don't call make_abnormal_goto_edges.
44561         (build_gimple_cfg): Don't set found_computed_goto, don't call
44562         factor_computed_gotos.
44563         (computed_goto_p): No longer static.
44564         (make_blocks): Don't set found_computed_goto.
44565         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
44566         (make_edges): If make_goto_expr_edges returns true, push bb
44567         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
44568         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
44569         vector.  Record mapping between bbs and OpenMP regions if there
44570         are any, adjust make_gimple_omp_edges caller.  Call
44571         handle_abnormal_edges.
44572         (make_abnormal_goto_edges): Remove.
44573         * tree-cfg.h (make_abnormal_goto_edges): Remove.
44574         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
44575         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
44576         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
44577         * internal-fn.def (ABNORMAL_DISPATCHER): New.
44578         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
44579         filling *region also set *region_idx to (*region)->entry->index.
44580
44581         PR other/58712
44582         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
44583         For REGs set ORIGINAL_REGNO.
44584
44585 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
44586
44587         * doc/md.texi: Mention that a target shouldn't implement
44588         vec_widen_(s|u)mul_even/odd pair if it is less efficient
44589         than hi/lo pair.
44590
44591 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
44592
44593         PR tree-optimization/59594
44594         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
44595         a copy of the datarefs vector rather than the vector itself.
44596
44597 2014-01-28  Jason Merrill  <jason@redhat.com>
44598
44599         PR c++/53756
44600         * dwarf2out.c (auto_die): New static.
44601         (gen_type_die_with_usage): Handle C++1y 'auto'.
44602         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
44603         on definition.
44604
44605 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
44606
44607         PR target/59672
44608         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
44609         (SPEC_X32): Likewise.
44610         (SPEC_64): Likewise.
44611         * config/i386/i386.c (ix86_option_override_internal): Turn off
44612         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
44613         for TARGET_16BIT.
44614         (x86_file_start): Output .code16gcc for TARGET_16BIT.
44615         * config/i386/i386.h (TARGET_16BIT): New macro.
44616         (TARGET_16BIT_P): Likewise.
44617         * config/i386/i386.opt: Add m16.
44618         * doc/invoke.texi: Document -m16.
44619
44620 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
44621
44622         PR preprocessor/59935
44623         * input.c (location_get_source_line): Bail out on when line number
44624         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
44625
44626 2014-01-28  Richard Biener  <rguenther@suse.de>
44627
44628         PR tree-optimization/58742
44629         * tree-ssa-forwprop.c (associate_plusminus): Handle
44630         pointer subtraction of the form (T)(P + A) - (T)P.
44631
44632 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44633
44634         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
44635         at const_int_cost.
44636
44637 2014-01-28  Richard Biener  <rguenther@suse.de>
44638
44639         Revert
44640         2014-01-28  Richard Biener  <rguenther@suse.de>
44641
44642         PR rtl-optimization/45364
44643         PR rtl-optimization/59890
44644         * var-tracking.c (local_get_addr_clear_given_value): Handle
44645         already cleared slot.
44646         (val_reset): Handle not allocated local_get_addr_cache.
44647         (vt_find_locations): Use post-order on the inverted CFG.
44648
44649 2014-01-28  Richard Biener  <rguenther@suse.de>
44650
44651         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
44652
44653 2014-01-28  Richard Biener  <rguenther@suse.de>
44654
44655         PR rtl-optimization/45364
44656         PR rtl-optimization/59890
44657         * var-tracking.c (local_get_addr_clear_given_value): Handle
44658         already cleared slot.
44659         (val_reset): Handle not allocated local_get_addr_cache.
44660         (vt_find_locations): Use post-order on the inverted CFG.
44661
44662 2014-01-28  Alan Modra  <amodra@gmail.com>
44663
44664         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
44665         * configure.ac <recursive call for build != host>: Define
44666         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
44667         and LD_FOR_BUILD too.
44668         * configure: Regenerate.
44669
44670 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
44671
44672         * config/i386/i386.c (get_builtin_code_for_version): Separate
44673         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
44674         Broadwell from Haswell.
44675
44676 2014-01-27  Steve Ellcey  <sellcey@mips.com>
44677
44678         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
44679         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
44680         * config/mips/mips.c (mips_option_override): Change setting
44681         of TARGET_DSP.
44682         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
44683         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
44684         Change from Mask to Var.
44685
44686 2014-01-27  Jeff Law  <law@redhat.com>
44687
44688         * ipa-inline.c (inline_small_functions): Fix typo.
44689
44690 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
44691
44692         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
44693         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
44694         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
44695         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
44696         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
44697         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
44698         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
44699         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
44700         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
44701         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
44702         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
44703         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
44704         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
44705         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
44706         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
44707         (_mm512_storeu_epi64): Ditto.
44708         (_mm512_cmpge_epi32_mask): Ditto.
44709         (_mm512_cmpge_epu32_mask): Ditto.
44710         (_mm512_cmpge_epi64_mask): Ditto.
44711         (_mm512_cmpge_epu64_mask): Ditto.
44712         (_mm512_cmple_epi32_mask): Ditto.
44713         (_mm512_cmple_epu32_mask): Ditto.
44714         (_mm512_cmple_epi64_mask): Ditto.
44715         (_mm512_cmple_epu64_mask): Ditto.
44716         (_mm512_cmplt_epi32_mask): Ditto.
44717         (_mm512_cmplt_epu32_mask): Ditto.
44718         (_mm512_cmplt_epi64_mask): Ditto.
44719         (_mm512_cmplt_epu64_mask): Ditto.
44720         (_mm512_cmpneq_epi32_mask): Ditto.
44721         (_mm512_cmpneq_epu32_mask): Ditto.
44722         (_mm512_cmpneq_epi64_mask): Ditto.
44723         (_mm512_cmpneq_epu64_mask): Ditto.
44724         (_mm512_expand_pd): Ditto.
44725         (_mm512_expand_ps): Ditto.
44726         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
44727         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
44728         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
44729         * config/i386/i386.c (ix86_builtins): Add
44730         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
44731         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
44732         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
44733         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
44734         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
44735         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
44736         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
44737         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
44738         IX86_BUILTIN_PMOVUSQW512_MEM.
44739         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
44740         __builtin_ia32_pmovsqd512mem_mask,
44741         __builtin_ia32_pmovqd512mem_mask,
44742         __builtin_ia32_pmovusqw512mem_mask,
44743         __builtin_ia32_pmovsqw512mem_mask,
44744         __builtin_ia32_pmovqw512mem_mask,
44745         __builtin_ia32_pmovusdw512mem_mask,
44746         __builtin_ia32_pmovsdw512mem_mask,
44747         __builtin_ia32_pmovdw512mem_mask,
44748         __builtin_ia32_pmovqb512mem_mask,
44749         __builtin_ia32_pmovusqb512mem_mask,
44750         __builtin_ia32_pmovsqb512mem_mask,
44751         __builtin_ia32_pmovusdb512mem_mask,
44752         __builtin_ia32_pmovsdb512mem_mask,
44753         __builtin_ia32_pmovdb512mem_mask.
44754         (bdesc_args): Add __builtin_ia32_expanddf512,
44755         __builtin_ia32_expandsf512.
44756         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
44757         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
44758         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
44759         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
44760         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
44761         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
44762         (avx512f_<code>v8div16qi2_mask_store): This.
44763         (avx512f_expand<mode>): New.
44764
44765 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
44766
44767         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
44768         New.
44769         (_mm512_mask_prefetch_i64gather_pd): Ditto.
44770         (_mm512_prefetch_i32scatter_pd): Ditto.
44771         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
44772         (_mm512_prefetch_i64scatter_pd): Ditto.
44773         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
44774         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
44775         (_mm512_mask_prefetch_i64gather_ps): Ditto.
44776         (_mm512_prefetch_i32scatter_ps): Ditto.
44777         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
44778         (_mm512_prefetch_i64scatter_ps): Ditto.
44779         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
44780         * config/i386/i386-builtin-types.def: Define
44781         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
44782         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
44783         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
44784         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
44785         IX86_BUILTIN_SCATTERPFQPD.
44786         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
44787         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
44788         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
44789         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
44790         __builtin_ia32_scatterpfqps.
44791         (ix86_expand_builtin): Expand new built-ins.
44792         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
44793         fix memory access data type.
44794         (*avx512pf_gatherpf<mode>_mask): Ditto.
44795         (*avx512pf_gatherpf<mode>): Ditto.
44796         (avx512pf_scatterpf<mode>): Ditto.
44797         (*avx512pf_scatterpf<mode>_mask): Ditto.
44798         (*avx512pf_scatterpf<mode>): Ditto.
44799         (GATHER_SCATTER_SF_MEM_MODE): New.
44800         (avx512pf_gatherpf<mode>df): Ditto.
44801         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44802         (*avx512pf_scatterpf<mode>df): Ditto.
44803
44804 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
44805
44806         PR bootstrap/59934
44807         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
44808         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
44809         reached.
44810
44811 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
44812
44813         * common/config/arm/arm-common.c
44814         (arm_rewrite_mcpu): Handle multiple names.
44815         * config/arm/arm.h
44816         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
44817
44818 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
44819
44820         * gimple-builder.h (create_gimple_tmp): Delete.
44821
44822 2014-01-27  Christian Bruel  <christian.bruel@st.com>
44823
44824         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
44825         words comparisons.
44826
44827 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
44828
44829         * config/pa/pa.md (call): Generate indirect long calls to non-local
44830         functions when outputing 32-bit code.
44831         (call_value): Likewise except for special call to buggy powf function.
44832
44833         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
44834         portable runtime and PIC indirect calls.
44835         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
44836         and PIC call sequences.  Use ldo instead of blr to set return register
44837         in PIC call sequence.
44838
44839 2014-01-25  Walter Lee  <walt@tilera.com>
44840
44841         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
44842         avoid clobbering a live register.
44843
44844 2014-01-25  Walter Lee  <walt@tilera.com>
44845
44846         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
44847         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
44848         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
44849         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
44850
44851 2014-01-25  Walter Lee  <walt@tilera.com>
44852
44853         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
44854         arguments on even registers.
44855         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
44856         STACK_BOUNDARY.
44857         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
44858         (BIGGEST_ALIGNMENT): Ditto.
44859         (BIGGEST_FIELD_ALIGNMENT): Ditto.
44860
44861 2014-01-25  Walter Lee  <walt@tilera.com>
44862
44863         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
44864         insns before bundling.
44865         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
44866
44867 2014-01-25  Walter Lee  <walt@tilera.com>
44868
44869         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
44870         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
44871         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
44872
44873 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
44874
44875         * config/mips/constraints.md (kl): Delete.
44876         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
44877         define expands, using...
44878         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
44879         instructions for MIPS16.
44880         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
44881         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
44882
44883 2014-01-25  Walter Lee  <walt@tilera.com>
44884
44885         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
44886         (clzdi2): Ditto.
44887         (ffsdi2): Ditto.
44888
44889 2014-01-25  Walter Lee  <walt@tilera.com>
44890
44891         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
44892         (TARGET_EXPAND_TO_RTL_HOOK): Define.
44893
44894 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
44895
44896         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
44897         Handle XOR.
44898
44899 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
44900
44901         * print-rtl.c (in_call_function_usage): New var.
44902         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
44903         EXPR_LIST mode as mode and not as reg note name.
44904
44905         PR middle-end/59561
44906         * cfgloopmanip.c (copy_loop_info): If
44907         loop->warned_aggressive_loop_optimizations, make sure
44908         the flag is set in target loop too.
44909
44910 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
44911
44912         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
44913         flag_cilkplus.
44914         * builtins.def: Likewise.
44915         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
44916         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
44917         * ira.c (ira_setup_eliminable_regset): Likewise.
44918         * omp-low.c (gate_expand_omp): Likewise.
44919         (execute_lower_omp): Likewise.
44920         (diagnose_sb_0): Likewise.
44921         (gate_diagnose_omp_blocks): Likewise.
44922         (simd_clone_clauses_extract): Likewise.
44923         (gate): Likewise.
44924
44925 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44926
44927         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
44928         correction for little endian...
44929         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
44930         here.
44931
44932 2014-01-24  Jeff Law  <law@redhat.com>
44933
44934         PR tree-optimization/59919
44935         * tree-vrp.c (find_assert_locations_1): Do not register asserts
44936         for non-returning calls.
44937
44938 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
44939
44940         * common/config/aarch64/aarch64-common.c
44941         (aarch64_rewrite_mcpu): Handle multiple names.
44942         * config/aarch64/aarch64.h
44943         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
44944
44945 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
44946
44947         * input.c (add_file_to_cache_tab): Handle the case where fopen
44948         returns NULL.
44949
44950 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
44951
44952         PR target/59929
44953         * config/i386/i386.md (pushsf splitter): Get stack adjustment
44954         from push operand if code of push isn't PRE_DEC.
44955
44956 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
44957
44958         PR target/59909
44959         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
44960         -mquad-memory-atomic.  Update -mquad-memory documentation to say
44961         it is only used for non-atomic loads/stores.
44962
44963         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
44964         -mquad-memory or -mquad-memory-atomic switches.
44965
44966         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
44967         -mquad-memory-atomic to ISA 2.07 support.
44968
44969         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
44970         to separate support of normal quad word memory operations (ldq, stq)
44971         from the atomic quad word memory operations.
44972
44973         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
44974         support to separate non-atomic quad word operations from atomic
44975         quad word operations.  Disable non-atomic quad word operations in
44976         little endian mode so that we don't have to swap words after the
44977         load and before the store.
44978         (quad_load_store_p): Add comment about atomic quad word support.
44979         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
44980         options printed with -mdebug=reg.
44981
44982         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
44983         -mquad-memory-atomic as the test for whether we have quad word
44984         atomic instructions.
44985         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
44986         or -mp8-vector are used, allow byte/half-word atomic operations.
44987
44988         * config/rs6000/sync.md (load_lockedti): Insure that the address
44989         is a proper indexed or indirect address for the lqarx instruction.
44990         On little endian systems, swap the hi/lo registers after the lqarx
44991         instruction.
44992         (load_lockedpti): Use indexed_or_indirect_operand predicate to
44993         insure the address is valid for the lqarx instruction.
44994         (store_conditionalti): Insure that the address is a proper indexed
44995         or indirect address for the stqcrx. instruction.  On little endian
44996         systems, swap the hi/lo registers before doing the stqcrx.
44997         instruction.
44998         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
44999         insure the address is valid for the stqcrx. instruction.
45000
45001         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
45002         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
45003         type of quad memory support is available.
45004
45005 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
45006
45007         PR regression/59915
45008         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
45009         there is a danger of looping.
45010
45011 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
45012
45013         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
45014         force flag_ira_loop_pressure if set via command line.
45015
45016 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
45017
45018         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
45019         (ashr_simd): New builtin handling DI mode.
45020         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
45021         (aarch64_sshr_simddi): New match pattern.
45022         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
45023         (vshrd_n_s64): Likewise.
45024         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
45025
45026 2014-01-23  Nick Clifton  <nickc@redhat.com>
45027
45028         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
45029         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
45030         favour of mcu specific scripts.
45031         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
45032         430x multilibs.
45033
45034 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
45035             Alex Velenko  <Alex.Velenko@arm.com>
45036
45037         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
45038         (vaddv_s16): Likewise.
45039         (vaddv_s32): Likewise.
45040         (vaddv_u8): Likewise.
45041         (vaddv_u16): Likewise.
45042         (vaddv_u32): Likewise.
45043         (vaddvq_s8): Likewise.
45044         (vaddvq_s16): Likewise.
45045         (vaddvq_s32): Likewise.
45046         (vaddvq_s64): Likewise.
45047         (vaddvq_u8): Likewise.
45048         (vaddvq_u16): Likewise.
45049         (vaddvq_u32): Likewise.
45050         (vaddvq_u64): Likewise.
45051         (vaddv_f32): Likewise.
45052         (vaddvq_f32): Likewise.
45053         (vaddvq_f64): Likewise.
45054         (vmaxv_f32): Likewise.
45055         (vmaxv_s8): Likewise.
45056         (vmaxv_s16): Likewise.
45057         (vmaxv_s32): Likewise.
45058         (vmaxv_u8): Likewise.
45059         (vmaxv_u16): Likewise.
45060         (vmaxv_u32): Likewise.
45061         (vmaxvq_f32): Likewise.
45062         (vmaxvq_f64): Likewise.
45063         (vmaxvq_s8): Likewise.
45064         (vmaxvq_s16): Likewise.
45065         (vmaxvq_s32): Likewise.
45066         (vmaxvq_u8): Likewise.
45067         (vmaxvq_u16): Likewise.
45068         (vmaxvq_u32): Likewise.
45069         (vmaxnmv_f32): Likewise.
45070         (vmaxnmvq_f32): Likewise.
45071         (vmaxnmvq_f64): Likewise.
45072         (vminv_f32): Likewise.
45073         (vminv_s8): Likewise.
45074         (vminv_s16): Likewise.
45075         (vminv_s32): Likewise.
45076         (vminv_u8): Likewise.
45077         (vminv_u16): Likewise.
45078         (vminv_u32): Likewise.
45079         (vminvq_f32): Likewise.
45080         (vminvq_f64): Likewise.
45081         (vminvq_s8): Likewise.
45082         (vminvq_s16): Likewise.
45083         (vminvq_s32): Likewise.
45084         (vminvq_u8): Likewise.
45085         (vminvq_u16): Likewise.
45086         (vminvq_u32): Likewise.
45087         (vminnmv_f32): Likewise.
45088         (vminnmvq_f32): Likewise.
45089         (vminnmvq_f64): Likewise.
45090
45091 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
45092
45093         * config/aarch64/aarch64-simd.md
45094         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
45095         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
45096         (*aarch64_mul3_elt<mode>): Likewise.
45097         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
45098         (*aarch64_mul3_elt_to_64v2df): Likewise.
45099         (*aarch64_mla_elt<mode>): Likewise.
45100         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
45101         (*aarch64_mls_elt<mode>): Likewise.
45102         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
45103         (*aarch64_fma4_elt<mode>): Likewise.
45104         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
45105         (*aarch64_fma4_elt_to_64v2df): Likewise.
45106         (*aarch64_fnma4_elt<mode>): Likewise.
45107         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
45108         (*aarch64_fnma4_elt_to_64v2df): Likewise.
45109         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
45110         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
45111         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
45112         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
45113         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
45114         (aarch64_sqdmull_lane<mode>_internal): Likewise.
45115         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
45116
45117 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
45118
45119         * config/aarch64/aarch64-simd.md
45120         (aarch64_be_checked_get_lane<mode>): New define_expand.
45121         * config/aarch64/aarch64-simd-builtins.def
45122         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
45123         New builtin definition.
45124         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
45125         Use new safe be builtin.
45126
45127 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
45128
45129         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
45130         New define_insn.
45131         (aarch64_be_st1<mode>): Likewise.
45132         (aarch_ld1<VALL:mode>): Define_expand modified.
45133         (aarch_st1<VALL:mode>): Likewise.
45134         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
45135         (UNSPEC_ST1): Likewise.
45136
45137 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
45138
45139         * config/microblaze/microblaze.md: Add trap insn and attribute
45140
45141 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
45142
45143         PR preprocessor/58580
45144         * input.h (location_get_source_line): Take an additional line_size
45145         parameter.
45146         (void diagnostics_file_cache_fini): Declare new function.
45147         * input.c (struct fcache): New type.
45148         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
45149         New static constants.
45150         (diagnostic_file_cache_init, total_lines_num)
45151         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
45152         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
45153         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
45154         (get_next_line, read_next_line, goto_next_line, read_line_num):
45155         New static function definitions.
45156         (diagnostic_file_cache_fini): New function.
45157         (location_get_source_line): Take an additional output line_len
45158         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
45159         read_line_num.
45160         * diagnostic.c (diagnostic_finish): Call
45161         diagnostic_file_cache_fini.
45162         (adjust_line): Take an additional input parameter for the length
45163         of the line, rather than calculating it with strlen.
45164         (diagnostic_show_locus): Adjust the use of
45165         location_get_source_line and adjust_line with respect to their new
45166         signature.  While displaying a line now, do not stop at the first
45167         null byte.  Rather, display the zero byte as a space and keep
45168         going until we reach the size of the line.
45169         * Makefile.in: Add vec.o to OBJS-libcommon
45170
45171 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
45172             Ilya Tocar  <ilya.tocar@intel.com>
45173
45174         * config/i386/avx512fintrin.h (_mm512_kmov): New.
45175         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
45176         (__builtin_ia32_kmov16): Ditto.
45177         * config/i386/i386.md (UNSPEC_KMOV): New.
45178         (kmovw): Ditto.
45179
45180 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
45181
45182         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
45183         (_mm512_storeu_si512): Ditto.
45184
45185 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
45186
45187         PR target/52125
45188         * rtl.h (get_referenced_operands): Declare.
45189         * recog.c (get_referenced_operands): New function.
45190         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
45191         operands have been referenced when recording LO_SUM references.
45192
45193 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
45194
45195         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
45196
45197 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
45198
45199         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
45200         Enable for generic and recent AMD targets.
45201
45202 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
45203
45204         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
45205         ARG_SIZE note when adjustment was eliminated.
45206
45207 2014-01-22  Jeff Law  <law@redhat.com>
45208
45209         PR tree-optimization/59597
45210         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
45211         in file.  Accept new argument REGISTERING and use it to modify
45212         dump output appropriately.
45213         (register_jump_thread): Corresponding changes.
45214         (mark_threaded_blocks): Reinstate code to cancel unprofitable
45215         thread paths involving joiner blocks.  Add code to dump cancelled
45216         jump threading paths.
45217
45218 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
45219
45220         PR rtl-optimization/59477
45221         * lra-constraints.c (inherit_in_ebb): Process call for living hard
45222         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
45223
45224 2014-01-22  Tom Tromey  <tromey@redhat.com>
45225
45226         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
45227         PARAMS.
45228         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
45229
45230 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
45231
45232         PR rtl-optimization/59896
45233         * lra-constraints.c (process_alt_operands): Check unused note for
45234         matched operands of insn with no output reloads.
45235
45236 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
45237
45238         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
45239         (mips_move_from_gpr_cost): Likewise.
45240
45241 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
45242
45243         PR rtl-optimization/59858
45244         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
45245         ira_class_hard_regs_num.
45246         (process_alt_operands): Increase reject for dying matched operand.
45247
45248 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
45249
45250         PR target/59003
45251         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
45252         smaller than size, perform several stores or loads and stores
45253         at dst + count - size to store or copy all of size bytes, rather
45254         than just last modesize bytes.
45255
45256 2014-01-20  DJ Delorie  <dj@redhat.com>
45257
45258         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
45259         that CLOBBERs are REGs before propogating their values.
45260
45261 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
45262
45263         PR middle-end/59789
45264         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
45265         (cgraph_inline_failed_type): New function.
45266         * cgraph.h (DEFCIFCODE): Add type.
45267         (cgraph_inline_failed_type_t): New enum.
45268         (cgraph_inline_failed_type): New prototype.
45269         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
45270         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
45271         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
45272         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
45273         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
45274         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
45275         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
45276         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
45277         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
45278         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
45279         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
45280         OPTIMIZATION_MISMATCH.
45281         * tree-inline.c (expand_call_inline): Emit errors during
45282         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
45283
45284 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
45285
45286         PR target/59685
45287         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
45288         mode attribute in insn output.
45289
45290 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
45291
45292         * output.h (output_constant): Delete.
45293         * varasm.c (output_constant): Make private.
45294
45295 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
45296
45297         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
45298
45299 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
45300
45301         PR middle-end/59860
45302         * tree.h (fold_builtin_strcat): New prototype.
45303         * builtins.c (fold_builtin_strcat): No longer static.  Add len
45304         argument, if non-NULL, don't call c_strlen.  Optimize
45305         directly into __builtin_memcpy instead of __builtin_strcpy.
45306         (fold_builtin_2): Adjust fold_builtin_strcat caller.
45307         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
45308
45309 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
45310
45311         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
45312         for SImode_address_operand operands, having only a REG argument.
45313
45314 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
45315
45316         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
45317         loader name using mbig-endian.
45318         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
45319
45320 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
45321
45322         * doc/invoke.texi (-march): Clarify documentation for AArch64.
45323         (-mtune): Likewise.
45324         (-mcpu): Likewise.
45325
45326 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
45327
45328         * config/aarch64/aarch64-protos.h
45329         (aarch64_cannot_change_mode_class_ptr): Declare.
45330         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
45331         aarch64_cannot_change_mode_class_ptr): New.
45332         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
45333         backend hook aarch64_cannot_change_mode_class.
45334
45335 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
45336
45337         * common/config/aarch64/aarch64-common.c
45338         (aarch64_handle_option): Don't handle any option order logic here.
45339         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
45340         selected_cpu, warn on architecture version mismatch.
45341         (aarch64_override_options): Fix parsing order for option strings.
45342
45343 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
45344             Iain Sandoe  <iain@codesourcery.com>
45345
45346         PR bootstrap/59496
45347         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
45348         warning.  Amend comment to reflect current functionality.
45349
45350 2014-01-20  Richard Biener  <rguenther@suse.de>
45351
45352         PR middle-end/59860
45353         * builtins.c (fold_builtin_strcat): Remove case better handled
45354         by tree-ssa-strlen.c.
45355
45356 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
45357
45358         * config/aarch64/aarch64.opt
45359         (mcpu, march, mtune): Make case-insensitive.
45360
45361 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
45362
45363         PR target/59880
45364         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
45365         if operands[1] is a REG or ZERO_EXTEND of a REG.
45366
45367 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
45368
45369         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
45370
45371 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
45372
45373         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
45374         long non-pic millicode calls.
45375
45376 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
45377
45378         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
45379
45380 2014-01-19  Kito Cheng  <kito@0xlab.org>
45381
45382         * builtins.c (expand_movstr): Check movstr expand done or fail.
45383
45384 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
45385             H.J. Lu  <hongjiu.lu@intel.com>
45386
45387         PR target/59379
45388         * config/i386/i386.md (*lea<mode>): Zero-extend return register
45389         to DImode for zero-extended addresses.
45390
45391 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
45392
45393         PR rtl-optimization/57763
45394         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
45395         on the new indirect jump_insn and increment LABEL_NUSES (label).
45396
45397 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
45398
45399         PR bootstrap/59580
45400         PR bootstrap/59583
45401         * config.gcc (x86_archs): New variable.
45402         (x86_64_archs): Likewise.
45403         (x86_cpus): Likewise.
45404         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
45405         --with-arch/--with-cpu= options.
45406         Support --with-arch=/--with-cpu={nehalem,westmere,
45407         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
45408
45409 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
45410
45411         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
45412         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
45413
45414 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
45415
45416         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
45417
45418 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
45419
45420         PR target/58944
45421         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
45422         clear cpp_get_options (parse_in)->warn_unused_macros for
45423         ix86_target_macros_internal with cpp_define.
45424
45425 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
45426
45427         * jump.c (delete_related_insns): Keep (use (insn))s.
45428         * reorg.c (redundant_insn): Check for barriers too.
45429
45430 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
45431
45432         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
45433
45434 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
45435
45436         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
45437         call to $$dyncall when TARGET_LONG_CALLS is true.
45438
45439 2014-01-17  Jeff Law  <law@redhat.com>
45440
45441         * ree.c (combine_set_extension): Temporarily disable test for
45442         changing number of hard registers.
45443
45444 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
45445
45446         PR middle-end/58125
45447         * ipa-inline-analysis.c (inline_free_summary):
45448         Do not free summary of aliases.
45449
45450 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
45451
45452         PR middle-end/59706
45453         * gimplify.c (gimplify_expr): Use create_tmp_var
45454         instead of create_tmp_var_raw.  If cond doesn't have
45455         integral type, don't add the IFN_ANNOTATE builtin at all.
45456
45457 2014-01-17  Martin Jambor  <mjambor@suse.cz>
45458
45459         PR ipa/59736
45460         * ipa-cp.c (prev_edge_clone): New variable.
45461         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
45462         Also resize prev_edge_clone vector.
45463         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
45464         (ipcp_edge_removal_hook): New function.
45465         (ipcp_driver): Register ipcp_edge_removal_hook.
45466
45467 2014-01-17  Andrew Pinski  <apinski@cavium.com>
45468             Steve Ellcey  <sellcey@mips.com>
45469
45470         PR target/59462
45471         * config/mips/mips.c (mips_print_operand): Check operand mode instead
45472         of operator mode.
45473
45474 2014-01-17  Jeff Law  <law@redhat.com>
45475
45476         PR middle-end/57904
45477         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
45478         so that pass_ccp runs first.
45479
45480 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
45481
45482         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
45483         (ix86_adjust_cost): Use !TARGET_XXX.
45484         (do_reorder_for_imul): Likewise.
45485         (swap_top_of_ready_list): Likewise.
45486         (ix86_sched_reorder): Likewise.
45487
45488 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
45489
45490         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
45491         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
45492         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
45493         (intel_memset): New.  Duplicate slm_memset.
45494         (intel_cost): New.  Duplicate slm_cost.
45495         (m_INTEL): New macro.
45496         (processor_target_table): Add "intel".
45497         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
45498         with PROCESSOR_INTEL for "intel".
45499         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
45500         PROCESSOR_SILVERMONT.
45501         (ix86_issue_rate): Likewise.
45502         (ix86_adjust_cost): Likewise.
45503         (ia32_multipass_dfa_lookahead): Likewise.
45504         (swap_top_of_ready_list): Likewise.
45505         (ix86_sched_reorder): Likewise.
45506         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
45507         instead of TARGET_OPT_AGU.
45508         * config/i386/i386.h (TARGET_INTEL): New.
45509         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
45510         (processor_type): Add PROCESSOR_INTEL.
45511         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
45512         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
45513
45514 2014-01-17  Marek Polacek  <polacek@redhat.com>
45515
45516         PR c/58346
45517         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
45518         size is zero.
45519
45520 2014-01-17  Richard Biener  <rguenther@suse.de>
45521
45522         PR tree-optimization/46590
45523         * opts.c (default_options_table): Add entries for
45524         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
45525         all enabled at -O1 but not for -Og.
45526         * common.opt (fbranch-count-reg): Remove Init(1).
45527         (fmove-loop-invariants): Likewise.
45528         (ftree-pta): Likewise.
45529
45530 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
45531
45532         * config/i386/i386.c (ix86_data_alignment): For compatibility with
45533         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
45534         decls to at least the GCC 4.8 used alignments.
45535
45536         PR fortran/59440
45537         * tree-nested.c (convert_nonlocal_reference_stmt,
45538         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
45539         of GIMPLE_BIND stmts, adjust associated decls.
45540
45541 2014-01-17  Richard Biener  <rguenther@suse.de>
45542
45543         PR tree-optimization/46590
45544         * vec.h (vec<>::bseach): New member function implementing
45545         binary search according to C89 bsearch.
45546         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
45547         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
45548         bitmap pointer again.  Make accesses_in_loop a flat array.
45549         (mem_ref_obstack): New global.
45550         (outermost_indep_loop): Adjust for mem_ref->stored changes.
45551         (mark_ref_stored): Likewise.
45552         (ref_indep_loop_p_2): Likewise.
45553         (set_ref_stored_in_loop): New helper function.
45554         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
45555         (memref_free): Adjust.
45556         (record_mem_ref_loc): Simplify.
45557         (gather_mem_refs_stmt): Adjust.
45558         (sort_locs_in_loop_postorder_cmp): New function.
45559         (analyze_memory_references): Sort accesses_in_loop after
45560         loop postorder number.
45561         (find_ref_loc_in_loop_cmp): New function.
45562         (for_all_locs_in_loop): Find relevant cluster of locs in
45563         accesses_in_loop and iterate without recursion.
45564         (execute_sm): Avoid uninit warning.
45565         (struct ref_always_accessed): Simplify.
45566         (ref_always_accessed::operator ()): Likewise.
45567         (ref_always_accessed_p): Likewise.
45568         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
45569         loop postorder numbers here.
45570         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
45571         numbers.
45572
45573 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
45574
45575         PR c++/57945
45576         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
45577         on decls for which assemble_alias has been called.
45578
45579 2014-01-17  Nick Clifton  <nickc@redhat.com>
45580
45581         * config/msp430/msp430.opt: (mcpu): New option.
45582         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
45583         (msp430_option_override): Parse target_cpu.  If the MCU name
45584         matches a generic string, clear target_mcu.
45585         (msp430_attr): Allow numeric interrupt values up to 63.
45586         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
45587         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
45588         option.
45589         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
45590         Add mcpu matches.
45591         * config/msp430/msp430.md (popm): Use %J rather than %I.
45592         (addsi3): Use msp430_nonimmediate_operand for operand 2.
45593         (addhi_cy_i): Use immediate_operand for operand 2.
45594         * doc/invoke.texi: Document -mcpu option.
45595
45596 2014-01-17  Richard Biener  <rguenther@suse.de>
45597
45598         PR rtl-optimization/38518
45599         * df.h (df_analyze_loop): Declare.
45600         * df-core.c: Include cfgloop.h.
45601         (df_analyze_1): Split out main part of df_analyze.
45602         (df_analyze): Adjust.
45603         (loop_inverted_post_order_compute): New function.
45604         (loop_post_order_compute): Likewise.
45605         (df_analyze_loop): New function avoiding whole-function
45606         postorder computes.
45607         * loop-invariant.c (find_defs): Use df_analyze_loop.
45608         (find_invariants): Adjust.
45609         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
45610
45611 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
45612
45613         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
45614         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
45615
45616 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
45617
45618         * ipa-ref.c (ipa_remove_stmt_references): Fix references
45619         traversal when removing references.
45620
45621 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
45622
45623         PR ipa/59775
45624         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
45625
45626 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
45627
45628         PR middle-end/56791
45629         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
45630         pushing a reload for an autoinc when we had previously reloaded an
45631         inner part of the address.
45632
45633 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
45634
45635         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
45636         field.
45637         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
45638         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
45639         when not giving up or versioning for alias only because of
45640         loop->safelen.
45641         (vect_analyze_data_ref_dependences): Set to true.
45642         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
45643         is a GIMPLE_PHI.
45644         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
45645         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
45646         to the condition.
45647
45648         PR middle-end/58344
45649         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
45650
45651         PR target/59839
45652         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
45653         operand 0 predicate for gathers, use a new pseudo as subtarget.
45654
45655 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
45656
45657         PR middle-end/59609
45658         * lra-constraints.c (process_alt_operands): Add printing debug info.
45659         Check absence of input/output reloads for matched operands too.
45660
45661 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
45662
45663         PR rtl-optimization/59835
45664         * ira.c (ira_init_register_move_cost): Increase cost for
45665         impossible modes.
45666
45667 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
45668
45669         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
45670
45671 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
45672
45673         PR target/59780
45674         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
45675         non-register objects.  Use gen_(high/low)part more consistently.
45676         Fix assertions.
45677
45678 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
45679
45680         PR target/59844
45681         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
45682         endian support, remove tests for WORDS_BIG_ENDIAN.
45683         (p8_mfvsrd_3_<mode>): Likewise.
45684         (reload_gpr_from_vsx<mode>): Likewise.
45685         (reload_gpr_from_vsxsf): Likewise.
45686         (p8_mfvsrd_4_disf): Likewise.
45687
45688 2014-01-16  Richard Biener  <rguenther@suse.de>
45689
45690         PR rtl-optimization/46590
45691         * lcm.c (compute_antinout_edge): Use postorder iteration.
45692         (compute_laterin): Use inverted postorder iteration.
45693
45694 2014-01-16  Nick Clifton  <nickc@redhat.com>
45695
45696         PR middle-end/28865
45697         * varasm.c (output_constant): Return the number of bytes actually
45698         emitted.
45699         (output_constructor_array_range): Update the field size with the
45700         number of bytes emitted by output_constant.
45701         (output_constructor_regular_field): Likewise.  Also do not
45702         complain if the total number of bytes emitted is now greater
45703         than the expected fieldpos.
45704         * output.h (output_constant): Update prototype and descriptive comment.
45705
45706 2014-01-16  Marek Polacek  <polacek@redhat.com>
45707
45708         PR middle-end/59827
45709         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
45710         it is error_mark_node.
45711
45712 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
45713
45714         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
45715         VALID_AVX256_REG_OR_OI_MODE.
45716
45717 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
45718
45719         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
45720         current procedure should be profiled.
45721
45722 2014-01-15  Andrew Pinski  <apinski@cavium.com>
45723
45724         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
45725         of moving from/to the STACK_REG register class.
45726
45727 2014-01-15  Richard Henderson  <rth@redhat.com>
45728
45729         PR debug/54694
45730         * reginfo.c (global_regs_decl): Globalize.
45731         * rtl.h (global_regs_decl): Declare.
45732         * ira.c (do_reload): Diagnose frame_pointer_needed and it
45733         reserved via global_regs.
45734
45735 2014-01-15  Teresa Johnson  <tejohnson@google.com>
45736
45737         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
45738
45739 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
45740
45741         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
45742         and vmulosh rather than call gen_vec_widen_smult_*.
45743         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
45744         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
45745         (vec_widen_smult_even_v16qi): Likewise.
45746         (vec_widen_umult_even_v8hi): Likewise.
45747         (vec_widen_smult_even_v8hi): Likewise.
45748         (vec_widen_umult_odd_v16qi): Likewise.
45749         (vec_widen_smult_odd_v16qi): Likewise.
45750         (vec_widen_umult_odd_v8hi): Likewise.
45751         (vec_widen_smult_odd_v8hi): Likewise.
45752         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
45753         vmuloub rather than call gen_vec_widen_umult_*.
45754         (vec_widen_umult_lo_v16qi): Likewise.
45755         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
45756         vmulosb rather than call gen_vec_widen_smult_*.
45757         (vec_widen_smult_lo_v16qi): Likewise.
45758         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
45759         rather than call gen_vec_widen_umult_*.
45760         (vec_widen_umult_lo_v8hi): Likewise.
45761         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
45762         rather than call gen_vec_widen_smult_*.
45763         (vec_widen_smult_lo_v8hi): Likewise.
45764
45765 2014-01-15  Jeff Law  <law@redhat.com>
45766
45767         PR tree-optimization/59747
45768         * ree.c (find_and_remove_re): Properly handle case where a second
45769         eliminated extension requires widening a copy created for elimination
45770         of a prior extension.
45771         (combine_set_extension): Ensure that the number of hard regs needed
45772         for a destination register does not change when we widen it.
45773
45774 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
45775
45776         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
45777         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
45778         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
45779         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
45780         (avr-*-rtems*): Likewise.
45781         (bfin*-rtems*): Likewise.
45782         (moxie-*-rtems*): Likewise.
45783         (h8300-*-rtems*): Likewise.
45784         (i[34567]86-*-rtems*): Likewise.
45785         (lm32-*-rtems*): Likewise.
45786         (m32r-*-rtems*): Likewise.
45787         (m68k-*-rtems*): Likewise.
45788         (microblaze*-*-rtems*): Likewise.
45789         (mips*-*-rtems*): Likewise.
45790         (powerpc-*-rtems*): Likewise.
45791         (sh-*-rtems*): Likewise.
45792         (sparc-*-rtems*): Likewise.
45793         (sparc64-*-rtems*): Likewise.
45794         (v850-*-rtems*): Likewise.
45795         (m32c-*-rtems*): Likewise.
45796
45797 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
45798
45799         PR rtl-optimization/59511
45800         * ira.c (ira_init_register_move_cost): Use memory costs for some
45801         cases of register move cost calculations.
45802         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
45803         instead of BB frequency.
45804         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
45805         * lra-assigns.c (find_hard_regno_for): Ditto.
45806
45807 2014-01-15  Richard Biener  <rguenther@suse.de>
45808
45809         PR tree-optimization/59822
45810         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
45811         (vectorizable_load): Use it to hoist defs of uses of invariant
45812         loads out of the loop.
45813
45814 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
45815             Kugan Vivekanandarajah  <kuganv@linaro.org>
45816
45817         PR target/59695
45818         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
45819         truncation.
45820
45821 2014-01-15  Richard Biener  <rguenther@suse.de>
45822
45823         PR rtl-optimization/59802
45824         * lcm.c (compute_available): Use inverted postorder to seed
45825         the initial worklist.
45826
45827 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45828
45829         PR target/59803
45830         * config/s390/s390.c (s390_preferred_reload_class): Don't return
45831         ADDR_REGS for invalid symrefs in non-PIC code.
45832
45833 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
45834
45835         PR other/58712
45836         * builtins.c (determine_block_size): Initialize *probable_max_size
45837         even if len_rtx is CONST_INT.
45838
45839 2014-01-14  Andrew Pinski  <apinski@cavium.com>
45840
45841         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
45842         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
45843         (cortexa53_tunings): Likewise.
45844         (aarch64_sched_issue_rate): New function.
45845         (TARGET_SCHED_ISSUE_RATE): Define.
45846
45847 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
45848
45849         * ira-costs.c (find_costs_and_classes): Add missed
45850         ira_init_register_move_cost_if_necessary.
45851
45852 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
45853
45854         PR target/59787
45855         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
45856
45857 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
45858
45859         PR target/59794
45860         * config/i386/i386.c (type_natural_mode): Add a bool parameter
45861         to indicate if type is used for function return value.  Warn ABI
45862         change if the vector mode isn't available for function return value.
45863         (ix86_function_arg_advance): Pass false to type_natural_mode.
45864         (ix86_function_arg): Likewise.
45865         (ix86_gimplify_va_arg): Likewise.
45866         (function_arg_32): Don't warn ABI change.
45867         (ix86_function_value): Pass true to type_natural_mode.
45868         (ix86_return_in_memory): Likewise.
45869         (ix86_struct_value_rtx): Removed.
45870         (TARGET_STRUCT_VALUE_RTX): Likewise.
45871
45872 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45873
45874         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
45875         converting a conditional jump into a conditional return.
45876
45877 2014-01-14  Richard Biener  <rguenther@suse.de>
45878
45879         PR tree-optimization/58921
45880         PR tree-optimization/59006
45881         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
45882         hoisting invariant stmts.
45883         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
45884         invariant loads on the preheader edge if possible.
45885
45886 2014-01-14  Joey Ye  <joey.ye@arm.com>
45887
45888         * doc/plugin.texi (Building GCC plugins): Update to C++.
45889
45890 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
45891
45892         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
45893         (_mm_rcp28_round_ss): Ditto.
45894         (_mm_rsqrt28_round_sd): Ditto.
45895         (_mm_rsqrt28_round_ss): Ditto.
45896         (_mm_rcp28_sd): Ditto.
45897         (_mm_rcp28_ss): Ditto.
45898         (_mm_rsqrt28_sd): Ditto.
45899         (_mm_rsqrt28_ss): Ditto.
45900         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
45901         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
45902         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
45903         (IX86_BUILTIN_RCP28SD): Ditto.
45904         (IX86_BUILTIN_RCP28SS): Ditto.
45905         (IX86_BUILTIN_RSQRT28SD): Ditto.
45906         (IX86_BUILTIN_RSQRT28SS): Ditto.
45907         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
45908         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
45909         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
45910         (ix86_expand_special_args_builtin): Expand new FTYPE.
45911         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
45912         (srcp14<mode>): Make insn unary.
45913         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
45914         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
45915         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
45916         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
45917         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
45918         Fix rounding: make it SAE only.
45919         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
45920         Ditto.
45921         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
45922         Ditto.
45923         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
45924         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
45925         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
45926         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
45927         (round_saeonly_mask_scalar_operand4): Ditto.
45928         (round_saeonly_mask_scalar_op3): Ditto.
45929         (round_saeonly_mask_scalar_op4): Ditto.
45930
45931 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45932
45933         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
45934         Implement -maltivec=be for vec_insert and vec_extract.
45935
45936 2014-01-10  DJ Delorie  <dj@redhat.com>
45937
45938         * config/msp430/msp430.md (call_internal): Don't allow memory
45939         references with SP as the base register.
45940         (call_value_internal): Likewise.
45941         * config/msp430/constraints.md (Yc): New.  For memory references
45942         that don't use SP as a base register.
45943
45944         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
45945         "an integer without a # prefix"
45946         * config/msp430/msp430.md (epilogue_helper): Use it.
45947
45948 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
45949
45950         PR target/59617
45951         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
45952         AVX512F gather builtins.
45953         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
45954         on gather decls with INTEGER_TYPE masktype.
45955         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
45956         directly into the builtin rather than hoisting it before loop.
45957
45958         PR tree-optimization/59387
45959         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
45960         (scev_const_prop): If folded_casts and type has undefined overflow,
45961         use force_gimple_operand instead of force_gimple_operand_gsi and
45962         for each added stmt if it is assign with
45963         arith_code_with_undefined_signed_overflow, call
45964         rewrite_to_defined_overflow.
45965         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
45966         gimple-fold.h instead.
45967         (arith_code_with_undefined_signed_overflow,
45968         rewrite_to_defined_overflow): Moved to ...
45969         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
45970         rewrite_to_defined_overflow): ... here.  No longer static.
45971         Include gimplify-me.h.
45972         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
45973         rewrite_to_defined_overflow): New prototypes.
45974
45975 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45976
45977         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
45978
45979 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
45980
45981         * builtins.c (get_object_alignment_2): Minor tweak.
45982         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
45983
45984 2014-01-13  Christian Bruel  <christian.bruel@st.com>
45985
45986         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
45987         optimized non constant lengths.
45988
45989 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
45990
45991         PR libgomp/59194
45992         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
45993         load as __atomic_load_N if possible.
45994
45995 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
45996
45997         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
45998         target parameter.
45999         (rs6000_expand_builtin): Adjust call.
46000
46001 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
46002
46003         PR target/58115
46004         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
46005         * config/rs6000/rs6000.c: Include target-globals.h.
46006         (rs6000_set_current_function): Instead of doing target_reinit
46007         unconditionally, use save_target_globals_default_opts and
46008         restore_target_globals.
46009
46010         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
46011         FPSCR.
46012         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
46013         (rs6000_expand_builtin): Handle mffs and mtfsf.
46014         (rs6000_init_builtins): Define mffs and mtfsf.
46015         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
46016         (rs6000_mffs): New pattern.
46017         (rs6000_mtfsf): New pattern.
46018
46019 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
46020
46021         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
46022         Start narrowing with START.  Apply candidate-use pair
46023         and check overall cost in narrowing.
46024         (iv_ca_prune): Pass new argument.
46025
46026 2014-01-10  Jeff Law  <law@redhat.com>
46027
46028         PR middle-end/59743
46029         * ree.c (combine_reaching_defs): Ensure the defining statement
46030         occurs before the extension when optimizing extensions with
46031         different source and destination hard registers.
46032
46033 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
46034
46035         PR ipa/58585
46036         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
46037         vtables into the type inheritance graph.
46038
46039 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
46040
46041         PR rtl-optimization/59754
46042         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
46043         modes in the REGNO != REGNO case.
46044
46045 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46046
46047         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
46048
46049 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
46050
46051         PR tree-optimization/59745
46052         * tree-predcom.c (tree_predictive_commoning_loop): Call
46053         free_affine_expand_cache if giving up because components is NULL.
46054
46055         * target-globals.c (save_target_globals): Allocate < 4KB structs using
46056         GC in payload of target_globals struct instead of allocating them on
46057         the heap and the larger structs separately using GC.
46058         * target-globals.h (struct target_globals): Make regs, hard_regs,
46059         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
46060         of GTY((skip)) and change type to void *.
46061         (reset_target_globals): Cast loads from those fields to corresponding
46062         types.
46063
46064 2014-01-10  Steve Ellcey  <sellcey@mips.com>
46065
46066         PR plugins/59335
46067         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
46068         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
46069         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
46070
46071 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
46072
46073         PR target/59744
46074         * aarch64-modes.def (CC_Zmode): New flags mode.
46075         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
46076         represents an equality.
46077         (aarch64_get_condition_code): Handle CC_Zmode.
46078         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
46079
46080 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
46081
46082         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
46083         extraction in good case.
46084
46085 2014-01-10  Richard Biener  <rguenther@suse.de>
46086
46087         PR tree-optimization/59374
46088         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
46089         checking after SLP discovery.  Mark stmts not participating
46090         in any SLP instance properly.
46091
46092 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46093
46094         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
46095         when handling a SET rtx.
46096
46097 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46098
46099         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
46100         (cortex-a57): Likewise.
46101         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
46102
46103 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46104
46105         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
46106         non-iwmmxt builtins.
46107
46108 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
46109
46110         PR ipa/58252
46111         PR ipa/59226
46112         * ipa-devirt.c record_target_from_binfo): Take as argument
46113         stack of binfos and lookup matching one for virtual inheritance.
46114         (possible_polymorphic_call_targets_1): Update.
46115
46116 2014-01-10  Huacai Chen  <chenhc@lemote.com>
46117
46118         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
46119         kernel strings for Loongson-2E/2F/3A.
46120
46121 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
46122
46123         PR middle-end/59670
46124         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
46125         is_gimple_call before calling gimple_call_internal_p.
46126
46127 2014-01-09  Steve Ellcey  <sellcey@mips.com>
46128
46129         * Makefile.in (TREE_FLOW_H): Remove.
46130         (TREE_SSA_H): Add file names from tree-flow.h.
46131         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
46132         * tree.h: Remove tree-flow.h reference.
46133         * hash-table.h: Remove tree-flow.h reference.
46134         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
46135         reference with tree-ssa-loop.h.
46136
46137 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46138
46139         * doc/invoke.texi: Add -maltivec={be,le} options, and document
46140         default element-order behavior for -maltivec.
46141         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
46142         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
46143         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
46144         when targeting big endian, at least for now.
46145         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
46146
46147 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
46148
46149         PR middle-end/47735
46150         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
46151         var satisfies use_register_for_decl, just take into account type
46152         alignment, rather than decl alignment.
46153
46154         PR tree-optimization/59622
46155         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
46156         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
46157         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
46158         Don't devirtualize for inplace at all.  For targets.length () == 1,
46159         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
46160
46161 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
46162
46163         * config/i386/i386.md (cpu): Remove the unused btver1.
46164
46165 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
46166
46167         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
46168
46169 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
46170
46171         PR target/58115
46172         * tree-core.h (struct target_globals): New forward declaration.
46173         (struct tree_target_option): Add globals field.
46174         * tree.h (TREE_TARGET_GLOBALS): Define.
46175         (prepare_target_option_nodes_for_pch): New prototype.
46176         * target-globals.h (struct target_globals): Define even if
46177         !SWITCHABLE_TARGET.
46178         * tree.c (prepare_target_option_node_for_pch,
46179         prepare_target_option_nodes_for_pch): New functions.
46180         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
46181         * config/i386/i386.c: Include target-globals.h.
46182         (ix86_set_current_function): Instead of doing target_reinit
46183         unconditionally, use save_target_globals_default_opts and
46184         restore_target_globals.
46185
46186 2014-01-09  Richard Biener  <rguenther@suse.de>
46187
46188         PR tree-optimization/59715
46189         * tree-cfg.h (split_critical_edges): Declare.
46190         * tree-cfg.c (split_critical_edges): Export.
46191         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
46192
46193 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
46194
46195         * cfgexpand.c (expand_stack_vars): Optionally disable
46196         asan stack protection.
46197         (expand_used_vars): Likewise.
46198         (partition_stack_vars): Likewise.
46199         * asan.c (asan_emit_stack_protection): Optionally disable
46200         after return stack usage.
46201         (instrument_derefs): Optionally disable memory access instrumentation.
46202         (instrument_builtin_call): Likewise.
46203         (instrument_strlen_call): Likewise.
46204         (asan_protect_global): Optionally disable global variables protection.
46205         * doc/invoke.texi: Added doc for new options.
46206         * params.def: Added new options.
46207         * params.h: Likewise.
46208
46209 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
46210
46211         PR rtl-optimization/59724
46212         * ifcvt.c (cond_exec_process_if_block): Don't call
46213         flow_find_head_matching_sequence with 0 longest_match.
46214         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
46215         non-active insns if !stop_after.
46216         (try_head_merge_bb): Revert 2014-01-07 changes.
46217
46218 2014-01-08  Jeff Law  <law@redhat.com>
46219
46220         * ree.c (get_sub_rtx): New function, extracted from...
46221         (merge_def_and_ext): Here.
46222         (combine_reaching_defs): Use get_sub_rtx.
46223
46224 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
46225
46226         * cgraph.h (varpool_variable_node): Do not choke on null node.
46227
46228 2014-01-08  Catherine Moore  <clm@codesourcery.com>
46229
46230         * config/mips/mips.md (simple_return): Attempt to use JRC
46231         for microMIPS.
46232         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
46233
46234 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
46235
46236         PR rtl-optimization/59137
46237         * reorg.c (steal_delay_list_from_target): Call update_block for
46238         elided insns.
46239         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
46240
46241 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46242
46243         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
46244         two duplicate entries.
46245
46246 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
46247
46248         Revert:
46249         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
46250
46251         * config/mips/mips.c (mips_truncated_op_cost): New function.
46252         (mips_rtx_costs): Adjust test for BADDU.
46253         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
46254
46255         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
46256
46257         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
46258         (*baddu_si): ...this new pattern.
46259
46260 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
46261
46262         PR ipa/59722
46263         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
46264
46265 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
46266
46267         PR middle-end/57748
46268         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
46269         inner_reference_p.
46270         (expand_expr, expand_normal): Adjust.
46271         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
46272         inner_reference_p. Use inner_reference_p to expand inner references.
46273         (store_expr): Adjust.
46274         * cfgexpand.c (expand_call_stmt): Adjust.
46275
46276 2014-01-08  Rong Xu  <xur@google.com>
46277
46278         * gcov-io.c (gcov_var): Move from gcov-io.h.
46279         (gcov_position): Ditto.
46280         (gcov_is_error): Ditto.
46281         (gcov_rewrite): Ditto.
46282         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
46283         only part to libgcc/libgcov.h.
46284
46285 2014-01-08  Marek Polacek  <polacek@redhat.com>
46286
46287         PR middle-end/59669
46288         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
46289
46290 2014-01-08  Marek Polacek  <polacek@redhat.com>
46291
46292         PR sanitizer/59667
46293         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
46294
46295 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
46296
46297         PR rtl-optimization/59649
46298         * stor-layout.c (get_mode_bounds): For BImode return
46299         0 and STORE_FLAG_VALUE.
46300
46301 2014-01-08  Richard Biener  <rguenther@suse.de>
46302
46303         PR middle-end/59630
46304         * gimple.h (is_gimple_builtin_call): Remove.
46305         (gimple_builtin_call_types_compatible_p): New.
46306         (gimple_call_builtin_p): New overload.
46307         * gimple.c (is_gimple_builtin_call): Remove.
46308         (validate_call): Rename to ...
46309         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
46310         check return types.
46311         (validate_type): New static function.
46312         (gimple_call_builtin_p): New overload and adjust.
46313         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
46314         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
46315         (gimple_fold_stmt_to_constant_1): Likewise.
46316         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
46317
46318 2014-01-08  Richard Biener  <rguenther@suse.de>
46319
46320         PR middle-end/59471
46321         * gimplify.c (gimplify_expr): Gimplify register-register type
46322         VIEW_CONVERT_EXPRs to separate stmts.
46323
46324 2014-01-07  Jeff Law  <law@redhat.com>
46325
46326         PR middle-end/53623
46327         * ree.c (combine_set_extension): Handle case where source
46328         and destination registers in an extension insn are different.
46329         (combine_reaching_defs): Allow source and destination registers
46330         in extension to be different under limited circumstances.
46331         (add_removable_extension): Remove restriction that the
46332         source and destination registers in the extension are the same.
46333         (find_and_remove_re): Emit a copy from the extension's
46334         destination to its source after the defining insn if
46335         the source and destination registers are different.
46336
46337         PR middle-end/59285
46338         * ifcvt.c (merge_if_block): If we are merging a block with more than
46339         one successor with a block with no successors, remove any BARRIER
46340         after the second block.
46341
46342 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
46343
46344         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
46345
46346 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
46347
46348         PR target/59652
46349         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
46350         for 14-bit register offsets when INT14_OK_STRICT is false.
46351
46352 2014-01-07  Roland Stigge  <stigge@antcom.de>
46353             Michael Meissner  <meissner@linux.vnet.ibm.com>
46354
46355         PR 57386/target
46356         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
46357         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
46358
46359 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
46360
46361         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
46362         -mcpu.
46363
46364 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
46365
46366         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
46367         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
46368         rtx is const0_rtx or not.
46369
46370 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
46371
46372         PR target/58115
46373         * target-globals.c (save_target_globals): Remove this_fn_optab
46374         handling.
46375         * toplev.c: Include optabs.h.
46376         (target_reinit): Temporarily restore the global options if another
46377         set of options are in force.
46378
46379 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
46380
46381         PR rtl-optimization/58668
46382         * cfgcleanup.c (flow_find_cross_jump): Don't count
46383         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
46384         to determine what is counted.
46385         (flow_find_head_matching_sequence): Use active_insn_p to determine
46386         what is counted.
46387         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
46388         counting change.
46389         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
46390         determine what is counted.
46391
46392         PR tree-optimization/59643
46393         * tree-predcom.c (split_data_refs_to_components): If one dr is
46394         read and one write, determine_offset fails and the write isn't
46395         in the bad component, just put the read into the bad component.
46396
46397 2014-01-07  Mike Stump  <mikestump@comcast.net>
46398             Jakub Jelinek  <jakub@redhat.com>
46399
46400         PR pch/59436
46401         * tree-core.h (struct tree_optimization_option): Change optabs
46402         type from unsigned char * to void *.
46403         * optabs.c (init_tree_optimization_optabs): Adjust
46404         TREE_OPTIMIZATION_OPTABS initialization.
46405
46406 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
46407
46408         PR target/59644
46409         * config/i386/i386.h (struct machine_function): Add
46410         no_drap_save_restore field.
46411         * config/i386/i386.c (ix86_save_reg): Use
46412         !cfun->machine->no_drap_save_restore instead of
46413         crtl->stack_realign_needed.
46414         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
46415         this function clears frame_pointer_needed.  Set
46416         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
46417         and DRAP reg is needed.
46418
46419 2014-01-06  Marek Polacek  <polacek@redhat.com>
46420
46421         PR c/57773
46422         * doc/implement-c.texi: Mention that other integer types are
46423         permitted as bit-field types in strictly conforming mode.
46424
46425 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
46426
46427         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
46428         is newly allocated.
46429
46430 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
46431
46432         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
46433
46434 2014-01-06  Martin Jambor  <mjambor@suse.cz>
46435
46436         PR ipa/59008
46437         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
46438         to int.
46439         * ipa-prop.c (ipa_print_node_params): Fix indentation.
46440
46441 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
46442
46443         PR debug/59350
46444         PR debug/59510
46445         * var-tracking.c (add_stores): Preserve the value of the source even if
46446         we don't record the store.
46447
46448 2014-01-06  Terry Guo  <terry.guo@arm.com>
46449
46450         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
46451
46452 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
46453
46454         PR bootstrap/59541
46455         * config/darwin.c (darwin_function_section): Adjust return values to
46456         correspond to optimisation changes made in r206070.
46457
46458 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
46459
46460         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
46461         from prefetch_block tune setting.
46462         (nocona_cost): Correct size of prefetch block to 64.
46463
46464 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
46465
46466         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
46467         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
46468         used to save the static chain register in the computation of the offset
46469         from which the FP registers need to be restored.
46470
46471 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
46472
46473         PR tree-optimization/59519
46474         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
46475         ICE if get_current_def (current_new_name) is already non-NULL, as long
46476         as it is a phi result of some other phi in *new_exit_bb that has
46477         the same argument.
46478
46479         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
46480         or vmovdqu* for misaligned_operand.
46481         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
46482         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
46483         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
46484         aligned_mem for AVX512F masked aligned load and store builtins and for
46485         non-temporal moves.
46486
46487 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
46488
46489         PR tree-optimization/59651
46490         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
46491         Address range for negative step should be added by TYPE_SIZE_UNIT.
46492
46493 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
46494
46495         * config/m68k/m68k.c (handle_move_double): Handle pushes with
46496         overlapping registers also for registers other than the stack pointer.
46497
46498 2014-01-03  Marek Polacek  <polacek@redhat.com>
46499
46500         PR other/59661
46501         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
46502         __builtin_FILE.
46503
46504 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
46505
46506         PR target/59625
46507         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
46508         asm goto as jump.
46509
46510         * config/i386/i386.md (MODE_SIZE): New mode attribute.
46511         (push splitter): Use <P:MODE_SIZE> instead of
46512         GET_MODE_SIZE (<P:MODE>mode).
46513         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
46514         (mov -1, reg peephole2): Likewise.
46515         * config/i386/sse.md (*mov<mode>_internal,
46516         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
46517         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
46518         *<code><mode>3, *andnot<mode>3<mask_name>,
46519         <mask_codefor><code><mode>3<mask_name>): Likewise.
46520         * config/i386/subst.md (mask_mode512bit_condition,
46521         sd_mask_mode512bit_condition): Likewise.
46522
46523 2014-01-02  Xinliang David Li  <davidxl@google.com>
46524
46525         PR tree-optimization/59303
46526         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
46527         (dump_predicates): Better output format.
46528         (pred_equal_p): New function.
46529         (is_neq_relop_p): Ditto.
46530         (is_neq_zero_form_p): Ditto.
46531         (pred_expr_equal_p): Ditto.
46532         (pred_neg_p): Ditto.
46533         (simplify_pred): Ditto.
46534         (simplify_preds_2): Ditto.
46535         (simplify_preds_3): Ditto.
46536         (simplify_preds_4): Ditto.
46537         (simplify_preds): Ditto.
46538         (push_pred): Ditto.
46539         (push_to_worklist): Ditto.
46540         (get_pred_info_from_cmp): Ditto.
46541         (is_degenerated_phi): Ditto.
46542         (normalize_one_pred_1): Ditto.
46543         (normalize_one_pred): Ditto.
46544         (normalize_one_pred_chain): Ditto.
46545         (normalize_preds): Ditto.
46546         (normalize_cond_1): Remove function.
46547         (normalize_cond): Ditto.
46548         (is_gcond_subset_of): Ditto.
46549         (is_subset_of_any): Ditto.
46550         (is_or_set_subset_of): Ditto.
46551         (is_and_set_subset_of): Ditto.
46552         (is_norm_cond_subset_of): Ditto.
46553         (pred_chain_length_cmp): Ditto.
46554         (convert_control_dep_chain_into_preds): Type change.
46555         (find_predicates): Ditto.
46556         (find_def_preds): Ditto.
46557         (destroy_predicates_vecs): Ditto.
46558         (find_matching_predicates_in_rest_chains): Ditto.
46559         (use_pred_not_overlap_with_undef_path_pred): Ditto.
46560         (is_pred_expr_subset): Ditto.
46561         (is_pred_chain_subset_of): Ditto.
46562         (is_included_in): Ditto.
46563         (is_superset_of): Ditto.
46564
46565 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
46566
46567         Update copyright years.
46568
46569 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
46570
46571         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
46572         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
46573         config/arc/arc.md, config/arc/arc.opt,
46574         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
46575         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
46576         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
46577         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
46578         config/linux-protos.h, config/linux.c, config/winnt-c.c,
46579         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
46580         vtable-verify.c, vtable-verify.h: Use the standard form for the
46581         copyright notice.
46582
46583 2014-01-02  Tobias Burnus  <burnus@net-b.de>
46584
46585         * gcc.c (process_command): Update copyright notice dates.
46586         * gcov-dump.c: Ditto.
46587         * gcov.c: Ditto.
46588         * doc/cpp.texi: Bump @copying's copyright year.
46589         * doc/cppinternals.texi: Ditto.
46590         * doc/gcc.texi: Ditto.
46591         * doc/gccint.texi: Ditto.
46592         * doc/gcov.texi: Ditto.
46593         * doc/install.texi: Ditto.
46594         * doc/invoke.texi: Ditto.
46595
46596 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
46597
46598         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
46599
46600 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
46601
46602         * config/i386/sse.md (*mov<mode>_internal): Guard
46603         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
46604
46605         PR rtl-optimization/59647
46606         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
46607         new_rtx into UNSIGNED_FLOAT rtxes.
46608 \f
46609 Copyright (C) 2014 Free Software Foundation, Inc.
46610
46611 Copying and distribution of this file, with or without modification,
46612 are permitted in any medium without royalty provided the copyright
46613 notice and this notice are preserved.