1 2014-10-02 Olivier Hainque <hainque@adacore.com>
3 * Makefile.in (CROSS): Define, to @CROSS.
5 2014-10-02 Jakub Jelinek <jakub@redhat.com>
8 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
9 if it expands to a single insn only.
10 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
11 fail unless in_order is true. Add forward declaration.
12 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
13 is useful for one_operand_p.
14 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
16 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
18 * cgraphclones.c (build_function_type_skip_args): Do not make new
21 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
23 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
24 when speculation is added.
25 (ipa_edge_args): Add polymorphic_call_contexts.
26 (ipa_get_ith_polymorhic_call_context): New accesor.
27 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
28 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
29 (ipa_compute_jump_functions_for_edge): Compute contexts.
30 (update_jump_functions_after_inlining): Update contexts.
31 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
32 update dumping; add speculative edge creation.
33 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
35 (update_indirect_edges_after_inlining): Pass down context.
36 (ipa_edge_duplication_hook): Duplicate contexts.
37 (ipa_write_node_info): Stream out contexts.
38 (ipa_read_node_info): Stream in contexts.
39 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
41 (try_speculative_devirtualization): New function.
42 * ipa-utils.h (try_speculative_devirtualization): Declare.
44 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
46 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
49 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
51 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
54 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
56 * ipa-polymorphic-call.c
57 (ipa_polymorphic_call_context::restrict_to_inner_class):
58 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
59 use speculation_consistent_p to do so; Add CONSDER_BASES
60 and CONSIDER_PLACEMENT_NEW parameters.
61 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
62 short circuit obvious cases.
63 (ipa_polymorphic_call_context::dump): Improve formatting.
64 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
65 combine_speculation_with to record speculations; Do not ICE when
66 object is located in pointer type decl; do not ICE for methods
67 of UNION_TYPE; do not record nonpolymorphic types.
68 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
69 (ipa_polymorphic_call_context::combine_speculation_with): New method.
70 (ipa_polymorphic_call_context::combine_with): New method.
71 (ipa_polymorphic_call_context::make_speculative): Move here; use
73 * cgraph.h (ipa_polymorphic_call_context): Update
74 restrict_to_inner_class prototype; add offset_by, make_speculative,
75 combine_with, useless_p, combine_speculation_with and
76 speculation_consistent_p methods.
77 (ipa_polymorphic_call_context::offset_by): New method.
78 (ipa_polymorphic_call_context::useless_p): New method.
80 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
82 PR rtl-optimization/62151
83 * combine.c (can_combine_p): Allow the destination register of INSN
84 to be clobbered in I3.
85 (subst): Do not substitute into clobbers of registers.
87 2014-10-01 Jakub Jelinek <jakub@redhat.com>
90 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
91 offset, TARGET_MEM_REF and SSA_NAME.
93 * config/i386/i386.c (expand_vec_perm_palignr): Handle
94 256-bit vectors for TARGET_AVX2.
96 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
100 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
101 argument to avx2_permv2ti.
103 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
105 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
107 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
109 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
110 (fmod<mode>3): Ditto.
111 (fpremxf4_i387): Ditto.
112 (reminderxf3): Ditto.
113 (reminder<mode>3): Ditto.
114 (fprem1xf4_i387): Ditto.
116 2014-09-30 Teresa Johnson <tejohnson@google.com>
118 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
119 duplicate_blocks bitmap.
120 (remove_ctrl_stmt_and_useless_edges): Ditto.
121 (create_block_for_threading): Ditto.
122 (compute_path_counts): New function.
123 (update_profile): Ditto.
124 (recompute_probabilities): Ditto.
125 (update_joiner_offpath_counts): Ditto.
126 (freqs_to_counts_path): Ditto.
127 (clear_counts_path): Ditto.
128 (ssa_fix_duplicate_block_edges): Update profile info.
129 (ssa_create_duplicates): Pass new parameter.
130 (ssa_redirect_edges): Remove old profile update.
131 (thread_block_1): New duplicate_blocks bitmap,
132 remove old profile update.
133 (thread_single_edge): Pass new parameter.
135 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
138 * varasm.c (decode_reg_name_and_count): Check availability for
139 registers from ADDITIONAL_REGISTER_NAMES.
141 2014-09-30 David Malcolm <dmalcolm@redhat.com>
144 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
145 (PLUGIN_HEADERS): Add pass-instances.def.
147 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
149 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
151 * config/aarch64/aarch64-simd.md
152 (aarch64_sqdmull_laneq<mode>): Expand iterator.
153 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
154 (vqdmulls_lane_s32): Fix return type.
155 (vqdmulls_laneq_s32): New.
157 2014-09-30 Jakub Jelinek <jakub@redhat.com>
160 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
161 or invert_jump_1 if jump isn't any_condjump_p.
163 2014-09-30 Terry Guo <terry.guo@arm.com>
165 * config/arm/arm-cores.def (cortex-m7): New core name.
166 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
168 * config/arm/arm-tables.opt: Regenerated.
169 * config/arm/arm-tune.md: Regenerated.
170 * config/arm/arm.h (TARGET_VFP5): New macro.
171 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
172 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
173 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
174 * doc/invoke.texi: Document new cpu and fpu names.
176 2014-09-30 Jiong Wang <jiong.wang@arm.com>
178 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
181 2014-09-30 David Sherwood <david.sherwood@arm.com>
183 * ira-int.h (ira_allocno): Add "wmode" field.
184 * ira-build.c (create_insn_allocnos): Add new "parent" function
186 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
187 that cannot be accessed in wmode.
189 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
191 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
194 2014-09-29 Andi Kleen <ak@linux.intel.com>
196 * opts.c (print_filtered_help): Print --param min/max/default
199 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
201 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
203 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
205 * tree-vrp.c (get_single_symbol): New function.
206 (build_symbolic_expr): Likewise.
207 (symbolic_range_based_on_p): New predicate.
208 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
209 for PLUS and MINUS. Do not drop symbolic ranges at the end.
210 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
211 operand is symbolic and based on the other operand.
213 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
215 * config/microblaze/microblaze.md (call_internal1): Use VOID
216 instead of SI to fix "((void (*)(void)) 0)()" issue
218 2014-09-29 Nick Clifton <nickc@redhat.com>
220 * config/msp430/msp430.c (msp430_expand_prologue): Return a
221 CLOBBER rtx for naked functions.
222 (msp430_expand_epilogue): Likewise.
223 (msp430_use_f5_series_hwmult): Cache result.
224 (use_32bit_hwmult): Cache result.
225 (msp430_no_hwmult): New function.
226 (msp430_output_labelref): Use it.
228 2014-09-29 Jakub Jelinek <jakub@redhat.com>
231 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
232 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
233 use the alignment of avar rather than ovar.
235 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
237 * config/pa/pa.c (pa_output_function_epilogue): Only update
238 last_address when a nonnote insn is found.
240 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
243 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
245 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
248 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
249 fix pasto in checking array size.
251 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
254 * passes.def (pass_tracer): Move before last dominator pass.
256 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
258 * gcc.c (try_generate_repro): Remove argument "prog". Change all
260 (run_attempt): Handle errors of "pex_run" invocation.
262 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
264 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
266 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
267 (TARGET_ASAN_SHADOW_OFFSET): Define.
269 2014-09-26 Martin Liska <mliska@suse.cz>
271 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
273 * cgraph.h: Likewise.
274 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
275 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
276 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
277 * tree-ssa-alias.h: Likewise.
279 2014-09-26 Jakub Jelinek <jakub@redhat.com>
280 Max Ostapenko <m.ostapenko@partner.samsung.com>
282 * common.opt: New option.
283 * doc/invoke.texi: Describe new option.
284 * gcc.c (execute): Don't free first string early, but at the end
285 of the function. Call retry_ice if compiler exited with
287 (main): Factor out common code.
288 (print_configuration): New function.
289 (files_equal_p): Likewise.
290 (check_repro): Likewise.
291 (run_attempt): Likewise.
292 (do_report_bug): Likewise.
293 (append_text): Likewise.
294 (try_generate_repro): Likewise
296 2014-09-25 Andi Kleen <ak@linux.intel.com>
298 * config/i386/i386.c (x86_print_call_or_nop): New function.
299 (x86_function_profiler): Support -mnop-mcount and
301 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
302 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
304 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
306 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
307 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
308 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
311 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
313 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
314 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
315 types_odr_comparable): Declare.
316 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
317 * ipa-polymorphic-call.c: New file.
318 (contains_polymorphic_type_p, possible_placement_new,
319 ipa_polymorphic_call_context::restrict_to_inner_class,
320 contains_type_p, decl_maybe_in_construction_p,
321 ipa_polymorphic_call_context::stream_out,
322 ipa_polymorphic_call_context::debug,
323 ipa_polymorphic_call_context::stream_in,
324 ipa_polymorphic_call_context::set_by_decl,
325 ipa_polymorphic_call_context::set_by_invariant,
327 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
328 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
329 extr_type_from_vtbl_ptr_store, record_known_type
330 check_stmt_for_type_change,
331 ipa_polymorphic_call_context::get_dynamic_type): Move here from
333 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
335 (contains_polymorphic_type_p, possible_placement_new,
336 ipa_polymorphic_call_context::restrict_to_inner_class,
337 contains_type_p, decl_maybe_in_construction_p,
338 ipa_polymorphic_call_context::stream_out,
339 ipa_polymorphic_call_context::debug,
340 ipa_polymorphic_call_context::stream_in,
341 ipa_polymorphic_call_context::set_by_decl,
342 ipa_polymorphic_call_context::set_by_invariant,
344 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
345 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
346 extr_type_from_vtbl_ptr_store, record_known_type
347 check_stmt_for_type_change,
348 ipa_polymorphic_call_context::get_dynamic_type): Move to
349 ipa-polymorphic-call.c
350 (type_all_derivations_known_p, types_odr_comparable,
351 types_must_be_same_for_odr): Export.
352 (type_known_to_have_no_deriavations_p): New function.
353 * Makefile.in: Add ipa-polymorphic-call.c
355 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
357 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
359 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
360 (possible_polymorphic_call_targets): Instead of computing both
361 speculative and non-speculative answers, do just one at a time.
362 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
363 (dump_targets): Break out from ...
364 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
365 and non-speculative lists.
366 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
367 * ipa-utils.h (possible_polymorphic_call_targets): Update.
369 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
371 PR rtl-optimization/63348
372 * emit-rtl.c (try_split): Do not emit extra barrier.
374 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
376 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
377 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
379 (aarch64_<sur>shll2_n<mode>): Likewise.
380 (aarch64_<sur>shr_n<mode>): Likewise.
381 (aarch64_<sur>sra_n<mode>: Likewise.
382 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
383 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
384 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
385 * config/aarch64/iterators.md (ve_mode): New.
386 (offsetlr): Remap to infix text for use in new predicates.
387 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
388 (aarch64_simd_shift_imm_hi): Likewise.
389 (aarch64_simd_shift_imm_si): Likewise.
390 (aarch64_simd_shift_imm_di): Likewise.
391 (aarch64_simd_shift_imm_offset_qi): Likewise.
392 (aarch64_simd_shift_imm_offset_hi): Likewise.
393 (aarch64_simd_shift_imm_offset_si): Likewise.
394 (aarch64_simd_shift_imm_offset_di): Likewise.
395 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
396 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
397 (aarch64_simd_shift_imm_bitsize_si): Likewise.
398 (aarch64_simd_shift_imm_bitsize_di): Likewise.
400 2014-09-25 Jiong Wang <jiong.wang@arm.com>
402 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
403 new created BB as the intersection of live-in from "old_dest" and
406 2014-09-25 Felix Yang <felix.yang@huawei.com>
408 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
409 * genautomata.c (merge_states): Ditto.
411 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
414 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
415 in instruction sequence.
417 2014-09-25 Nick Clifton <nickc@redhat.com>
420 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
421 in instruction sequence.
423 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
426 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
427 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
429 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
430 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
431 Anna Tikhonova <anna.tikhonova@intel.com>
432 Ilya Tocar <ilya.tocar@intel.com>
433 Andrey Turetskiy <andrey.turetskiy@intel.com>
434 Ilya Verbin <ilya.verbin@intel.com>
435 Kirill Yukhin <kirill.yukhin@intel.com>
436 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
439 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
440 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
441 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
442 (define_expand "<avx512>_perm<mode>_mask"): ... this.
443 Use VI8F_256_512 mode iterator.
444 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
445 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
447 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
448 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
449 Anna Tikhonova <anna.tikhonova@intel.com>
450 Ilya Tocar <ilya.tocar@intel.com>
451 Andrey Turetskiy <andrey.turetskiy@intel.com>
452 Ilya Verbin <ilya.verbin@intel.com>
453 Kirill Yukhin <kirill.yukhin@intel.com>
454 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
457 (define_insn "avx_movshdup256<mask_name>"): Add masking.
458 (define_insn "sse3_movshdup<mask_name>"): Ditto.
459 (define_insn "avx_movsldup256<mask_name>"): Ditto.
460 (define_insn "sse3_movsldup<mask_name>"): Ditto.
461 (define_insn "vec_dupv2df<mask_name>"): Ditto.
462 (define_insn "*vec_concatv2df"): Add EVEX version.
464 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
465 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
466 Anna Tikhonova <anna.tikhonova@intel.com>
467 Ilya Tocar <ilya.tocar@intel.com>
468 Andrey Turetskiy <andrey.turetskiy@intel.com>
469 Ilya Verbin <ilya.verbin@intel.com>
470 Kirill Yukhin <kirill.yukhin@intel.com>
471 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
474 (define_insn "vec_set<mode>_0"): Add EVEX version.
476 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
477 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
478 Anna Tikhonova <anna.tikhonova@intel.com>
479 Ilya Tocar <ilya.tocar@intel.com>
480 Andrey Turetskiy <andrey.turetskiy@intel.com>
481 Ilya Verbin <ilya.verbin@intel.com>
482 Kirill Yukhin <kirill.yukhin@intel.com>
483 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
487 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
489 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
490 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
491 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
492 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
493 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
494 (define_expand "sse2_cvtpd2ps_mask): New.
495 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
496 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
498 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
499 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
500 Anna Tikhonova <anna.tikhonova@intel.com>
501 Ilya Tocar <ilya.tocar@intel.com>
502 Andrey Turetskiy <andrey.turetskiy@intel.com>
503 Ilya Verbin <ilya.verbin@intel.com>
504 Kirill Yukhin <kirill.yukhin@intel.com>
505 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
508 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
509 (ufix_notruncv8dfv8si2_mask_round): ... this.
511 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
512 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
513 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
514 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
515 (define_expand "sse2_cvtpd2dq"): Delete.
516 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
517 make 2nd operand const0 vector.
518 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
520 (define_mode_attr pd2udqsuff): New.
522 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
523 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
524 (define_insn "*avx_cvttpd2dq256_2"): Delete.
525 (define_expand "sse2_cvttpd2dq"): Ditto.
526 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
527 make 2nd operand const0 vector.
529 2014-09-25 Jakub Jelinek <jakub@redhat.com>
531 PR tree-optimization/63341
532 * tree-vectorizer.h (vect_create_data_ref_ptr,
533 vect_create_addr_base_for_vector_ref): Add another tree argument
534 defaulting to NULL_TREE.
535 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
536 argument, pass it down to vect_create_addr_base_for_vector_ref.
537 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
538 add that to base_offset too if non-NULL.
539 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
540 for dr_explicit_realign_optimized set it to vector byte size
541 - 1 instead of setting offset, pass byte_offset down to
542 vect_create_data_ref_ptr.
544 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
546 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
547 forgotten debug output; canonicalize querries more wtih LTO.
549 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
551 * cgraph.h (class ipa_polymorphic_call_context): Move here from
552 ipa-utils.h; add stream_int and stream_out methods.
553 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
554 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
555 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
557 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
558 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
559 ipa_polymorphic_call_context::clear_speculation,
560 ipa_polymorphic_call_context::clear_outer_type): Move here from
562 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
563 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
564 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
565 ipa_polymorphic_call_context::clear_speculation,
566 ipa_polymorphic_call_context::clear_outer_type): Likewise.
567 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
569 (ipa_polymorphic_call_context::stream_out): New method.
570 (ipa_polymorphic_call_context::stream_in): New method.
571 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
572 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
574 (ipa_analyze_call_uses): Simplify.
575 (update_indirect_edges_after_inlining): Do not care about outer_type.
576 (ipa_write_indirect_edge_info): Update.
577 (ipa_write_indirect_edge_info): Likewise.
578 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
579 (dump_edge_flags): Break out from ...
580 (cgraph_node::dump): ... here; dump indirect edges.
582 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
584 * ipa-utils.h (polymorphic_call_context): Add
585 metdhos dump, debug and clear_outer_type.
586 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
587 (ipa_polymorphic_call_context::clear_outer_type): New method.
588 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
589 * ipa-devirt.c (types_odr_comparable): New function.
590 (types_must_be_same_for_odr): New function.
591 (odr_subtypes_equivalent_p): Simplify.
592 (possible_placement_new): Break out from ...
593 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
594 be more cuatious about returning false in cases the context may be
595 valid in derived type or via placement new.
596 (contains_type_p): Clear maybe_derived_type
597 (ipa_polymorphic_call_context::dump): New method.
598 (ipa_polymorphic_call_context::debug): New method.
599 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
600 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
601 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
602 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
603 to suceed on all valid cases; remove confused sanity check.
604 (dump_possible_polymorphic_call_targets): Simplify.
606 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
608 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
609 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
610 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
611 varpool.c: Rename all instances of DECL_ABSTRACT to
614 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
616 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
617 special handling for stores whose SET_SRC is an UNSPEC (such as
620 2014-09-24 Jiong Wang <jiong.wang@arm.com>
622 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
623 !REG_P (src) to release more instruction sink opportunities.
625 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
627 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
628 move costs for 128-bit types.
630 2014-09-24 Martin Jambor <mjambor@suse.cz>
632 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
633 when duplicating a PASS_THROUGH jump function when creating a
636 2014-09-24 Marek Polacek <polacek@redhat.com>
640 * asan.c (maybe_instrument_call): Add default case.
641 * ipa-pure-const.c (special_builtin_state): Likewise.
642 * predict.c (expr_expected_value_1): Likewise.
643 * lto-streamer-out.c (write_symbol): Initialize variable.
645 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
647 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
649 (vmuld_laneq_f64): Likewise.
650 (vmuls_lane_f32): Likewise.
651 (vmuls_laneq_f32): Likewise.
653 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
656 * varpool.c (varpool_node::add): Pass decl attributes
659 2014-09-24 Jakub Jelinek <jakub@redhat.com>
662 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
664 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
666 PR tree-optimization/63266
667 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
668 marker for unknown byte value.
669 (MARKER_MASK): New macro.
670 (MARKER_BYTE_UNKNOWN): New macro.
671 (HEAD_MARKER): New macro.
672 (do_shift_rotate): Mark bytes with unknown values due to sign
673 extension when doing an arithmetic right shift. Replace hardcoded
674 mask for marker by new MARKER_MASK macro.
675 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
678 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
679 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
680 Anna Tikhonova <anna.tikhonova@intel.com>
681 Ilya Tocar <ilya.tocar@intel.com>
682 Andrey Turetskiy <andrey.turetskiy@intel.com>
683 Ilya Verbin <ilya.verbin@intel.com>
684 Kirill Yukhin <kirill.yukhin@intel.com>
685 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
689 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
691 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
692 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
694 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
695 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
696 Anna Tikhonova <anna.tikhonova@intel.com>
697 Ilya Tocar <ilya.tocar@intel.com>
698 Andrey Turetskiy <andrey.turetskiy@intel.com>
699 Ilya Verbin <ilya.verbin@intel.com>
700 Kirill Yukhin <kirill.yukhin@intel.com>
701 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
704 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
705 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
706 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
707 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
708 (define_expand "avx512vl_pshuflw_mask"): New.
709 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
710 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
711 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
712 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
713 (define_expand "avx512vl_pshufhw_mask"): New.
714 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
716 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
717 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
718 Anna Tikhonova <anna.tikhonova@intel.com>
719 Ilya Tocar <ilya.tocar@intel.com>
720 Andrey Turetskiy <andrey.turetskiy@intel.com>
721 Ilya Verbin <ilya.verbin@intel.com>
722 Kirill Yukhin <kirill.yukhin@intel.com>
723 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
726 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
727 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
728 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
729 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
730 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
732 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
734 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
735 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
737 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
738 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
739 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
740 (define_expand "avx512vl_pshufd_mask"): New.
741 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
743 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
744 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
745 Anna Tikhonova <anna.tikhonova@intel.com>
746 Ilya Tocar <ilya.tocar@intel.com>
747 Andrey Turetskiy <andrey.turetskiy@intel.com>
748 Ilya Verbin <ilya.verbin@intel.com>
749 Kirill Yukhin <kirill.yukhin@intel.com>
750 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
753 (CODE_FOR_avx2_extracti128): Rename to ...
754 (CODE_FOR_avx_vextractf128v4di): this.
755 (CODE_FOR_avx2_inserti128): Rename to ...
756 (CODE_FOR_avx_vinsertf128v4di): this.
757 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
758 CODE_FOR_avx_vextractf128v4di.
759 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
760 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
761 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
762 CODE_FOR_avx512vl_vinsertv8si.
765 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
766 AVX512_VEC mode iterator.
768 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
771 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
772 AVX512_VEC_2 mode iterator.
773 (define_insn "vec_set_lo_<mode><mask_name>"): New.
774 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
775 (define_expand "avx512vl_vinsert<mode>"): Ditto.
776 (define_insn "avx2_vec_set_lo_v4di"): Delete.
777 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
778 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
779 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
780 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
781 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
782 (define_expand "avx2_extracti128"): Delete.
783 (define_expand "avx2_inserti128"): Ditto.
785 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
786 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
787 Anna Tikhonova <anna.tikhonova@intel.com>
788 Ilya Tocar <ilya.tocar@intel.com>
789 Andrey Turetskiy <andrey.turetskiy@intel.com>
790 Ilya Verbin <ilya.verbin@intel.com>
791 Kirill Yukhin <kirill.yukhin@intel.com>
792 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
795 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
796 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
797 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
798 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
799 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
800 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
801 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
802 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
803 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
804 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
805 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
806 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
807 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
809 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
811 PR rtl-optimization/63210
812 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
813 HARD_REGNO is not available for CONFLICT_A.
815 2014-09-23 Andi Kleen <ak@linux.intel.com>
817 * cgraph.h (symtab_node): Add no_reorder attribute.
818 (symbol_table::output_asm_statements): Remove.
819 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
820 (cgraph_node::create_version_clone): Dito.
821 (symbol_table::output_asm_statements): Remove.
822 * trans-mem.c (ipa_tm_create_version_alias): Dito.
823 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
824 (output_in_order): Add no_reorder flag. Only handle no_reorder
826 (symbol_table::compile): Add separate pass for no_reorder nodes.
827 (process_common_attributes): Set no_reorder flag in symtab node.
829 (process_function_and_variable_attributes): Pass symtab nodes to
830 process_common_attributes.
831 * doc/extend.texi (no_reorder): Document no_reorder attribute.
832 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
833 (lto_output_varpool_node): Dito.
834 (input_overwrite_node): Dito.
835 (input_varpool_node): Dito.
836 * varpool.c (varpool_node::add): Set no_reorder attribute.
837 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
838 (symbol_table::output_variables): Dito.
839 * symtab.c (symtab_node::dump_base): Print no_reorder.
841 2014-09-23 Jiong Wang <jiong.wang@arm.com>
843 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
846 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
848 * configure: Regenerate.
850 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
852 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
853 when result_mode == shift_mode.
855 2014-09-23 Kostya Serebryany <kcc@google.com>
857 Update to match the changed asan API.
858 * asan.c (asan_global_struct): Update the __asan_global definition
859 to match the new API.
860 (asan_add_global): Ditto.
861 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
864 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
866 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
867 refine the constraints used on 32/64-bit floating point moves.
872 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
873 (BOOL_REGS_OP1): Likewise.
874 (BOOL_REGS_OP2): Likewise.
875 (BOOL_REGS_UNARY): Likewise.
876 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
877 32/64-bit floating point moves. Do not use wa, instead use ww/ws
878 for moves involving VSX registers. Do not use constraints that
879 target VSX registers for decimal types.
880 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
881 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
883 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
885 * tree.h (int_bit_position): Turn into inline function;
886 implement using wide int.
887 * tree.c (int_bit_position): Remove.
889 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
892 * target-globals.c (target_globals::~target_globals): Fix location
893 of ira_int destruction.
895 2014-09-23 Renlin Li <renlin.li@arm.com>
897 * config/aarch64/aarch64.md (return): New.
898 (simple_return): Likewise.
899 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
900 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
902 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
904 * common/config/aarch64/aarch64-common.c:
905 (default_options aarch_option_optimization_table):
906 Default to -fsched-pressure.
908 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
910 * cfgcleanup.c (try_optimize_cfg): Do not remove label
911 with LABEL_PRESERVE_P flag set.
913 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
914 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
915 Anna Tikhonova <anna.tikhonova@intel.com>
916 Ilya Tocar <ilya.tocar@intel.com>
917 Andrey Turetskiy <andrey.turetskiy@intel.com>
918 Ilya Verbin <ilya.verbin@intel.com>
919 Kirill Yukhin <kirill.yukhin@intel.com>
920 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
923 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
924 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
925 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
926 (define_insn "sse2_shufpd_v2df_mask"): New.
928 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
929 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
930 Anna Tikhonova <anna.tikhonova@intel.com>
931 Ilya Tocar <ilya.tocar@intel.com>
932 Andrey Turetskiy <andrey.turetskiy@intel.com>
933 Ilya Verbin <ilya.verbin@intel.com>
934 Kirill Yukhin <kirill.yukhin@intel.com>
935 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
938 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
939 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
940 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
941 (define_insn "sse_shufps_v4sf_mask"): New.
943 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
944 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
945 Anna Tikhonova <anna.tikhonova@intel.com>
946 Ilya Tocar <ilya.tocar@intel.com>
947 Andrey Turetskiy <andrey.turetskiy@intel.com>
948 Ilya Verbin <ilya.verbin@intel.com>
949 Kirill Yukhin <kirill.yukhin@intel.com>
950 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
953 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
954 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
955 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
956 (define_insn "unpcklps128_mask"): New.
958 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
959 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
960 Anna Tikhonova <anna.tikhonova@intel.com>
961 Ilya Tocar <ilya.tocar@intel.com>
962 Andrey Turetskiy <andrey.turetskiy@intel.com>
963 Ilya Verbin <ilya.verbin@intel.com>
964 Kirill Yukhin <kirill.yukhin@intel.com>
965 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
968 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
969 (define_insn "avx512vl_unpckhpd128_mask"): New.
970 (define_expand "avx_movddup256<mask_name>"): Add masking.
971 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
972 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
973 (define_insn "avx512vl_unpcklpd128_mask"): New.
975 2014-09-22 Joseph Myers <joseph@codesourcery.com>
977 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
978 * doc/tm.texi: Regenerate.
979 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
980 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
981 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
983 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
984 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
985 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
986 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
987 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
989 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
990 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
991 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
992 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
993 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
994 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
995 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
996 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
997 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
998 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
999 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
1002 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
1004 * tree-ssa-ccp.c (prop_value_d): Rename to ...
1005 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
1006 * ipa-prop.c (struct type_change_info): Rename to ...
1007 (prop_type_change_info): ... this; update uses.
1008 * ggc-page.c (globals): Rename to ...
1009 (static struct ggc_globals): ... this; update uses.
1010 * tree-ssa-loop-im.c (mem_ref): Rename to ...
1011 (im_mem_ref): ... this; update uses.
1012 * ggc-common.c (loc_descriptor): Rename to ...
1013 (ggc_loc_descriptor): ... this; update uses.
1014 * lra-eliminations.c (elim_table): Rename to ...
1015 (lra_elim_table): ... this; update uses.
1016 * bitmap.c (output_info): Rename to ...
1017 (bitmap_output_info): ... this; update uses.
1018 * gcse.c (expr): Rename to ...
1019 (gcse_expr) ... this; update uses.
1020 (occr): Rename to ...
1021 (gcse_occr): .. this; update uses.
1022 * tree-ssa-copy.c (prop_value_d): Rename to ...
1023 (prop_value_t): ... this.
1024 * predict.c (block_info_def): Rename to ...
1025 (block_info): ... this; update uses.
1026 (edge_info_def): Rename to ...
1027 (edge_info): ... this; update uses.
1028 * profile.c (bb_info): Rename to ...
1029 (bb_profile_info): ... this; update uses.
1030 * alloc-pool.c (output_info): Rename to ...
1031 (pool_output_info): ... this; update uses.
1032 * ipa-cp.c (topo_info): Rename to ..
1033 (ipa_topo_info): ... this; update uses.
1034 * tree-nrv.c (nrv_data): Rename to ...
1035 (nrv_data_t): ... this; update uses.
1036 * ipa-split.c (bb_info): Rename to ...
1037 (split_bb_info): ... this one.
1038 * profile.h (edge_info): Rename to ...
1039 (edge_profile_info): ... this one; update uses.
1040 * dse.c (bb_info): Rename to ...
1041 (dse_bb_info): ... this one; update uses.
1042 * cprop.c (occr): Rename to ...
1043 (cprop_occr): ... this one; update uses.
1044 (expr): Rename to ...
1045 (cprop_expr): ... this one; update uses.
1047 2014-09-22 Jason Merrill <jason@redhat.com>
1049 * Makefile.in (check-parallel-%): Add @.
1051 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
1053 * config/aarch64/geniterators.sh: New.
1054 * config/aarch64/iterators.md (VDQF_DF): New.
1055 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
1056 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
1058 2014-09-22 Peter A. Bigot <pab@pabigot.com>
1060 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
1061 -lnosys when -msim absent.
1063 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
1065 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
1067 2014-09-22 Richard Biener <rguenther@suse.de>
1069 * gimplify.c (gimplify_init_constructor): Do not leave
1070 non-GIMPLE vector constructors around.
1071 * tree-cfg.c (verify_gimple_assign_single): Verify that
1072 CONSTRUCTORs have gimple elements.
1074 2014-09-22 Jakub Jelinek <jakub@redhat.com>
1077 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
1078 insert a debug source bind stmt setting DEBUG_EXPR_DECL
1079 instead of a normal gimple assignment stmt.
1081 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
1083 * config/bfin/bfin.md: Fix use of constraints in define_split.
1085 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
1087 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
1088 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
1090 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
1092 * hard-reg-set.h: Include hash-table.h.
1093 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
1095 * target-globals.c (target_globals::~target_globals): Call
1096 hard_regs->finalize.
1097 * rtl.h (subreg_shape): New structure.
1098 (shape_of_subreg): New function.
1099 (simplifiable_subregs): Declare.
1100 * reginfo.c (simplifiable_subreg): New structure.
1101 (simplifiable_subregs_hasher): Likewise.
1102 (simplifiable_subregs): New function.
1103 (invalid_mode_changes): Delete.
1104 (alid_mode_changes, valid_mode_changes_obstack): New variables.
1105 (record_subregs_of_mode): Remove subregs_of_mode parameter.
1106 Record valid mode changes in valid_mode_changes.
1107 (find_subregs_of_mode): Remove subregs_of_mode parameter.
1108 Update calls to record_subregs_of_mode.
1109 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
1110 handling. Initialize new variables. Update call to
1111 find_subregs_of_mode.
1112 (invalid_mode_change_p): Check new variables instead of
1113 invalid_mode_changes.
1114 (finish_subregs_of_mode): Finalize new variables instead of
1115 invalid_mode_changes.
1116 (target_hard_regs::finalize): New function.
1117 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
1118 even when CLASS_CANNOT_CHANGE_MODE is undefined.
1120 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
1122 * combine.c (subst): Use simplify_subreg_regno rather than
1123 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
1125 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
1127 * rtl.h (subreg_info): Expand commentary
1128 * rtlanal.c (subreg_get_info): Likewise.
1130 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
1132 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
1133 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
1134 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
1136 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
1138 * config/arm/arm.c: #include "tm-constrs.h"
1139 (thumb1_size_rtx_costs): Adjust rtx costs.
1141 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
1143 * configure.ac (target_header_dir): Move block defining
1144 this to before the block setting inhibit_libc.
1145 (inhibit_libc): When considering $with_headers, just
1146 check it it's explicitly "no". If not, also check if
1147 $target_header_dir/stdio.h is present. If not, set
1149 * configure: Regenerate.
1151 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
1153 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
1155 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1157 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
1158 insn for divides by integer powers of two.
1159 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
1160 (mod<mode>3): Fix formatting.
1161 (three anonymous define_insn and two define_split): Delete.
1163 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1165 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
1166 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
1167 (floatdisf2_internal2): Ditto.
1168 (ashrdi3_no_power): Ditto. Fix formatting.
1170 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1172 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
1173 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
1176 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1178 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
1179 constant, use addsi3 directly.
1180 (three anonymous define_insn, two define_split): Delete.
1181 (sub<mode>3): Move. Do not allow constant second operand.
1182 Generate different insn for constant first operand.
1183 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
1184 (subf<mode>3_imm): New.
1185 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
1186 (*plus_ltu<mode>): Only handle registers.
1187 (*plus_ltu<mode>_1): New. Handle integer third operand.
1188 (*plus_gtu<mode>): Only handle registers.
1189 (*plus_gtu<mode>_1): New. Handle integer third operand.
1191 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1193 * config/rs6000/rs6000.md (iorxor): New code_iterator.
1194 (iorxor): New code_attr.
1195 (IORXOR): New code_attr.
1196 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
1197 (ior<mode>3, xor<mode>3): Delete.
1198 (<iorxor><mode>3): New.
1199 (splitter for "big" integer ior, xor): New.
1200 (*bool<mode>3): Move. Also handle AND.
1201 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
1202 (splitter for "big" integer ior, xor): Delete.
1204 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1206 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
1207 (two anonymous define_insn and two define_split): Delete.
1208 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
1210 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1212 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
1213 (two anonymous define_insn and two define_split): Delete.
1214 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
1216 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1218 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
1220 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1222 * config/rs6000/predicates.md (ca_operand): Allow subregs.
1223 (input_operand): Do not allow ca_operand.
1224 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
1225 carry bit, allow SImode and Pmode.
1226 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
1228 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
1230 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
1231 clobbered registers using clobber_reg. Remove UNSPEC decoration.
1232 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
1233 (*call_rex64_ms_sysv): Remove.
1234 (*call_value_rex64_ms_sysv): Ditto.
1235 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
1237 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
1239 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
1242 2014-09-20 Andreas Schwab <schwab@suse.de>
1244 * config/ia64/ia64.md: Remove constraints from define_split
1247 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
1249 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
1250 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
1251 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
1252 (get_dynamic_type): Remove.
1253 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
1254 (clear_speculation): Bring to ipa-deivrt.h
1255 (get_class_context): Rename to ...
1256 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
1257 (contains_type_p): Update.
1258 (get_dynamic_type): Rename to ...
1259 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
1260 (possible_polymorphic_call_targets): UPdate.
1261 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
1262 * ipa-prop.c (ipa_analyze_call_uses): Update.
1264 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
1266 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
1267 privatize dynamic TLS variables.
1269 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
1271 * diagnostic.c (warning_n): New function.
1272 * diagnostic-core.h (warning_n): Declare.
1273 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
1274 output dynamic counts when available.
1276 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
1278 PR tree-optimization/63255
1279 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
1280 issue in setting body_removed flag.
1282 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
1285 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
1286 that visibility change is possible
1287 (handle_weakref_attribute): Likewise.
1288 * cgraph.h (symtab_node): Add method get_create and
1289 field refuse_visibility_changes.
1290 (symtab_node::get_create): New method.
1291 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
1292 * varasm.c (mark_weak): Verify that visibility change is
1295 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1297 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
1298 for base_reg_operand to be common between LO_SUM and PLUS.
1299 (fusion_gpr_mem_combo): New predicate to match a fused address
1300 that combines the addis and memory offset address.
1302 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
1304 (emit_fusion_gpr_load): Likewise.
1306 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
1307 signature to pass each argument separately, rather than
1308 using an operands array. Rewrite the insns found by peephole2 to
1309 be a single insn, rather than hoping the insns will still be
1310 together when the peephole pass is done. Drop being called via a
1312 (emit_fusion_gpr_load): Change calling signature to be called from
1313 the fusion_gpr_load_<mode> insns with a combined memory address
1314 instead of the peephole pass passing the addis and offset
1317 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
1319 (power8 fusion peephole): Drop support for doing power8 via a
1320 normal peephole that was created by the peephole2 pass.
1321 (power8 fusion peephole2): Create a new insn with the fused
1322 address, so that the fused operation is kept together after
1323 register allocation is done.
1324 (fusion_gpr_load_<mode>): Likewise.
1326 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
1329 * tree.c (need_assembler_name_p): Do not mangle variadic types.
1331 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
1333 * recog.c (scratch_operand): Do not simply allow all hard registers:
1334 only allow those that are allocatable.
1336 2014-09-19 Felix Yang <felix.yang@huawei.com>
1338 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
1339 comments and fix spacing to conform to coding style.
1341 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
1343 * genrecog.c (validate_pattern): Allow empty constraints in
1346 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
1348 * dwarf2out.c (decl_ultimate_origin): Update comment.
1349 * tree.c (block_ultimate_origin): Same.
1351 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1353 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
1354 Update GCC version name to GCC 5.
1355 (rs6000_function_arg_boundary): Likewise.
1356 (rs6000_function_arg): Likewise.
1358 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
1360 * config/sh/sh.md: Fix use of constraints in define_split.
1362 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
1365 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
1367 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
1369 * doc/md.texi (Modifiers): Consistently use "read/write"
1370 nomenclature rather than "input/output".
1371 * genrecog.c (constraints_supported_in_insn_p): New.
1372 (validate_pattern): If needed, also check constraints on
1373 MATCH_SCRATCH operands.
1374 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
1375 operands with no '=' or '+' modifier.
1377 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
1379 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
1380 scratch register as written.
1382 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1384 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
1387 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1389 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
1392 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1395 * config/s390/s390.c (s390_emit_epilogue): When doing the return
1396 address load optimization force s390_optimize_prologue to leave it
1397 that way. Only do the optimization if we already decided to push
1398 r14 into a stack slot.
1400 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
1402 * asan.c (build_check_stmt): Alignment arg was added.
1403 (asan_expand_check_ifn): Optimization for alignment >= 8.
1405 2014-09-19 Olivier Hainque <hainque@adacore.com>
1407 * config/i386/vxworksae.h: Remove obsolete definitions.
1408 (STACK_CHECK_PROTECT): Define.
1409 * config/i386/vx-common.h: Remove. Merge contents within
1410 config/i386/vxworks.h.
1411 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
1414 2014-09-19 Olivier Hainque <hainque@adacore.com>
1416 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
1417 * config/rs6000/t-vxworksmils: New file.
1418 * config/rs6000/vxworksmils.h: New file.
1420 2014-09-19 Olivier Hainque <hainque@adacore.com>
1422 * varasm.c (default_section_type_flags): Flag .persistent.bss
1423 sections as SECTION_BSS.
1425 2014-09-19 Nick Clifton <nickc@redhat.com>
1427 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
1428 pop'ed registers so that DCE does not eliminate them.
1430 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
1433 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
1435 2014-09-18 Joseph Myers <joseph@codesourcery.com>
1437 * system.h (LIBGCC2_TF_CEXT): Poison.
1438 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
1439 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
1440 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
1441 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
1442 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
1443 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
1444 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
1445 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
1446 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
1448 2014-09-19 Kito Cheng <kito@0xlab.org>
1450 * except.h: Fix header guard.
1451 * addresses.h: Add missing header guard.
1452 * cfghooks.h: Likewise.
1453 * collect-utils.h: Likewise.
1454 * collect2-aix.h: Likewise.
1455 * conditions.h: Likewise.
1456 * cselib.h: Likewise.
1457 * dwarf2asm.h: Likewise.
1458 * graphds.h: Likewise.
1459 * graphite-scop-detection.h: Likewise.
1460 * gsyms.h: Likewise.
1461 * hw-doloop.h: Likewise.
1462 * incpath.h: Likewise.
1463 * ipa-inline.h: Likewise.
1464 * ipa-ref.h: Likewise.
1465 * ira-int.h: Likewise.
1467 * lra-int.h: Likewise.
1469 * lto-section-names.h: Likewise.
1470 * read-md.h: Likewise.
1471 * reload.h: Likewise.
1472 * rtl-error.h: Likewise.
1473 * sdbout.h: Likewise.
1474 * targhooks.h: Likewise.
1475 * tree-affine.h: Likewise.
1476 * xcoff.h: Likewise.
1477 * xcoffout.h: Likewise.
1479 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
1482 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
1485 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
1488 * lra.c (lra): Call recog_init.
1490 2014-09-18 Jakub Jelinek <jakub@redhat.com>
1493 * asan.c (transform_statements): Don't instrument clobber statements.
1495 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1497 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
1498 to neon_load1_1reg<q>.
1500 2014-09-17 Jakub Jelinek <jakub@redhat.com>
1503 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
1504 if there are only debug stmts after the noreturn call, instead
1505 remove the debug stmts.
1507 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
1509 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
1510 (odr_types_equivalent_p): Use pair hash.
1511 (odr_subtypes_equivalent_p): Likewise, do structural compare
1512 on ODR types that may be mismatched.
1513 (warn_odr): Support warning when only one field is given.
1514 (odr_types_equivalent_p): Strenghten comparsions made;
1516 (add_type_duplicate): Update VISITED hash set.
1518 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
1520 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
1521 Enable selection of 'posix' or no thread model.
1523 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
1525 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1526 when architecture is older than ARMv7.
1528 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
1531 * config/pa/pa.c (pa_function_value): Directly handle aggregates
1532 that fit exactly in a word or double word.
1534 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
1536 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
1539 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
1540 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1541 Anna Tikhonova <anna.tikhonova@intel.com>
1542 Ilya Tocar <ilya.tocar@intel.com>
1543 Andrey Turetskiy <andrey.turetskiy@intel.com>
1544 Ilya Verbin <ilya.verbin@intel.com>
1545 Kirill Yukhin <kirill.yukhin@intel.com>
1546 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1548 * config/i386/i386.c
1549 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
1550 * config/i386/sse.md
1551 (define_mode_iterator VI48F_256): New.
1552 (define_mode_attr extract_type): Ditto.
1553 (define_mode_attr extract_suf): Ditto.
1554 (define_mode_iterator AVX512_VEC): Ditto.
1556 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
1558 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
1560 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
1562 (define_mode_attr extract_type_2): Ditto.
1563 (define_mode_attr extract_suf_2): Ditto.
1564 (define_mode_iterator AVX512_VEC_2): Ditto.
1566 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
1567 AVX512_VEC_2 mode iterator.
1568 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
1569 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
1570 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
1571 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
1572 (define_split for V16FI mode): Ditto.
1573 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
1574 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
1575 (define_split for VI8F_256 mode): Ditto.
1576 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
1577 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
1578 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
1579 (define_split for VI4F_256 mode): Ditto.
1580 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
1581 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
1582 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
1583 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
1584 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
1585 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
1586 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
1587 Update `type' attribute, remove explicit `memory' attribute calculation.
1589 2014-09-16 Kito Cheng <kito@0xlab.org>
1591 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
1592 ira_spilled_reg_stack_slots_num if using lra.
1593 (do_reload): Remove release ira_spilled_reg_stack_slots part.
1594 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
1595 make sure not using lra.
1596 (ira_reuse_stack_slot): Likewise.
1597 (ira_mark_new_stack_slot): Likewise.
1599 2014-09-15 Andi Kleen <ak@linux.intel.com>
1601 * function.c (allocate_struct_function): Force
1602 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
1603 profiling is disabled.
1605 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
1607 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
1608 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
1609 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
1610 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
1611 macro with statically checked member functions.
1612 * rtl.h (rtx_insn::deleted): New method.
1613 (rtx_insn::set_deleted): Likewise.
1614 (rtx_insn::set_undeleted): Likewise.
1615 (INSN_DELETED_P): Remove.
1617 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
1619 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
1620 result of emit_jump_insn_before to a new variable.
1621 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
1622 (mark_jump_label_1): Likewise.
1623 (mark_jump_label_asm): Likewise.
1624 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
1625 * rtl.h (mark_jump_label): Adjust.
1627 2014-09-15 Jakub Jelinek <jakub@redhat.com>
1629 * Makefile.in (dg_target_exps): Remove.
1630 (check_gcc_parallelize): Change to just an upper bound number.
1631 (check-%-subtargets): Always print the non-parallelized goals.
1632 (check_p_vars, check_p_comma, check_p_subwork): Remove.
1633 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
1634 check_p_numbers3, check_p_numbers4, check_p_numbers5,
1635 check_p_numbers6): New variables.
1636 (check_p_numbers): Set to sequence from 1 to 9999.
1637 (check_p_subdirs): Set to sequence from 1 to minimum of
1638 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
1640 (check-%, check-parallel-%): Rewritten so that for parallelized
1641 testing each job runs all the *.exp files, with
1642 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
1644 2014-09-15 David Malcolm <dmalcolm@redhat.com>
1646 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
1648 (arc_sets_cc_p): Likewise.
1649 * config/arc/arc.c (arc_print_operand): Use methods of
1650 "final_sequence" for clarity, and to enable strengthening of
1651 locals "jump" and "delay" from rtx to rtx_insn *.
1652 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
1653 rtx_insn *; use method of rtx_sequence for typesafety.
1654 (arc_get_insn_variants): Use insn method of rtx_sequence for
1656 (arc_pad_return): Likewise.
1657 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
1658 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
1659 dyn_cast to rtx_sequence *, using insn method for typesafety.
1660 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
1661 rtx_sequence * and use insn method when invoking get_attr_length.
1662 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
1663 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
1664 rtx_sequence *, introducing a local "seq", using its insn method
1665 from typesafety and clarity.
1666 (add_sched_insns_for_speculation): Strengthen local "next" from
1668 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
1669 (predicate_insn): Likewise.
1670 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
1672 * config/cris/cris.c (cris_notice_update_cc): Likewise.
1673 * config/epiphany/epiphany-protos.h
1674 (extern void epiphany_insert_mode_switch_use): Likewise for param
1676 (get_attr_sched_use_fpu): Likewise for param.
1677 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
1678 Likewise for param "insn".
1679 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
1680 param "insn" of "target_insert_mode_switch_use" callback.
1681 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
1682 (frv_issues_to_branch_unit_p): Likewise.
1683 (frv_pack_insn_p): Likewise.
1684 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
1685 const rtx * (i.e. mutable rtx_def * const *) to
1687 * config/i386/i386-protos.h (standard_sse_constant_opcode):
1688 Strengthen first param from rtx to rtx_insn *.
1689 (output_fix_trunc): Likewise.
1690 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
1691 (output_fix_trunc): Likewise.
1692 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
1694 (min_insn_size): Likewise for param "insn".
1695 (get_mem_group): Likewise.
1697 (get_insn_path): Likewise.
1698 (get_insn_group): Likewise.
1699 (count_num_restricted): Likewise.
1700 (fits_dispatch_window): Likewise.
1701 (add_insn_window): Likewise.
1702 (add_to_dispatch_window): Likewise.
1703 (debug_insn_dispatch_info_file): Likewise.
1704 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
1706 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
1707 "cmp" and local "prev".
1708 (m32c_output_compare): Likewise for param "insn".
1709 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
1710 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
1711 (define_predicate "large_insn_p"): Likewise.
1712 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
1713 param from rtx to rtx_insn *.
1714 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
1715 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
1716 (m68k_sched_attr_size): Likewise.
1717 (sched_get_opxy_mem_type): Likewise for param "insn".
1718 (m68k_sched_attr_op_mem): Likewise.
1719 (sched_mem_operand_p): Likewise.
1720 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
1721 * config/mep/mep.c (mep_multi_slot): Likewise.
1722 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
1724 (mips_sync_loop_insns): Likewise.
1725 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
1726 method of "final_sequence" for typesafety.
1727 (mips_process_sync_loop): Strengthen param "insn" from rtx to
1729 (mips_output_sync_loop): Likewise.
1730 (mips_sync_loop_insns): Likewise.
1731 (mips_74k_agen_init): Likewise.
1732 (mips_sched_init): Use NULL rather than NULL_RTX when working with
1734 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
1735 Strengthen param "insn" from rtx to rtx_insn *.
1736 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
1738 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
1740 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
1741 "insn". Use method of rtx_sequence for typesafety.
1742 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
1744 (branch_needs_nop_p): Likewise.
1745 (use_skip_p): Likewise.
1746 (pa_insn_refs_are_delayed): Likewise.
1747 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
1748 for locals "insn", "ninsn".
1749 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
1751 (is_cracked_insn): Likewise.
1752 (is_branch_slot_insn): Likewise.
1753 (is_nonpipeline_insn): Likewise.
1754 (insn_terminates_group_p): Likewise.
1755 (insn_must_be_first_in_group): Likewise.
1756 (insn_must_be_last_in_group): Likewise.
1757 (force_new_group): Likewise for param "next_insn".
1758 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
1760 (s390_sched_score): Likewise.
1761 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
1762 (rtx sfunc_uses_reg): Likewise for sole param.
1763 * config/sh/sh.c (sh_print_operand): Use insn method of
1764 final_sequence for typesafety.
1765 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
1766 Use insn method of final_sequence for typesafety.
1767 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
1768 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
1770 (eligible_for_return_delay): Likewise.
1771 (eligible_for_sibcall_delay): Likewise.
1772 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
1773 (eligible_for_return_delay): Likewise.
1774 (eligible_for_sibcall_delay): Likewise.
1775 * config/stormy16/stormy16-protos.h
1776 (xstormy16_output_cbranch_hi): Likewise for final param.
1777 (xstormy16_output_cbranch_si): Likewise.
1778 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
1779 (xstormy16_output_cbranch_si): Likewise.
1780 * config/v850/v850-protos.h (notice_update_cc): Likewise.
1781 * config/v850/v850.c (notice_update_cc): Likewise.
1783 * final.c (get_attr_length_1): Strengthen param "insn" and param
1784 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
1785 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
1786 (get_attr_min_length): Likewise.
1787 (shorten_branches): Likewise for signature of locals "length_fun"
1788 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
1789 from a checked cast and use its methods for clarity and to enable
1790 strengthening local "inner_insn" from rtx to rtx_insn *.
1791 * genattr.c (gen_attr): When writing out the prototypes of the
1792 various generated "get_attr_" functions, strengthen the params of
1793 the non-const functions from rtx to rtx_insn *.
1794 Similarly, strengthen the params of insn_default_length,
1795 insn_min_length, insn_variable_length_p, insn_current_length.
1796 (main): Similarly, strengthen the param of num_delay_slots,
1797 internal_dfa_insn_code, insn_default_latency, bypass_p,
1798 insn_latency, min_issue_delay, print_reservation,
1799 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
1800 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
1801 to hook_int_rtx_insn_unreachable.
1802 * genattrtab.c (write_attr_get): When writing out the generated
1803 "get_attr_" functions, strengthen the param "insn" from rtx to
1804 rtx_insn *, eliminating a checked cast.
1805 (make_automaton_attrs): When writing out prototypes of
1806 "internal_dfa_insn_code_", "insn_default_latency_" functions
1807 and the "internal_dfa_insn_code" and "insn_default_latency"
1808 callbacks, strengthen their params from rtx to rtx_insn *
1809 * genautomata.c (output_internal_insn_code_evaluation): When
1810 writing out code, add a checked cast from rtx to rtx_insn * when
1811 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
1812 (output_dfa_insn_code_func): Strengthen param of generated
1813 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
1814 (output_trans_func): Likewise for generated function
1816 (output_internal_insn_latency_func): When writing out generated
1817 function "internal_insn_latency", rename params from "insn" and
1818 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
1819 locals "insn" and "insn2" as rtx_insn * with checked casts once
1820 we've proven that we're not dealing with const0_rtx.
1821 (output_insn_latency_func): Strengthen param of generated
1822 function "insn_latency" from rtx to rtx_insn *.
1823 (output_print_reservation_func): Likewise for generated function
1824 "print_reservation".
1825 (output_insn_has_dfa_reservation_p): Likewise for generated
1826 function "insn_has_dfa_reservation_p".
1827 * hooks.c (hook_int_rtx_unreachable): Rename to...
1828 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
1829 from rtx to rtx_insn *.
1830 * hooks.h (hook_int_rtx_unreachable): Likewise.
1831 (extern int hook_int_rtx_insn_unreachable): Likewise.
1832 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
1833 (get_attr_min_length): Likewise.
1834 * recog.c (get_enabled_alternatives): Likewise.
1835 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
1836 * reorg.c (find_end_label): Introduce local rtx "pat" and
1837 strengthen local "insn" from rtx to rtx_insn *.
1838 (redundant_insn): Use insn method of "seq" rather than element for
1839 typesafety; strengthen local "control" from rtx to rtx_insn *.
1840 * resource.c (mark_referenced_resources): Add checked cast to
1841 rtx_insn * within INSN/JUMP_INSN case.
1842 (mark_set_resources): Likewise.
1843 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
1846 2014-09-15 David Malcolm <dmalcolm@redhat.com>
1848 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
1849 param "label" from rtx to rtx_insn *.
1850 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
1852 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
1853 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
1854 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1855 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1856 * final.c (default_label_align_after_barrier_max_skip): Strengthen
1857 param from rtx to rtx_insn *.
1858 (default_loop_align_max_skip): Likewise.
1859 (default_label_align_max_skip): Likewise.
1860 (default_jump_align_max_skip): Likewise.
1861 * target.def (label_align_after_barrier_max_skip): Likewise.
1862 (loop_align_max_skip): Likewise.
1863 (label_align_max_skip): Likewise.
1864 (jump_align_max_skip): Likewise.
1865 * targhooks.h (default_label_align_after_barrier_max_skip):
1867 (default_loop_align_max_skip): Likewise.
1868 (default_label_align_max_skip): Likewise.
1869 (default_jump_align_max_skip): Likewise.
1871 2014-09-15 David Malcolm <dmalcolm@redhat.com>
1873 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
1874 from const_rtx to const rtx_insn *. Update union members from rtx
1876 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
1877 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
1878 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
1879 strengthen both params from const_rtx to const rtx_insn *.
1880 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
1881 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
1882 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
1884 * target.def (can_follow_jump): Strengthen both params from
1885 const_rtx to const rtx_insn *, and update default implementation
1886 from hook_bool_const_rtx_const_rtx_true to
1887 hook_bool_const_rtx_insn_const_rtx_insn_true.
1889 2014-09-15 David Malcolm <dmalcolm@redhat.com>
1891 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
1892 "insn" from rtx to rtx_insn *.
1893 * sched-int.h (deps_start_bb): Likewise for 2nd param.
1895 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1896 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1897 Anna Tikhonova <anna.tikhonova@intel.com>
1898 Ilya Tocar <ilya.tocar@intel.com>
1899 Andrey Turetskiy <andrey.turetskiy@intel.com>
1900 Ilya Verbin <ilya.verbin@intel.com>
1901 Kirill Yukhin <kirill.yukhin@intel.com>
1902 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1904 * config/i386/sse.md
1905 (define_insn "vcvtph2ps<mask_name>"): Add masking.
1906 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
1907 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
1908 (define_expand "vcvtps2ph_mask"): New.
1909 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
1910 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
1911 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
1913 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
1914 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1915 Anna Tikhonova <anna.tikhonova@intel.com>
1916 Ilya Tocar <ilya.tocar@intel.com>
1917 Andrey Turetskiy <andrey.turetskiy@intel.com>
1918 Ilya Verbin <ilya.verbin@intel.com>
1919 Kirill Yukhin <kirill.yukhin@intel.com>
1920 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1922 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
1924 (define_mode_iterator VI24_AVX512BW_1): Ditto.
1925 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
1926 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
1927 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
1928 also for TARGET_AVX512VL.
1929 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
1931 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
1933 * doc/install.texi (Options specification): add
1934 --disable-libsanitizer item.
1936 2014-09-14 James Clarke <jrtc27@jrtc27.com>
1937 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1940 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
1942 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
1943 kernel version check to avoid incrementing it after every major OS X
1945 (darwin_default_min_version): Avoid static memory buffer.
1947 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
1949 * tree.c (need_assembler_name_p): Store C++ type mangling only
1952 2014-09-13 Marek Polacek <polacek@redhat.com>
1954 * tree.c (protected_set_expr_location): Don't check whether T is
1957 2014-09-12 DJ Delorie <dj@redhat.com>
1959 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
1960 (extend_and_shift1_hipsi2): Likewise.
1961 (extend_and_shift2_hipsi2): Likewise.
1963 2014-09-12 David Malcolm <dmalcolm@redhat.com>
1965 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
1966 with NULL when dealing with an insn.
1967 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
1968 from rtx to rtx_insn *.
1969 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
1970 const_rtx to const rtx_insn *.
1971 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
1973 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
1975 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
1978 2014-09-12 Joseph Myers <joseph@codesourcery.com>
1980 * target.def (libgcc_floating_mode_supported_p): New hook.
1981 * targhooks.c (default_libgcc_floating_mode_supported_p): New
1983 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
1984 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
1985 (LIBGCC2_HAS_TF_MODE): Remove.
1986 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
1987 * doc/tm.texi: Regenerate.
1988 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
1990 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
1991 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
1992 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
1993 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
1994 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
1995 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
1996 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
1997 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
1998 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
1999 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
2001 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
2002 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2003 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2004 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2005 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2006 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2007 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2008 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
2009 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
2010 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
2011 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
2012 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
2013 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
2014 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
2016 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
2018 (ia64_libgcc_floating_mode_supported_p): New function.
2019 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
2020 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
2021 (IA64_NO_LIBGCC_TFMODE): Define.
2022 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
2023 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
2025 (pdp11_scalar_mode_supported_p): New function.
2026 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
2027 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
2029 2014-09-12 Richard Biener <rguenther@suse.de>
2032 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
2034 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
2036 * tree.c (integer_each_onep): New function.
2037 * tree.h (integer_each_onep): Declare it.
2038 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
2039 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
2040 (X & 1) == 0 for vector and complex.
2042 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
2044 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
2046 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
2047 cost to spilling from integer to FP registers.
2049 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
2051 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
2053 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
2054 are now handled correctly.
2056 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
2058 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
2059 handling of CALLER_SAVE_REGS and POINTER_REGS.
2061 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
2063 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
2064 the number of hard registers.
2066 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
2067 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2068 Anna Tikhonova <anna.tikhonova@intel.com>
2069 Ilya Tocar <ilya.tocar@intel.com>
2070 Andrey Turetskiy <andrey.turetskiy@intel.com>
2071 Ilya Verbin <ilya.verbin@intel.com>
2072 Kirill Yukhin <kirill.yukhin@intel.com>
2073 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2075 * config/i386/sse.md
2076 (define_mode_iterator VI48_AVX512VL): New.
2077 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
2078 "avx512f_vternlog<mode>_maskz" and update mode iterator.
2079 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
2080 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
2081 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
2082 "avx512f_vternlog<mode>_mask" and update mode iterator.
2083 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
2084 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
2086 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
2087 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
2088 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
2089 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
2090 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
2091 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
2093 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
2094 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2095 Anna Tikhonova <anna.tikhonova@intel.com>
2096 Ilya Tocar <ilya.tocar@intel.com>
2097 Andrey Turetskiy <andrey.turetskiy@intel.com>
2098 Ilya Verbin <ilya.verbin@intel.com>
2099 Kirill Yukhin <kirill.yukhin@intel.com>
2100 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2102 * config/i386/sse.md (VI128_256): Delete.
2103 (define_mode_iterator VI124_256): New.
2104 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
2105 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
2106 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
2107 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
2108 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
2109 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
2110 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2111 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
2113 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
2114 in presence of AVX-512.
2116 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
2117 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2118 Anna Tikhonova <anna.tikhonova@intel.com>
2119 Ilya Tocar <ilya.tocar@intel.com>
2120 Andrey Turetskiy <andrey.turetskiy@intel.com>
2121 Ilya Verbin <ilya.verbin@intel.com>
2122 Kirill Yukhin <kirill.yukhin@intel.com>
2123 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2125 * config/i386/sse.md
2126 (define_expand "<avx512>_gathersi<mode>"): Rename from
2127 "avx512f_gathersi<mode>".
2128 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
2129 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
2130 (define_expand "<avx512>_gatherdi<mode>"): Rename from
2131 "avx512f_gatherdi<mode>".
2132 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
2133 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
2135 (define_expand "<avx512>_scattersi<mode>"): Rename from
2136 "avx512f_scattersi<mode>".
2137 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
2138 (define_expand "<avx512>_scatterdi<mode>"): Rename from
2139 "avx512f_scatterdi<mode>".
2140 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
2142 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
2144 * ira.h (ira_finish_once): Delete.
2145 * ira-int.h (target_ira_int::~target_ira_int): Declare.
2146 (target_ira_int::free_ira_costs): Likewise.
2147 (target_ira_int::free_register_move_costs): Likewise.
2148 (ira_finish_costs_once): Delete.
2149 * ira.c (free_register_move_costs): Replace with...
2150 (target_ira_int::free_register_move_costs): ...this new function.
2151 (target_ira_int::~target_ira_int): Define.
2152 (ira_init): Call free_register_move_costs as a member function rather
2153 than a global function.
2154 (ira_finish_once): Delete.
2155 * ira-costs.c (free_ira_costs): Replace with...
2156 (target_ira_int::free_ira_costs): ...this new function.
2157 (ira_init_costs): Call free_ira_costs as a member function rather
2158 than a global function.
2159 (ira_finish_costs_once): Delete.
2160 * target-globals.c (target_globals::~target_globals): Call the
2161 target_ira_int destructor.
2162 * toplev.c: Include lra.h.
2163 (finalize): Call lra_finish_once rather than ira_finish_once.
2165 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
2167 * common.opt (flto-odr-type-merging): New flag.
2168 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
2169 (types_same_for_odr): Likewise.
2170 (odr_subtypes_equivalent_p): Likewise.
2171 (add_type_duplicate): Do not walk type variants.
2172 (register_odr_type): New function.
2173 * ipa-utils.h (register_odr_type): Declare.
2174 (odr_type_p): New function.
2175 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
2177 * doc/invoke.texi (-flto-odr-type-merging): Document.
2178 * tree.c (need_assembler_name_p): Compute ODR names when asked
2180 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
2182 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
2185 * config/i386/i386.c (ix86_option_override_internal): Also turn
2186 off OPTION_MASK_ABI_X32 for -m16.
2188 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
2190 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
2193 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
2196 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
2197 Directly forward to __*_DENORM_MIN__.
2199 2014-09-11 David Malcolm <dmalcolm@redhat.com>
2201 * rtl.h (LABEL_REF_LABEL): New macro.
2203 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
2204 of XEXP (, 0), where we know that we have a LABEL_REF.
2205 * cfgbuild.c (make_edges): Likewise.
2206 (purge_dead_tablejump_edges): Likewise.
2207 * cfgexpand.c (convert_debug_memory_address): Likewise.
2208 * cfgrtl.c (patch_jump_insn): Likewise.
2209 * combine.c (distribute_notes): Likewise.
2210 * cse.c (hash_rtx_cb): Likewise.
2211 (exp_equiv_p): Likewise.
2212 (fold_rtx): Likewise.
2213 (check_for_label_ref): Likewise.
2214 * cselib.c (rtx_equal_for_cselib_1): Likewise.
2215 (cselib_hash_rtx): Likewise.
2216 * emit-rtl.c (mark_label_nuses): Likewise.
2217 * explow.c (convert_memory_address_addr_space): Likewise.
2218 * final.c (output_asm_label): Likewise.
2219 (output_addr_const): Likewise.
2220 * gcse.c (add_label_notes): Likewise.
2221 * genconfig.c (walk_insn_part): Likewise.
2222 * genrecog.c (validate_pattern): Likewise.
2223 * ifcvt.c (cond_exec_get_condition): Likewise.
2224 (noce_emit_store_flag): Likewise.
2225 (noce_get_alt_condition): Likewise.
2226 (noce_get_condition): Likewise.
2227 * jump.c (maybe_propagate_label_ref): Likewise.
2228 (mark_jump_label_1): Likewise.
2229 (redirect_exp_1): Likewise.
2230 (rtx_renumbered_equal_p): Likewise.
2231 * lra-constraints.c (operands_match_p): Likewise.
2232 * reload.c (operands_match_p): Likewise.
2233 (find_reloads): Likewise.
2234 * reload1.c (set_label_offsets): Likewise.
2235 * reorg.c (get_branch_condition): Likewise.
2236 * rtl.c (rtx_equal_p_cb): Likewise.
2237 (rtx_equal_p): Likewise.
2238 * rtlanal.c (reg_mentioned_p): Likewise.
2239 (rtx_referenced_p): Likewise.
2240 (get_condition): Likewise.
2241 * sched-vis.c (print_value): Likewise.
2242 * varasm.c (const_hash_1): Likewise.
2243 (compare_constant): Likewise.
2244 (const_rtx_hash_1): Likewise.
2245 (output_constant_pool_1): Likewise.
2247 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
2249 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
2250 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
2252 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
2253 cr6_test_for_lt_reverse): Ditto.
2255 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
2258 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
2260 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2262 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
2263 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
2264 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
2265 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
2268 (aarch64_fold_builtin): Remove all reinterpret cases.
2270 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
2272 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
2274 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
2275 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
2276 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
2277 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
2278 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
2279 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
2280 aarch64_reinterpretv2df<mode>): Delete.
2282 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
2284 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
2285 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
2286 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
2287 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
2288 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
2289 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
2290 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
2291 vreinterpret_u32_f64): Use cast.
2293 * config/aarch64/iterators.md (VD_RE): Delete.
2295 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
2297 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
2298 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
2299 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
2300 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
2301 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
2302 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
2303 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
2304 Replace inline assembler with __aarch64_vset_lane_any.
2306 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
2308 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
2310 (vmull_high_lane_s32): Likewise.
2311 (vmull_high_lane_u16): Likewise.
2312 (vmull_high_lane_u32): Likewise.
2314 2014-09-11 Jason Merrill <jason@redhat.com>
2317 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
2319 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
2322 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
2323 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
2324 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
2326 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2328 Anna Tikhonova <anna.tikhonova@intel.com>
2329 Ilya Tocar <ilya.tocar@intel.com>
2330 Andrey Turetskiy <andrey.turetskiy@intel.com>
2331 Ilya Verbin <ilya.verbin@intel.com>
2332 Kirill Yukhin <kirill.yukhin@intel.com>
2333 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2335 * config/i386/sse.md
2336 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
2337 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
2338 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
2340 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
2341 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
2343 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
2345 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
2346 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
2347 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
2348 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
2349 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
2350 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
2351 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
2352 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
2354 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
2356 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
2357 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
2358 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
2360 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
2362 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
2363 to access removed nodes.
2365 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
2367 PR tree-optimization/63186
2368 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
2369 (mark_nonssa_use): Likewise.
2370 (verify_non_ssa_vars): Verify all header blocks for label
2373 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
2374 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2375 Anna Tikhonova <anna.tikhonova@intel.com>
2376 Ilya Tocar <ilya.tocar@intel.com>
2377 Andrey Turetskiy <andrey.turetskiy@intel.com>
2378 Ilya Verbin <ilya.verbin@intel.com>
2379 Kirill Yukhin <kirill.yukhin@intel.com>
2380 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2382 * config/i386/sse.md
2383 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
2384 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
2385 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
2386 "<avx2_avx512f>_permvar<mode><mask_name>".
2387 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
2388 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
2389 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
2390 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
2392 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
2393 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
2394 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
2395 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
2397 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2399 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
2400 V2DF, V4SF, DF, and DI modes.
2401 (vsx_fmav2df2): Likewise.
2402 (vsx_float_fix_<mode>2): Likewise.
2403 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
2405 2014-09-10 Xinliang David Li <davidxl@google.com>
2408 * config/arm/arm.md (movcond_addsi): Handle case where source
2409 and target operands are the same.
2411 2014-09-10 David Malcolm <dmalcolm@redhat.com>
2413 * final.c (this_is_asm_operands): Strengthen this variable from
2414 rtx to const rtx_insn *.
2415 * output.h (this_is_asm_operands): Likewise.
2416 * rtl-error.c (location_for_asm): Strengthen param "insn" from
2417 const_rtx to const rtx_insn *.
2418 (diagnostic_for_asm): Likewise.
2419 * rtl-error.h (error_for_asm): Likewise.
2420 (warning_for_asm): Likewise.
2422 2014-09-10 David Malcolm <dmalcolm@redhat.com>
2424 * genextract.c (print_header): When writing out insn_extract to
2425 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
2426 * recog.h (insn_extract): Strengthen the param from rtx to
2429 2014-09-10 Mike Stump <mikestump@comcast.net>
2431 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
2434 2014-09-10 Martin Jambor <mjambor@suse.cz>
2436 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
2437 (analyze): Do not set analyze flag if expand_thunk returns false;.
2438 (create_wrapper): Likewise.
2439 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
2441 2014-09-10 Martin Jambor <mjambor@suse.cz>
2444 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
2445 new decl properly. Analyze the new thunk if it is expanded.
2447 2014-09-10 Andreas Schwab <schwab@suse.de>
2449 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
2450 [USED_FOR_TARGET]: Define.
2452 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
2454 * config/mips/mips.c (mips_secondary_reload_class): Handle
2457 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
2459 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
2462 2014-09-10 Jakub Jelinek <jakub@redhat.com>
2464 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
2465 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
2466 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
2467 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
2468 flag_delete_null_pointer_checks for them.
2469 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
2470 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
2471 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
2472 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
2473 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
2475 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
2476 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
2477 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
2478 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
2479 * doc/invoke.texi (-fsanitize=nonnull-attribute,
2480 -fsanitize=returns-nonnull-attribute): Document.
2482 * ubsan.h (struct ubsan_mismatch_data): Removed.
2483 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
2484 * ubsan.c (ubsan_source_location): For unknown locations,
2485 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
2486 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
2487 Allow more than one location and arbitrary extra arguments passed
2488 in ... instead of through MISMATCH pointer.
2489 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
2490 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
2491 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
2494 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
2495 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2496 Anna Tikhonova <anna.tikhonova@intel.com>
2497 Ilya Tocar <ilya.tocar@intel.com>
2498 Andrey Turetskiy <andrey.turetskiy@intel.com>
2499 Ilya Verbin <ilya.verbin@intel.com>
2500 Kirill Yukhin <kirill.yukhin@intel.com>
2501 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2503 * config/i386/sse.md
2504 (define_mode_iterator VI48F): New.
2505 (define_insn "<avx512>_compress<mode>_mask"): Rename from
2506 "avx512f_compress<mode>_mask" and update mode iterator.
2507 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
2508 "avx512f_compressstore<mode>_mask" and update mode iterator.
2509 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
2510 "avx512f_expand<mode>_maskz" and update mode iterator.
2511 (define_insn "<avx512>_expand<mode>_mask"): Rename from
2512 "avx512f_expand<mode>_mask" and update mode iterator.
2514 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
2515 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2516 Anna Tikhonova <anna.tikhonova@intel.com>
2517 Ilya Tocar <ilya.tocar@intel.com>
2518 Andrey Turetskiy <andrey.turetskiy@intel.com>
2519 Ilya Verbin <ilya.verbin@intel.com>
2520 Kirill Yukhin <kirill.yukhin@intel.com>
2521 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2523 * config/i386/i386.c
2524 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
2525 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
2526 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
2527 avx512dq_rangepv4sf_mask.
2528 * config/i386/sse.md
2529 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
2531 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
2532 (define_insn "reduces<mode>"): Ditto.
2533 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
2535 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
2536 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
2537 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
2539 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
2540 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2541 Anna Tikhonova <anna.tikhonova@intel.com>
2542 Ilya Tocar <ilya.tocar@intel.com>
2543 Andrey Turetskiy <andrey.turetskiy@intel.com>
2544 Ilya Verbin <ilya.verbin@intel.com>
2545 Kirill Yukhin <kirill.yukhin@intel.com>
2546 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2548 * config/i386/i386.c
2549 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
2550 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
2551 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
2552 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
2553 avx512vl_getmantv2df_mask.
2554 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
2555 avx512f_vgetmantv4sf_round.
2556 * config/i386/sse.md
2557 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
2558 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
2560 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
2561 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
2562 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
2563 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
2565 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
2566 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
2567 update mode iterator.
2569 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
2570 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
2573 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
2574 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
2575 update mode iterator.
2576 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
2577 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
2580 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
2581 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
2583 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
2584 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
2585 update mode iterator.
2586 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
2587 "avx512f_getmant<mode><round_saeonly_name>".
2589 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
2592 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
2594 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
2595 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2596 Anna Tikhonova <anna.tikhonova@intel.com>
2597 Ilya Tocar <ilya.tocar@intel.com>
2598 Andrey Turetskiy <andrey.turetskiy@intel.com>
2599 Ilya Verbin <ilya.verbin@intel.com>
2600 Kirill Yukhin <kirill.yukhin@intel.com>
2601 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2603 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
2604 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
2605 (define_mode_iterator FMAMODE_AVX512): New.
2606 (define_mode_iterator FMAMODE): Remove conditions.
2607 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
2608 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
2609 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
2611 (define_mode_iterator FMAMODE_NOVF512): Remove.
2612 (define_insn "*fma_fmadd_<mode>"): Rename from
2613 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
2614 FMAMODE mode iterator.
2615 (define_mode_iterator VF_SF_AVX512VL): New.
2616 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
2617 Use VF_SF_AVX512VL mode iterator.
2618 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
2619 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
2621 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
2622 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2624 (define_insn "*fma_fmsub_<mode>"): Rename from
2625 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
2626 FMAMODE mode iterator.
2627 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
2628 Use VF_SF_AVX512VL mode iterator.
2629 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
2630 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
2632 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
2633 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2635 (define_insn "*fma_fnmadd_<mode>"): Rename from
2636 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
2637 use FMAMODE mode iterator.
2638 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
2639 Use VF_SF_AVX512VL mode iterator.
2640 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
2641 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
2643 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
2644 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2646 (define_insn "*fma_fnmsub_<mode>"): Rename from
2647 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
2648 FMAMODE mode iterator.
2649 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
2650 Use VF_SF_AVX512VL mode iterator.
2651 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
2652 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
2654 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
2655 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2657 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
2658 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
2659 use VF_AVX512VL mode iterator.
2660 (define_insn "*fma_fmaddsub_<mode>"): Rename from
2661 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
2663 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
2664 Use VF_SF_AVX512VL mode iterator.
2665 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
2666 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
2668 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
2669 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2671 (define_insn "*fma_fmsubadd_<mode>"): Rename from
2672 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
2673 remove usage of subst.
2674 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
2675 Use VF_SF_AVX512VL mode iterator.
2676 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
2677 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
2679 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
2680 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
2683 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
2686 * calls.c (precompute_arguments): Check
2687 promoted_for_signed_and_unsigned_p and set the promoted mode.
2688 (promoted_for_signed_and_unsigned_p): New function.
2689 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
2690 and set the promoted mode.
2691 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
2692 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
2693 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
2695 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
2697 * opth-gen.awk: Generate mapping from cpp message reasons to the
2698 options that enable them.
2699 * doc/options.texi (CppReason): Document.
2701 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
2703 * doc/invoke.texi (Wnormalized=): Update.
2705 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
2708 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
2709 operands. Split off the constant operand alternative to ...
2710 (*bool<mode>3_imm): New.
2712 2014-09-09 David Malcolm <dmalcolm@redhat.com>
2714 * rtl.h (single_set_2): Strengthen first param from const_rtx to
2715 const rtx_insn *, and move prototype to above...
2716 (single_set): ...this. Convert this from a macro to an inline
2717 function, enforcing the requirement that the param is a const
2719 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
2721 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
2722 Strengthen both params from rtx to rtx_insn *.
2723 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
2724 Likewise; introduce locals "producer_set", "consumer_set", using
2725 them in place of "producer" and "consumer" when dealing with SET
2727 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
2728 when invoking single_set in region guarded by INSN_P.
2729 (avr_out_bitop): Likewise.
2730 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
2731 region guarded by GET_CODE check, using methods to strengthen
2732 local "this_insn" from rtx to rtx_insn *, and for clarity.
2733 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
2734 Strengthen local "insn" from rtx to rtx_insn *.
2735 (define_insn_and_split "xload<mode>_A"): Likewise.
2736 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
2738 (find_load): Likewise for return type.
2739 (workaround_speculation): Likewise for both locals named
2741 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
2743 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
2745 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
2747 * config/h8300/h8300.c (notice_update_cc): Likewise.
2748 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
2749 "insn" and "dep_insn".
2750 (exact_store_load_dependency): Likewise for both params.
2751 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
2752 since this now clashes with inline function. Instead, delay
2753 calling single_set until the point where its needed, and then
2754 assign the result to "compare_set" and rework the conditional that
2756 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
2757 local "last" from rtx to rtx_insn *.
2758 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
2760 (mips_store_data_bypass_p): Likewise for both params.
2761 * config/mips/mips.c (mips_load_store_insns): Likewise for second
2763 (mips_store_data_bypass_p): Likewise for both params.
2764 (mips_orphaned_high_part_p): Likewise for param "insn".
2765 * config/mn10300/mn10300.c (extract_bundle): Likewise.
2766 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
2767 Introduce local rtx "insn2_pat".
2768 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
2770 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
2771 Introduce local rtx "set", using it in place of "insn" for the
2772 result of single_set. This appears to fix a bug, since the call
2773 to find_regno_note on a SET does nothing.
2774 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
2775 params from rtx to rtx_insn *.
2776 (set_to_load_agen): Likewise.
2777 * config/s390/s390.c (s390_label_align): Likewise for local
2778 "prev_insn". Introduce new rtx locals "set" and "src", using
2779 them in place of "prev_insn" for the results of single_set
2780 and SET_SRC respectively.
2781 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
2782 Introduce new rtx local "set" using in place of "jump" for the
2783 result of single_set. Use SET_SRC (set) rather than plain
2785 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
2787 (noncall_uses_reg): Likewise.
2788 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
2789 guarded by GET_CODE check, using its methods for clarity, and to
2790 enable strengthening local "this_insn" from rtx to rtx_insn *.
2791 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
2792 "insn" from rtx to rtx_insn *.
2793 (define_expand "umulhisi3"): Likewise.
2794 (define_expand "smulsi3_highpart"): Likewise.
2795 (define_expand "umulsi3_highpart"): Likewise.
2796 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
2797 local "after". Replace GET_CODE check with a dyn_cast,
2798 introducing new local rtx_sequence * "seq", using insn method for
2801 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
2802 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
2803 place of "insn" once we're dealing with patterns rather than the
2805 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
2806 (scan_trace): Likewise for local "elt", updating lookups within
2807 sequence to use insn method rather than element method.
2808 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
2810 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
2811 * ifcvt.c (noce_try_abs): Likewise for local "insn".
2812 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
2813 invoking single_set.
2814 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
2815 "insn" from rtx to rtx_insn *.
2816 (skip_usage_debug_insns): Likewise for return type, adding a
2818 (check_secondary_memory_needed_p): Likewise for local "insn".
2819 (inherit_reload_reg): Likewise.
2820 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
2821 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
2823 (store_data_bypass_p): Likewise for both params.
2824 (if_test_bypass_p): Likewise.
2825 * recog.h (store_data_bypass_p): Likewise for both params.
2826 (if_test_bypass_p): Likewise.
2827 * reload.c (find_equiv_reg): Likewise for local "where".
2828 * reorg.c (delete_jump): Likewise for param "insn".
2829 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
2830 to const rtx_insn *.
2831 * store-motion.c (replace_store_insn): Likewise for param "del".
2832 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
2833 and use its methods for clarity, and to strengthen local "del"
2834 from rtx to rtx_insn *.
2835 (build_store_vectors): Use insn method of "st" when calling
2836 replace_store_insn for typesafety and clarity.
2838 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2840 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
2841 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
2842 on how to make it legal in future.
2844 2014-09-09 David Malcolm <dmalcolm@redhat.com>
2846 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
2848 (restinsn): Likewise.
2849 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2851 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
2853 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
2855 (arc_hazard): Likewise for both params.
2856 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
2857 checked casts to rtx_sequence * and uses of the insn method for
2859 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
2860 (arc_adjust_insn_length): Likewise for param "insn".
2861 (struct insn_length_parameters_s): Likewise for first param of
2862 "get_variants" callback field.
2863 (arc_get_insn_variants): Likewise for first param and local
2864 "inner". Replace a check of GET_CODE with a dyn_cast to
2865 rtx_sequence *, using methods for type-safety and clarity.
2866 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
2867 rtx_sequence * and uses of the insn method for type-safety when
2868 invoking arc_adjust_insn_length.
2869 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
2871 (arm_address_offset_is_imm): Likewise.
2872 (struct tune_params): Likewise for params 1 and 3 of the
2873 "sched_adjust_cost" callback field.
2874 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
2875 params 1 and 3 ("insn" and "dep").
2876 (xscale_sched_adjust_cost): Likewise.
2877 (fa726te_sched_adjust_cost): Likewise.
2878 (cortexa7_older_only): Likewise for param "insn".
2879 (cortexa7_younger): Likewise.
2880 (arm_attr_length_move_neon): Likewise.
2881 (arm_address_offset_is_imm): Likewise.
2882 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
2883 * config/avr/avr.c (avr_notice_update_cc): Likewise.
2884 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
2885 (workaround_speculation): Likewise for local "last_condjump".
2886 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
2887 (shadow_or_blockage_p): Likewise.
2888 (get_unit_reqs): Likewise.
2889 (get_unit_operand_masks): Likewise.
2890 (c6x_registers_update): Likewise.
2891 (returning_call_p): Likewise.
2892 (can_use_callp): Likewise.
2893 (convert_to_callp): Likewise.
2894 (find_last_same_clock): Likwise for local "t".
2895 (reorg_split_calls): Likewise for local "shadow".
2896 (hwloop_pattern_reg): Likewise for param "insn".
2897 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
2898 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
2899 (frv_extract_membar): Likewise.
2900 (frv_optimize_membar_local): Strengthen param "last_membar" from
2901 rtx * to rtx_insn **.
2902 (frv_optimize_membar_global): Strengthen param "membar" from rtx
2904 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
2906 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
2907 both params from rtx to rtx_insn *.
2908 (ia64_ld_address_bypass_p): Likewise.
2909 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
2911 (ia64_safe_type): Likewise.
2912 (group_barrier_needed): Likewise.
2913 (safe_group_barrier_needed): Likewise.
2914 (ia64_single_set): Likewise.
2915 (is_load_p): Likewise.
2916 (record_memory_reference): Likewise.
2917 (get_mode_no_for_insn): Likewise.
2918 (important_for_bundling_p): Likewise.
2919 (unknown_for_bundling_p): Likewise.
2920 (ia64_st_address_bypass_p): Likewise for both params.
2921 (ia64_ld_address_bypass_p): Likewise.
2922 (expand_vselect): Introduce new local rtx_insn * "insn", using it
2923 in place of rtx "x" after the emit_insn call.
2924 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
2925 Strengthen param from rtx to rtx_insn *.
2926 (ix86_agi_dependent): Likewise for both params.
2927 (ix86_attr_length_immediate_default): Likewise for param 1.
2928 (ix86_attr_length_address_default): Likewise for param.
2929 (ix86_attr_length_vex_default): Likewise for param 1.
2930 * config/i386/i386.c (ix86_attr_length_immediate_default):
2931 Likewise for param "insn".
2932 (ix86_attr_length_address_default): Likewise.
2933 (ix86_attr_length_vex_default): Likewise.
2934 (ix86_agi_dependent): Likewise for both params.
2935 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
2936 (vselect_insn): Likewise for this variable.
2937 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
2939 (m68k_sched_attr_opy_type): Likewise.
2940 * config/m68k/m68k.c (sched_get_operand): Likewise.
2941 (sched_attr_op_type): Likewise.
2942 (m68k_sched_attr_opx_type): Likewise.
2943 (m68k_sched_attr_opy_type): Likewise.
2944 (sched_get_reg_operand): Likewise.
2945 (sched_get_mem_operand): Likewise.
2946 (m68k_sched_address_bypass_p): Likewise for both params.
2947 (sched_get_indexed_address_scale): Likewise.
2948 (m68k_sched_indexed_address_bypass_p): Likewise.
2949 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
2950 (m68k_sched_indexed_address_bypass_p): Likewise.
2951 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
2952 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
2954 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
2955 params from rtx to rtx_insn *.
2956 (mips_fmadd_bypass): Likewise.
2957 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
2958 (mips_linked_madd_p): Likewise.
2959 (mips_macc_chains_last_hilo): Likewise for this variable.
2960 (mips_macc_chains_record): Likewise for param.
2961 (vr4130_last_insn): Likewise for this variable.
2962 (vr4130_swap_insns_p): Likewise for both params.
2963 (mips_ls2_variable_issue): Likewise for param.
2964 (mips_need_noat_wrapper_p): Likewise for param "insn".
2965 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
2966 in place of "x" after the emit_insn.
2967 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
2968 params from rtx to rtx_insn *.
2969 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
2970 (pa_combine_instructions): Introduce local "par" for result of
2971 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
2973 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
2974 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
2975 (rl78_alloc_physical_registers_op1): Likewise.
2976 (rl78_alloc_physical_registers_op2): Likewise.
2977 (rl78_alloc_physical_registers_ro1): Likewise.
2978 (rl78_alloc_physical_registers_cmp): Likewise.
2979 (rl78_alloc_physical_registers_umul): Likewise.
2980 (rl78_alloc_address_registers_macax): Likewise.
2981 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
2982 * config/s390/predicates.md (execute_operation): Likewise for
2984 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
2986 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
2987 (addr_generation_dependency_p): Likewise for param "insn".
2988 (s390_agen_dep_p): Likewise for both params.
2989 (s390_fpload_toreg): Likewise for param "insn".
2990 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
2991 * config/sh/sh.c (sh_loop_align): Likewise for param and local
2993 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
2994 * config/sh/sh_treg_combine.cc
2995 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
2997 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
2998 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
2999 "and_insn", "load", "shift".
3000 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
3002 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
3003 for XEXP (note, 0) of the REG_CC_SETTER note.
3004 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
3005 rtx_insn *, eliminating a checked cast made redundant by this.
3006 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
3008 * genattr.c (main): When writing out the prototype to
3009 const_num_delay_slots, strengthen the param from rtx to
3011 * genattrtab.c (write_const_num_delay_slots): Likewise when
3012 writing out the implementation of const_num_delay_slots.
3013 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
3014 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
3015 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
3016 favor of new rtx locals "src" and "set" and new local rtx_insn *
3018 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
3020 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
3021 locals "cond", "if_then_else", "set" and new rtx_insn * locals
3023 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
3024 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
3025 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
3026 the top-level scope, replacing with new more tightly-scoped rtx
3027 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
3028 "new_insn", "copy_of_insn_b", and make local rtx "set" more
3030 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
3032 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
3034 (ira_setup_alts): Likewise for param "insn".
3035 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
3036 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
3038 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
3039 new more-tightly scoped rtx locals "add3_insn", "insn",
3040 "add2_insn" and rtx_insn * "move_insn".
3041 * postreload-gcse.c (eliminate_partially_redundant_load): Add
3042 checked cast on result of gen_move_insn when invoking
3044 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
3046 (verify_changes): Add a checked cast on "object" when invoking
3048 (extract_insn_cached): Strengthen param "insn" from rtx to
3050 (extract_constrain_insn_cached): Likewise.
3051 (extract_insn): Likewise.
3052 * recog.h (insn_invalid_p): Likewise for param 1.
3053 (recog_memoized): Likewise for param.
3054 (extract_insn): Likewise.
3055 (extract_constrain_insn_cached): Likewise.
3056 (extract_insn_cached): Likewise.
3057 * reload.c (can_reload_into): Likewise for local "test_insn".
3058 * reload.h (cleanup_subreg_operands): Likewise for param.
3059 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
3060 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
3061 result of emit_insn. Remove a checked cast made redundant by this
3063 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
3065 * sel-sched.c (get_reg_class): Likewise.
3067 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
3068 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3070 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
3071 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
3073 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
3075 2014-09-09 David Malcolm <dmalcolm@redhat.com>
3077 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
3078 const rtx_insn *, and from rtx to rtx_insn * for the other
3080 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
3081 INSN_LOCATION, since we know INSN_P holds.
3082 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
3083 (insn_file): Likewise.
3084 (insn_scope): Likewise.
3085 (insn_location): Likewise.
3087 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
3088 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
3089 for the result of gen_load_const_gp.
3090 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
3091 param from rtx to rtx_insn *.
3092 * config/rs6000/rs6000.c (output_call): Likewise.
3093 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
3094 introducing a checked cast to rtx_sequence * and use of the insn
3096 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
3097 from rtx to rtx_insn *.
3098 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
3099 (insn_line): Likewise.
3100 (insn_file): Likewise.
3101 (insn_location): Likewise.
3102 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
3103 from rtx to rtx_insn *.
3104 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
3105 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
3106 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
3108 * reorg.c (relax_delay_slots): Strengthen locals named "after"
3109 from rtx to rtx_insn *; use methods of "pat" for type-safety.
3111 2014-09-09 David Malcolm <dmalcolm@redhat.com>
3113 * combine.c (try_combine): Eliminate checked cast on result of
3115 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
3116 autogenerated one by strengthening the return type and params 2 and 3
3117 from rtx to rtx_insn *, and by naming the params.
3118 * gengenrtl.c (special_rtx): Add INSN to those that are
3120 * rtl.h (gen_rtx_INSN): New prototype.
3122 2014-09-09 David Malcolm <dmalcolm@redhat.com>
3124 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
3126 (no_equiv): Likewise.
3127 (update_equiv_regs): Likewise.
3128 (setup_reg_equiv): Likewise. Strengthen locals "elem",
3129 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
3130 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
3132 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
3133 from rtx to rtx_insn_list *.
3134 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
3135 rtx_insn_list * and use methods for clarity and typesafety.
3136 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
3138 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
3139 redundant check on INSN_P (insns): this cannot hold, as "insns" is
3140 an INSN_LIST, not an insn.
3141 (reverse_equiv_p): Strengthen local "insns" from rtx to
3142 rtx_insn_list * and use methods for clarity and typesafety.
3143 (contains_reloaded_insn_p): Likewise for local "list".
3145 2014-09-09 Jiong Wang <jiong.wang@arm.com>
3147 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
3148 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
3149 (arm_builtin_vectorized_function): Likewise.
3150 * config/arm/arm_neon_builtins.def: New macro for copysignf.
3151 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
3153 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
3155 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
3156 * builtins.h (default_target_builtins): Likewise.
3157 * gcse.h (default_target_gcse): Likewise.
3158 * target-globals.h (target_globals): Add a destructor. Convert
3159 void-pointer fields back to their real type and change from
3160 GTY((atomic)) to GTY((skip)).
3161 (restore_target_globals): Remove casts accordingly.
3162 * target-globals.c (save_target_globals): Use XCNEW rather than
3163 ggc_internal_cleared_alloc to allocate non-GC structures.
3164 Use ggc_cleared_alloc to allocate the target_globals structure
3166 (target_globals::~target_globals): Define.
3168 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3170 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
3171 mnemonic instead of fldmfdd.
3172 * config/arm/arm.c (vfp_output_fstmd): Rename to...
3173 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
3174 Output vpush when address register is SP.
3175 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
3176 (vfp_output_vstmd): ... This.
3177 * config/arm/vfp.md (push_multi_vfp): Update call to
3180 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3182 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
3184 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3186 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
3187 (*sqrtdf2_vfp): Likewise.
3188 (*cmpsf_vfp): Likewise.
3189 (*cmpsf_trap_vfp): Likewise.
3190 (*cmpdf_vfp): Likewise.
3191 (*cmpdf_trap_vfp): Likewise.
3193 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3195 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
3196 (*truncdfsf2_vfp): Likewise.
3197 (*truncsisf2_vfp): Likewise.
3198 (*truncsidf2_vfp): Likewise.
3199 (fixuns_truncsfsi2): Likewise.
3200 (fixuns_truncdfsi2): Likewise.
3201 (*floatsisf2_vfp): Likewise.
3202 (*floatsidf2_vfp): Likewise.
3203 (floatunssisf2): Likewise.
3204 (floatunssidf2): Likewise.
3206 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3208 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
3209 (*muldf3_vfp): Likewise.
3210 (*mulsf3negsf_vfp): Likewise.
3211 (*muldf3negdf_vfp): Likewise.
3212 (*mulsf3addsf_vfp): Likewise.
3213 (*muldf3adddf_vfp): Likewise.
3214 (*mulsf3subsf_vfp): Likewise.
3215 (*muldf3subdf_vfp): Likewise.
3216 (*mulsf3negsfaddsf_vfp): Likewise.
3217 (*fmuldf3negdfadddf_vfp): Likewise.
3218 (*mulsf3negsfsubsf_vfp): Likewise.
3219 (*muldf3negdfsubdf_vfp): Likewise.
3221 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3223 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
3224 (*absdf2_vfp): Likewise.
3225 (*negsf2_vfp): Likewise.
3226 (*negdf2_vfp): Likewise.
3227 (*addsf3_vfp): Likewise.
3228 (*adddf3_vfp): Likewise.
3229 (*subsf3_vfp): Likewise.
3230 (*subdf3_vfp): Likewise.
3231 (*divsf3_vfp): Likewise.
3232 (*divdf3_vfp): Likewise.
3234 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3236 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
3238 (arm_print_operand): Don't convert real values to decimal
3239 representation in default case.
3240 (fp_immediate_constant): Delete.
3241 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
3242 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
3244 (*thumb2_movsi_vfp): Likewise.
3245 (*movdi_vfp): Likewise.
3246 (*movdi_vfp_cortexa8): Likewise.
3247 (*movhf_vfp_neon): Likewise.
3248 (*movhf_vfp): Likewise.
3249 (*movsf_vfp): Likewise.
3250 (*thumb2_movsf_vfp): Likewise.
3251 (*movdf_vfp): Likewise.
3252 (*thumb2_movdf_vfp): Likewise.
3253 (*movsfcc_vfp): Likewise.
3254 (*thumb2_movsfcc_vfp): Likewise.
3255 (*movdfcc_vfp): Likewise.
3256 (*thumb2_movdfcc_vfp): Likewise.
3258 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
3260 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
3264 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3267 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
3268 Use qualifier_immediate for last operand. Rename to...
3269 (aarch64_types_ternop_lane_qualifiers): ... This.
3270 (TYPES_QUADOP): Rename to...
3271 (TYPES_TERNOP_LANE): ... This.
3272 (aarch64_simd_expand_args): Return const0_rtx when encountering user
3273 error. Change return of 0 to return of NULL_RTX.
3274 (aarch64_crc32_expand_builtin): Likewise.
3275 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
3276 ICE when expanding unknown builtin.
3277 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
3278 TERNOP_LANE qualifiers.
3279 (sqdmlsl_lane): Likewise.
3280 (sqdmlal_laneq): Likewise.
3281 (sqdmlsl_laneq): Likewise.
3282 (sqdmlal2_lane): Likewise.
3283 (sqdmlsl2_lane): Likewise.
3284 (sqdmlal2_laneq): Likewise.
3285 (sqdmlsl2_laneq): Likewise.
3287 2014-09-09 Nick Clifton <nickc@redhat.com>
3289 * doc/invoke.texi (Optimization Options): Add missing @gol to the
3291 (S/390 and zSeries Options): Remove superfluous word from the
3292 description of the -mhotpatch option.
3294 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
3296 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
3297 * ira.c: #include "shrink-wrap.h"
3298 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
3299 * ifcvt.c: #include "shrink-wrap.h"
3300 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
3302 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
3304 * common/config/picochip/picochip-common.c: Remove.
3305 * config.gcc: Remove support for picochip.
3306 * config/picochip/constraints.md: Remove.
3307 * config/picochip/dfa_space.md: Remove.
3308 * config/picochip/dfa_speed.md: Remove.
3309 * config/picochip/picochip-protos.h: Remove.
3310 * config/picochip/picochip.c: Remove.
3311 * config/picochip/picochip.h: Remove.
3312 * config/picochip/picochip.md: Remove.
3313 * config/picochip/picochip.opt: Remove.
3314 * config/picochip/predicates.md: Remove.
3315 * config/picochip/t-picochip: Remove.
3316 * doc/md.texi: Don't document picochi.
3318 2014-09-08 David Malcolm <dmalcolm@redhat.com>
3320 * basic-block.h (control_flow_insn_p): Strengthen param from
3321 const_rtx to const rtx_insn *.
3322 * cfgbuild.c (control_flow_insn_p): Likewise.
3324 2014-09-08 David Malcolm <dmalcolm@redhat.com>
3326 * gcse.c (modify_mem_list): Strengthen this variable from
3327 vec<rtx> * to vec<rtx_insn *> *.
3328 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
3330 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
3331 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
3332 (record_last_mem_set_info): Strengthen param "insn" from rtx to
3334 (record_last_set_info): Likewise for local "last_set_insn".
3336 2014-09-08 DJ Delorie <dj@redhat.com>
3338 * doc/invoke.texi (MSP430 Options): Add -minrt.
3340 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3342 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
3343 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
3344 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
3346 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
3348 (adjust_splat): New function.
3349 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
3350 (dump_swap_insn_table): Add case for SH_SPLAT.
3352 2014-09-08 Richard Biener <rguenther@suse.de>
3355 * tree-inline.c (copy_loops): The source loop header should
3357 (tree_function_versioning): If loops need fixup after removing
3358 unreachable blocks fix them.
3359 * omp-low.c (simd_clone_adjust): Do not add incr block to
3360 loop under construction.
3362 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
3364 * config/aarch64/aarch64-builtins.c
3365 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
3367 2014-09-08 Joseph Myers <joseph@codesourcery.com>
3369 * config/i386/cygming.h (TF_SIZE): Remove.
3370 * config/i386/darwin.h (TF_SIZE): Remove.
3371 * config/i386/dragonfly.h (TF_SIZE): Remove.
3372 * config/i386/freebsd.h (TF_SIZE): Remove.
3373 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
3374 * config/i386/openbsdelf.h (TF_SIZE): Remove.
3375 * config/i386/sol2.h (TF_SIZE): Remove.
3376 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
3377 * config/ia64/linux.h (TF_SIZE): Remove.
3378 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
3379 * doc/tm.texi: Regenerate.
3380 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
3382 2014-09-08 Joseph Myers <joseph@codesourcery.com>
3384 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
3386 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
3388 * doc/tm.texi: Regenerate.
3389 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
3391 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
3392 * config/cris/cris.h (__make_dp): Remove.
3394 2014-09-08 Richard Biener <rguenther@suse.de>
3397 * cfgloop.c (mark_loop_for_removal): Track former header
3399 * cfgloop.h (struct loop): Add former_header member unconditionally.
3400 * loop-init.c (fix_loop_structure): Enable bogus loop removal
3401 diagnostic unconditionally.
3403 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
3406 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
3407 constraint for operand0 and remove write only modifier from operand3.
3409 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
3411 PR rtl-optimization/62208
3412 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
3413 rather than const0_rtx in eq/ne-xor simplifications.
3415 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
3417 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
3418 (arc_output_mi_thunk): Likewise.
3420 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
3421 arguments to silence bogus warning.
3423 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
3426 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
3428 2014-09-06 Tom de Vries <tom@codesourcery.com>
3430 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
3431 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
3432 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
3434 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
3437 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
3438 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
3440 2014-09-05 Easwaran Raman <eraman@google.com>
3442 PR rtl-optimization/62146
3443 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
3444 hoisted instruction unconditional.
3446 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
3449 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
3450 Do not allow any_mask_operand for operands[2].
3451 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
3453 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3455 * config/arc/arc.c (arc_print_operand): Use insn method of
3456 final_sequence for type-safety.
3457 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
3458 "insn" from rtx to rtx_insn *.
3459 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
3460 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
3461 Likewise for locals "branch", "label".
3462 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
3463 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
3464 (same_cmp_following_p): Likewise for locals "i2", "i3".
3465 * config/sh/sh_optimize_sett_clrt.cc
3466 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
3467 param "cbranch_insn".
3468 * function.c (convert_jumps_to_returns): Likewis for local "jump".
3469 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
3470 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
3472 (condjump_p): Likewise.
3473 (condjump_in_parallel_p): Likewise.
3475 (any_uncondjump_p): Likewise.
3476 (any_condjump_p): Likewise.
3477 (condjump_label): Likewise.
3478 (returnjump_p): Strengthen param "insn" from rtx to
3480 (onlyjump_p): Strengthen param "insn" from const_rtx to
3482 (jump_to_label_p): Likewise.
3483 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
3484 (invert_jump): Likewise.
3485 * reorg.c (simplejump_or_return_p): Add checked cast when calling
3487 (get_jump_flags): Strengthen param "insn" from rtx to
3489 (get_branch_condition): Likewise.
3490 (condition_dominates_p): Likewise.
3491 (make_return_insns): Move declaration of local "pat" earlier, to
3492 after we've handled NONJUMP_INSN_P and non-sequences, using its
3493 methods to simplify the code and for type-safety.
3494 * rtl.h (find_constant_src): Strengthen param from const_rtx to
3496 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
3497 (condjump_p): Strengthen param from const_rtx to
3499 (any_condjump_p): Likewise.
3500 (any_uncondjump_p): Likewise.
3502 (condjump_label): Likewise.
3503 (simplejump_p): Likewise.
3504 (returnjump_p): Likewise.
3505 (onlyjump_p): Likewise.
3506 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
3507 (invert_jump): Likewise.
3508 (condjump_in_parallel_p): Strengthen param from const_rtx to
3510 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
3511 to const rtx_insn *.
3512 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
3513 to const rtx_insn *.
3514 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
3516 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3518 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
3519 above the conditional, and convert the check on GET_CODE to a
3520 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
3521 the conditional. Simplify the conditional by using methods of
3524 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3526 * haifa-sched.c (check_clobbered_conditions): Strengthen local
3527 "link" from rtx to rtx_insn_list *, and use its methods for
3528 clarity and type-safety.
3529 (toggle_cancelled_flags): Likewise.
3530 (restore_last_backtrack_point): Likewise.
3531 (queue_to_ready): Use insn method of "link" in one place.
3532 (schedule_block): Strengthen local "link" from rtx to
3533 rtx_insn_list *, and use its methods for clarity and type-safety.
3535 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3537 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
3538 param "insn" from const_rtx to const rtx_insn *.
3539 (sched_get_reverse_condition_uncached): Likewise.
3540 (sched_get_condition_with_rev): Likewise.
3541 (sched_has_condition_p): Likewise.
3542 (sched_insns_conditions_mutex_p): Likewise for both params.
3543 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
3544 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
3545 (setup_insn_reg_uses): Move local "list" to be more tightly
3546 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
3547 its methods for clarity and type-safety.
3548 (sched_analyze_1): Strengthen local "pending" from rtx to
3549 rtx_insn_list *, and local "pending_mem" from rtx to
3550 rtx_expr_list *. Use methods of each for clarity and type-safety.
3551 (sched_analyze_2): Likewise.
3552 (sched_analyze_insn): Likewise.
3554 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
3555 param from const_rtx to const rtx_insn *.
3556 (sched_insns_conditions_mutex_p): Likewise for both params.
3557 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
3560 * system.h (CONST_CAST_RTX_INSN): New macro.
3562 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3564 * recog.c (peep2_attempt): Strengthen return type from rtx to
3566 (peep2_update_life): Likewise for params "last", "prev", removing
3567 a checked cast made redundant by this.
3568 (peephole2_optimize): Likewise for local "last".
3570 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3572 * basic-block.h (set_block_for_insn): Eliminate this macro in
3574 * rtl.h (set_block_for_insn): New inline function, imposing the
3575 requirement that the "insn" param is an rtx_insn *.
3577 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3579 * caller-save.c (setup_save_areas): Strengthen local "insn" from
3581 * final.c (get_call_reg_set_usage): Likewise for first param,
3582 eliminating a checked cast.
3583 * regs.h (get_call_reg_set_usage): Likewise for first param.
3584 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
3585 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
3586 cast, replacing references to "x" with "call_insn" where
3588 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
3589 rtx_insn *, adding a checked cast.
3591 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3593 * output.h (final_scan_insn): Strengthen first param from rtx to
3596 * final.c (final_scan_insn): Likewise, renaming it back from
3597 "uncast_insn" to "insn", eliminating the checked cast.
3599 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
3600 "vec" with an rtx_sequence * "seq", taking a copy of
3601 "final_sequence", and using methods of "seq" for clarity, and for
3602 type-safety in the calls to final_scan_insn.
3603 * config/mips/mips.c (mips_output_conditional_branch): Use methods
3604 of "final_sequence" for clarity, and for type-safety in the call to
3606 * config/sh/sh.c (print_slot): Strengthen param from rtx to
3607 rtx_sequence * and rename from "insn" to "seq".
3609 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3611 * jump.c (delete_related_insns): Introduce a new local "table" by
3612 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
3613 get_labels method of "table" to simplify access to the labels in
3616 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3618 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
3619 f_minmaxs, f_minmaxd types.
3621 2014-09-05 Richard Biener <rguenther@suse.de>
3623 * cfgloop.c (mark_loop_for_removal): Record former header
3624 when ENABLE_CHECKING.
3625 * cfgloop.h (strut loop): Add former_header member when
3627 * loop-init.c (fix_loop_structure): Sanity check loops
3628 marked for removal if they re-appeared.
3630 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3632 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
3633 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
3635 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
3636 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
3637 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
3638 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
3639 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
3640 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
3641 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
3642 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
3643 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
3644 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
3645 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
3646 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
3647 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
3648 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
3649 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
3650 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
3651 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
3652 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
3653 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
3654 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
3655 with int{32,16,8}_t.
3657 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3659 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
3660 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
3661 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
3662 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
3663 Remove temporary __asm__ and reimplement.
3665 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3667 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
3668 handling cmge, cmgt, cmeq, cmtst.
3670 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
3671 cmlt, cmgeu, cmgtu, cmtst): Remove.
3673 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
3674 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
3675 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
3676 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
3678 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3680 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
3682 (aarch64_fold_builtin): Update pattern for cmtst.
3684 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
3687 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
3689 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
3690 Switch operands, separate out more cases, refactor.
3692 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
3694 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
3695 argument; rename old version to...
3696 (aarch64_const_vec_all_same_in_range_p): ...this.
3697 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
3699 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
3701 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3703 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
3704 Remove qualifier_const_pointer, update comment.
3706 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3708 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
3710 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3712 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
3713 varargs with pointer parameter.
3714 (aarch64_simd_expand_builtin): pass pointer into previous.
3716 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3718 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
3721 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
3723 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
3724 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
3725 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
3726 Replace temporary asm with call to builtin.
3727 (vrbit_p8, vrbitq_p8): New functions.
3729 2014-09-05 Richard Biener <rguenther@suse.de>
3731 * cfgloop.c (mark_loop_for_removal): New function.
3732 * cfgloop.h (mark_loop_for_removal): Declare.
3733 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
3734 (merge_blocks): Likewise.
3735 (duplicate_block): Likewise.
3736 * except.c (sjlj_emit_dispatch_table): Likewise.
3737 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
3738 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
3739 (thread_through_loop_header): Likewise.
3741 2014-09-05 Richard Biener <rguenther@suse.de>
3744 * fold-const.c (try_move_mult_to_index): Remove.
3745 (fold_binary_loc): Do not call it.
3746 * tree-data-ref.c (dr_analyze_indices): Strip conversions
3747 from the base object again.
3749 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
3751 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
3754 2014-09-05 Bin Cheng <bin.cheng@arm.com>
3757 * config/arm/arm.md (setmem): New pattern.
3758 * config/arm/arm-protos.h (struct tune_params): New fields.
3759 (arm_gen_setmem): New prototype.
3760 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
3761 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
3762 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
3763 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
3764 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
3765 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
3766 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
3767 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
3768 (arm_const_inline_cost): New function.
3769 (arm_block_set_max_insns): New function.
3770 (arm_block_set_non_vect_profit_p): New function.
3771 (arm_block_set_vect_profit_p): New function.
3772 (arm_block_set_unaligned_vect): New function.
3773 (arm_block_set_aligned_vect): New function.
3774 (arm_block_set_unaligned_non_vect): New function.
3775 (arm_block_set_aligned_non_vect): New function.
3776 (arm_block_set_vect, arm_gen_setmem): New functions.
3778 2014-09-05 Bin Cheng <bin.cheng@arm.com>
3780 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
3782 2014-09-05 Bin Cheng <bin.cheng@arm.com>
3784 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
3786 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
3788 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
3790 * valtrack.h: Adjust.
3792 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
3794 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
3796 (emit_jump_insn_before_noloc): Likewise.
3797 (emit_call_insn_before_noloc): Likewise.
3798 (emit_label_before): Likewise.
3799 (emit_label_after): Likewise.
3800 (emit_insn_before_setloc): Likewise.
3801 (emit_jump_insn_before_setloc): Likewise.
3802 (emit_call_insn_before_setloc): Likewise.
3803 (emit_call_insn_before): Likewise.
3806 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3808 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
3809 rtx_insn *, eliminating a checked cast.
3811 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3813 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
3814 const_rtx to const rtx_insn *.
3815 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
3818 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3820 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
3821 fixup_args_size_notes.
3822 * expr.c (fixup_args_size_notes): Strengthen first two params from
3823 rtx to rtx_insn *, eliminating a checked cast.
3824 * rtl.h (fixup_args_size_notes): Strengthen first two params from
3827 2014-09-05 David Malcolm <dmalcolm@redhat.com>
3829 * haifa-sched.c (get_ready_element): Strengthen return type from
3831 * sched-int.h (get_ready_element): Likewise.
3833 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
3836 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
3837 indexed_or_indirect_operand instead of memory_operand.
3838 (floatsi<mode>2_lfiwzx_mem): Ditto.
3840 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
3842 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
3843 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
3844 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
3846 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
3848 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
3850 (get_last_nonnote_insn): Likewise.
3851 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
3852 * resource.c (find_basic_block): Likewise.
3854 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
3857 2014-09-04 David Malcolm <dmalcolm@redhat.com>
3859 * genattr.c (main): Within the prototype of insn_latency written
3860 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
3861 * genautomata.c (output_internal_maximal_insn_latency_func):
3862 Within the implementation of insn_latency written out to
3863 insn-automata.c, strengthen both params from rtx to rtx_insn *,
3864 eliminating a pair of checked casts.
3866 2014-09-04 David Malcolm <dmalcolm@redhat.com>
3868 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
3871 * rtl.h (eh_returnjump_p): Likewise.
3873 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
3875 * Makefile.in (TAGS): Handle constructs in timevar.def.
3877 2014-09-04 Guozhi Wei <carrot@google.com>
3880 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
3881 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
3882 it into two patterns.
3883 (move_lo_quad_internal_be_<mode>): Likewise.
3885 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
3887 * doc/options.texi: Document that Var and Init are required if CPP
3889 * optc-gen.awk: Require Var and Init if CPP is given.
3890 * common.opt (Wpedantic): Use Init.
3892 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3894 * config/rs6000/rs6000.c (special_handling_values): Add
3896 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
3897 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
3898 as swappable with special handling SH_EXTRACT. Remove
3899 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
3901 (adjust_extract): New function.
3902 (handle_special_swappables): Add default to case statement; add
3903 case for SH_EXTRACT that calls adjust_extract.
3904 (dump_swap_insn_table): Handle SH_EXTRACT.
3906 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3908 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
3909 selection of 0th memory doubleword, regardless of endianness.
3911 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3913 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
3915 2014-09-04 Alan Modra <amodra@gmail.com>
3918 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
3921 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
3923 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
3924 * targhooks.c (default_dwarf_frame_reg_mode): New function.
3925 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
3926 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
3927 * doc/tm.texi: Regenerate.
3928 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
3929 selection logic to default_dwarf_frame_reg_mode.
3931 2014-09-03 Marek Polacek <polacek@redhat.com>
3933 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
3936 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
3938 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
3939 the automodified register.
3941 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
3943 * output.h (get_some_local_dynamic_name): Declare.
3944 * final.c (some_local_dynamic_name): New variable.
3945 (get_some_local_dynamic_name): New function.
3946 (final_end_function): Clear some_local_dynamic_name.
3947 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
3948 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
3949 (print_operand): Report an error if '%&' is used inappropriately.
3950 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
3951 (get_some_local_dynamic_name_1): Delete.
3952 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
3953 (rs6000_get_some_local_dynamic_name): Delete.
3954 (rs6000_get_some_local_dynamic_name_1): Delete.
3955 (print_operand): Report an error if '%&' is used inappropriately.
3956 * config/s390/s390.c (machine_function): Remove some_ld_name.
3957 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
3958 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
3959 * config/sparc/sparc.c: Include rtl-iter.h.
3960 (machine_function): Remove some_ld_name.
3961 (sparc_print_operand): Report an error if '%&' is used inappropriately.
3962 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
3964 2014-09-03 Richard Henderson <rth@redhat.com>
3966 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
3967 (aarch64_popwb_pair_reg): Remove.
3968 (aarch64_set_frame_expr): Remove.
3969 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
3970 the restore ops performed by the insns generated.
3971 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
3972 insn. Perform the calls_eh_return addition later; do not attempt to
3973 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
3974 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
3975 special markup at all. Load cfun->machine->frame.hard_fp_offset
3976 into a local variable.
3977 (aarch64_frame_pointer_required): Don't check calls_alloca.
3979 2014-09-03 Richard Biener <rguenther@suse.de>
3981 * opts.c (default_options_optimization): Adjust
3982 max-combine-insns to 2 for -Og.
3984 2014-09-03 Martin Jambor <mjambor@suse.cz>
3987 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
3988 pass-trough jump functions correctly.
3990 2014-09-03 Martin Jambor <mjambor@suse.cz>
3993 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
3994 created replacements in ascending order of offsets.
3995 (known_aggs_to_agg_replacement_list): Likewise.
3997 2014-09-03 Martin Liska <mliska@suse.cz>
3999 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
4000 is set to set uninitialized value for vnresult.
4002 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4004 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
4005 for TARGET_MUST_PASS_IN_STACK.
4007 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4009 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
4010 for TARGET_ARG_PARTIAL_BYTES.
4012 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4014 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
4015 instructions for varargs implementation.
4016 (nds32_expand_epilogue): Emit stack adjustment instructions for
4017 varargs implementation.
4019 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4021 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
4022 optimization detection.
4024 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4026 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
4028 (nds32_function_arg_advance): Deal with nameless arguments.
4029 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
4030 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
4031 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
4033 2014-09-03 Richard Biener <rguenther@suse.de>
4035 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
4036 (struct bb_bitmap_sets): Remove deferred member.
4037 (BB_DEFERRED): Remove.
4038 (defer_or_phi_translate_block): Remove.
4039 (compute_antic_aux): Remove deferring of blocks, assert
4040 proper iteration order.
4041 (compute_antic): Do not set BB_DEFERRED.
4042 (eliminate): Allocate el_avail of proper size initially.
4044 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4046 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
4047 according to the value of crtl->args.pretend_args_size.
4049 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4051 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
4052 varargs information.
4054 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4056 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
4057 implementation for TARGET_SETUP_INCOMING_VARARGS.
4058 (nds32_strict_argument_naming): Refine comment.
4059 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
4060 Define for future implementation.
4062 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
4064 * config/i386/adxintrin.h (_subborrow_u32): New.
4065 (_addcarry_u32): Ditto.
4066 (_subborrow_u64): Ditto.
4067 (_addcarry_u64): Ditto.
4068 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
4070 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
4071 __builtin_ia32_sbb_u64
4073 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4075 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
4077 (nds32_function_arg_advance): Likewise.
4078 (nds32_init_cumulative_args): Likewise.
4079 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
4080 (NDS32_FIRST_GPR_REGNUM): Define.
4081 (NDS32_LAST_GPR_REGNUM): Define.
4082 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
4083 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
4084 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
4085 (machine_function): Use GRP-specific stuff.
4087 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4089 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
4090 (nds32_expand_epilogue): Likewise.
4091 (nds32_expand_prologue_v3push): Likewise.
4092 (nds32_expand_epilogue_v3pop): Likewise.
4094 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4096 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
4097 v3push/v3pop for variadic function.
4098 * config/nds32/nds32.md (prologue, epilogue): Likewise.
4100 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4102 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
4103 Check rtx for varargs implementation.
4104 (nds32_output_stack_pop): Likewise.
4105 * config/nds32/nds32-protos.h: Have a rtx argument for
4106 nds32_output_stack_push and nds32_output_stack_pop.
4107 * config/nds32/nds32.md: Likewise.
4109 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4111 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
4112 to check if FUNC is an interrupt service routine.
4113 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
4115 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4117 * config/nds32/nds32.h (machine_function): Add some fields for variadic
4118 arguments implementation.
4120 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4122 * config/nds32/nds32-predicates.c
4123 (nds32_valid_stack_push_pop): Rename to ...
4124 (nds32_valid_stack_push_pop_p): ... this.
4125 * config/nds32/nds32-protos.h: Likewise.
4126 * config/nds32/predicates.md: Likewise.
4128 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4130 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
4131 (nds32_emit_stack_v3push): ... this.
4132 (nds32_gen_stack_v3pop): Rename to ...
4133 (nds32_emit_stack_v3pop): ... this and consider CFA restore
4136 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4138 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
4139 (nds32_emit_stack_push_multiple): ... this.
4140 (nds32_gen_stack_pop_multiple): Rename to ...
4141 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
4144 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4147 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
4148 and add a second splitter to handle the remaining cases.
4150 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
4152 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
4154 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
4156 * cfgexpand.c (label_rtx_for_bb): Change type to
4157 hash_map<basic_block, rtx_code_label *> *.
4158 (expand_gimple_basic_block): Adjust.
4159 (pass_expand::execute): Likewise.
4161 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
4163 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
4164 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
4165 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
4166 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
4167 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
4168 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
4169 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
4172 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
4174 * alloc-pool.c: Include coretypes.h.
4175 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
4176 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
4177 hash_set instead of htab.
4178 * ggc-page.c (in_gc): New variable.
4179 (ggc_free): Do nothing if a collection is taking place.
4180 (ggc_collect): Set in_gc appropriately.
4181 * ggc.h (gt_ggc_mx(const char *)): New function.
4182 (gt_pch_nx(const char *)): Likewise.
4183 (gt_ggc_mx(int)): Likewise.
4184 (gt_pch_nx(int)): Likewise.
4185 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
4186 (hash_map::hash_entry::pch_nx): Likewise.
4187 (hash_map::hash_entry::pch_nx_helper): Likewise.
4188 (hash_map::hash_map): Adjust.
4189 (hash_map::create_ggc): New function.
4190 (gt_ggc_mx): Likewise.
4191 (gt_pch_nx): Likewise.
4192 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
4193 (default_hashset_traits::pch_nx): Likewise.
4194 (hash_set::hash_entry::ggc_mx): Likewise.
4195 (hash_set::hash_entry::pch_nx): Likewise.
4196 (hash_set::hash_entry::pch_nx_helper): Likewise.
4197 (hash_set::hash_set): Adjust.
4198 (hash_set::create_ggc): New function.
4199 (hash_set::elements): Likewise.
4200 (gt_ggc_mx): Likewise.
4201 (gt_pch_nx): Likewise.
4202 * hash-table.h (hash_table::hash_table): Adjust.
4203 (hash_table::m_ggc): New member.
4204 (hash_table::~hash_table): Adjust.
4205 (hash_table::expand): Likewise.
4206 (hash_table::empty): Likewise.
4207 (gt_ggc_mx): New function.
4208 (hashtab_entry_note_pointers): Likewise.
4209 (gt_pch_nx): Likewise.
4211 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4213 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
4214 built-in definition.
4215 (XVCVUXDDP_SCALE): Likewise.
4216 (XVCVDPSXDS_SCALE): Likewise.
4217 (XVCVDPUXDS_SCALE): Likewise.
4218 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4219 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
4220 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
4221 VSX_BUILTIN_XVCVDPUXDS_SCALE.
4222 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
4224 * config/rs6000/rs6000.c (real.h): New include.
4225 (rs6000_scale_v2df): New function.
4226 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
4227 (UNSPEC_VSX_XVCVUXDDP): Likewise.
4228 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
4229 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
4230 (vsx_xvcvsxddp_scale): New define_expand.
4231 (vsx_xvcvsxddp): New define_insn.
4232 (vsx_xvcvuxddp_scale): New define_expand.
4233 (vsx_xvcvuxddp): New define_insn.
4234 (vsx_xvcvdpsxds_scale): New define_expand.
4235 (vsx_xvcvdpsxds): New define_insn.
4236 (vsx_xvcvdpuxds_scale): New define_expand.
4237 (vsx_xvcvdpuxds): New define_insn.
4238 * doc/extend.texi (vec_ctf): Add new prototypes.
4239 (vec_cts): Likewise.
4240 (vec_ctu): Likewise.
4241 (vec_splat): Likewise.
4242 (vec_div): Likewise.
4243 (vec_mul): Likewise.
4245 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4248 * config/arm/neon.md
4249 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
4250 <v_cmp_result>): New pattern.
4251 * config/arm/iterators.md (NEON_VCVT): New int iterator.
4252 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
4253 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
4254 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
4255 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
4256 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
4258 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4261 * config/arm/iterators.md (FIXUORS): New code iterator.
4262 (VCVT): New int iterator.
4263 (su_optab): New code attribute.
4265 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
4267 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4269 * config/aarch64/predicates.md (aarch64_comparison_operation):
4270 New special predicate.
4271 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
4272 aarch64_comparison_operation instead of matching an operator.
4273 Update operand numbers.
4274 (csinc3<mode>_insn): Likewise.
4275 (*csinv3<mode>_insn): Likewise.
4276 (*csneg3<mode>_insn): Likewise.
4277 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
4278 * config/aarch64/aarch64.c (aarch64_get_condition_code):
4279 Return -1 instead of aborting on invalid condition codes.
4280 (aarch64_print_operand): Update aarch64_get_condition_code callsites
4281 to assert that the returned condition code is valid.
4282 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
4284 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
4286 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
4287 tree.def, and gimple.def
4289 2014-09-02 Jakub Jelinek <jakub@redhat.com>
4290 Balaji V. Iyer <balaji.v.iyer@intel.com>
4291 Igor Zamyatin <igor.zamyatin@intel.com>
4293 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
4294 (__cilkrts_cilk_for_64): Likewise.
4295 * cilk-common.c (declare_cilk_for_builtin): New function.
4296 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
4297 __cilkrts_cilk_for_64 bultins.
4298 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
4300 (cilk_for_32_fndecl): New define.
4301 (cilk_for_64_fndecl): Likewise.
4302 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
4303 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
4304 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
4305 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
4306 GF_OMP_FOR_COMBINED_INTO.
4307 * gimplify.c (gimplify_scan_omp_clauses): Added
4308 OMP_CLAUSE__CILK_FOR_COUNT_ case.
4309 (gimplify_adjust_omp_clauses): Ditto.
4310 (gimplify_omp_for): Added CILK_FOR case.
4311 (gimplify_expr): Ditto.
4312 * omp-low.c: Include cilk.h.
4313 (extract_omp_for_data): Set appropriate kind for
4314 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
4315 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
4316 (create_omp_child_function_name): Added second argument to handle
4318 (cilk_for_check_loop_diff_type): New function.
4319 (expand_cilk_for_call): Likewise.
4320 (expand_cilk_for): Likewise.
4321 (create_omp_child_function): Set cilk_for_count; handle the cases when
4322 it is true; call create_omp_child_function_name with second argument.
4323 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
4324 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
4325 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
4326 * tree-nested.c (convert_nonlocal_omp_clauses): Added
4327 OMP_CLAUSE__CILK_FOR_COUNT_ case.
4328 (convert_local_omp_clauses): Ditto.
4329 * tree-pretty-print.c (dump_omp_clause): Added
4330 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
4331 (dump_generic_node): Added CILK_FOR case.
4332 * tree.c (omp_clause_num_ops): New element
4333 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
4334 (omp_clause_code_name): New element _Cilk_for_count_.
4335 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
4336 * tree.def: Add tree code for CILK_FOR.
4338 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
4340 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
4341 (ppc403-compare): Add "exts with dot" case.
4342 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
4343 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
4344 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
4345 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
4346 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
4347 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
4348 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
4349 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
4350 cell-cmp-microcoded): Similarly.
4351 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
4352 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
4353 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
4354 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
4355 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
4356 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
4357 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
4358 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
4359 (power6-compare): Add "exts with dot" case.
4360 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
4361 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
4362 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
4364 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
4365 if avoiding Cell microcode.
4366 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
4367 (is_cracked_insn): Ditto.
4368 (insn_must_be_first_in_group): Ditto.
4369 * config/rs6000/rs6000.md (dot): Adjust comment.
4370 (cell_micro): Handle exts+dot.
4371 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
4372 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
4373 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
4374 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
4375 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
4376 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
4377 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
4379 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
4381 * config/rs6000/rs6000.md (QHSI): Delete.
4382 (EXTQI, EXTHI, EXTSI): New mode iterators.
4383 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
4384 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
4385 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
4386 9 anonymous instructions, and 8 splitters): Delete.
4387 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
4388 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
4389 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
4390 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
4391 *zero_extendsi<mode>2_dot2): New.
4393 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
4395 * config/rs6000/rs6000.md (any_extend): New code iterator.
4396 (u, su): New code attributes.
4397 (dmode, DMODE): New mode attributes.
4398 (<su>mul<mode>3_highpart): New.
4399 (*<su>mul<mode>3_highpart): New.
4400 (<su>mulsi3_highpart_le): New.
4401 (<su>muldi3_highpart_le): New.
4402 (<su>mulsi3_highpart_64): New.
4403 (<u>mul<mode><dmode>3): New.
4404 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
4406 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
4409 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
4411 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
4412 *mulsi3_internal2, and two splitters): Delete.
4413 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
4415 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
4417 2014-09-02 Richard Biener <rguenther@suse.de>
4419 PR tree-optimization/62695
4420 * tree-ssa-structalias.c (find_func_clobbers): Add missing
4423 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
4426 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
4428 2014-09-01 Andi Kleen <ak@linux.intel.com>
4430 * file-find.c (add_prefix_begin): Add.
4431 (do_add_prefix): Rename from add_prefix with first argument.
4432 (add_prefix): Add new wrapper.
4433 * file-find.h (add_prefix_begin): Add.
4434 * gcc-ar.c (main): Support -B option.
4436 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4438 * genemit.c: Include dumpfile.h.
4439 (gen_split): Print name of splitter function to dump file.
4441 2014-09-01 Richard Biener <rguenther@suse.de>
4443 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
4444 Use stack auto_vecs for constraint expressions.
4445 (find_func_aliases_for_call): Likewise.
4446 (find_func_aliases): Likewise.
4447 (find_func_clobbers): Likewise.
4449 2014-09-01 Richard Biener <rguenther@suse.de>
4451 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
4452 operands vector in most cases. Remove redundant code.
4454 2014-09-01 Olivier Hainque <hainque@adacore.com>
4456 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
4457 $WIND_BASE instead of designating a harcoded arbitrary home dir.
4458 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
4460 2014-09-01 Richard Biener <rguenther@suse.de>
4462 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
4463 copy_reference_ops_from_call, vn_nary_op_compute_hash,
4464 vn_reference_compute_hash, vn_reference_insert): Remove.
4465 (vn_reference_lookup_call): New function.
4466 * tree-ssa-sccvn.c (vn_reference_compute_hash,
4467 copy_reference_ops_from_ref, copy_reference_ops_from_call,
4468 vn_reference_insert, vn_nary_op_compute_hash): Make static.
4469 (create_reference_ops_from_call): Remove.
4470 (vn_reference_lookup_3): Properly update shared_lookup_references.
4471 (vn_reference_lookup_pieces): Assert that we updated
4472 shared_lookup_references properly.
4473 (vn_reference_lookup): Likewise.
4474 (vn_reference_lookup_call): New function.
4475 (visit_reference_op_call): Use it. Avoid re-building the
4477 (visit_reference_op_load): Remove redundant lookup.
4478 (visit_reference_op_store): Perform special tail-merging work
4479 only when possibly doing tail-merging.
4480 (visit_use): Likewise.
4481 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
4483 2014-09-01 Jakub Jelinek <jakub@redhat.com>
4486 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
4487 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
4488 (find_inc): Revert 2014-08-13 change.
4490 2014-09-01 Marek Polacek <polacek@redhat.com>
4493 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
4494 Change the type of V to unsigned HOST_WIDE_INT.
4496 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
4498 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
4499 the size of byte markers.
4500 (do_shift_rotate): Fix confusion between host, target and marker byte
4502 (verify_symbolic_number_p): Likewise.
4503 (find_bswap_or_nop_1): Likewise.
4504 (find_bswap_or_nop): Likewise.
4506 2014-09-01 Olivier Hainque <hainque@adacore.com>
4508 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
4509 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
4511 2014-09-01 Jakub Jelinek <jakub@redhat.com>
4513 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
4514 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
4515 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
4517 2014-09-01 Yury Gribov <y.gribov@samsung.com>
4521 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
4522 (build_check_stmt): Likewise.
4523 (instrument_strlen_call): Likewise.
4524 (asan_expand_check_ifn): Likewise and fix types.
4525 (maybe_cast_to_ptrmode): New function.
4527 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4529 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
4531 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
4533 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
4535 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
4537 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
4538 prefix to function labels when generating fast indirect calls.
4540 2014-08-30 David Malcolm <dmalcolm@redhat.com>
4544 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
4545 param back from rtx_insn * to rtx. Rename param from "label" to
4546 "label_or_return", reintroducing "label" as an rtx_insn * after
4547 we've ensured it's not a RETURN.
4548 (first_active_target_insn): Likewise for return type and param;
4549 add a checked cast to rtx_insn * once we've ensured "insn" is not
4551 (steal_delay_list_from_target): Convert param "pnew_thread" back
4552 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
4554 (own_thread_p): Convert param "thread" back from an rtx_insn * to
4555 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
4556 cast once we've established we're not dealing with a RETURN,
4557 renaming subsequent uses of "thread" to "thread_insn".
4558 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
4560 (follow_jumps): Convert return type and param "label" from
4561 rtx_insn * back to rtx. Move initialization of "value" to after
4562 the handling for ANY_RETURN_P, adding a checked cast there to
4563 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
4564 rename to "this_label_or_return", reintroducing "this_label" as
4565 an rtx_insn * once we've handled the case where it could be an
4567 (fill_slots_from_thread): Rename param "thread" to
4568 "thread_or_return", converting from an rtx_insn * back to an rtx.
4569 Reintroduce name "thread" as an rtx_insn * local with a checked
4570 cast once we've handled the case of it being an ANY_RETURN_P.
4571 Convert local "new_thread" from an rtx_insn * back to an rtx.
4572 Add a checked cast when assigning to "trial" from "new_thread".
4573 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
4574 checked cast to rtx_insn * from "new_thread" when invoking
4576 (fill_eager_delay_slots): Convert locals "target_label",
4577 "insn_at_target" from rtx_insn * back to rtx.
4578 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
4579 (relax_delay_slots): Convert locals "trial", "target_label" from
4580 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
4581 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
4582 invoking update_block.
4583 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
4584 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
4586 * resource.h (mark_target_live_regs): Undo erroneous conversion
4587 of second param of r214693, converting it back from rtx_insn * to
4588 rtx, since it could be a RETURN.
4590 * resource.c (find_dead_or_set_registers): Similarly, convert
4591 param "jump_target" back from an rtx_insn ** to an rtx *, as we
4592 could be writing back a RETURN. Rename local rtx_insn * "next" to
4593 "next_insn", and introduce "lab_or_return" as a local rtx,
4594 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
4595 (mark_target_live_regs): Undo erroneous conversion
4596 of second param of r214693, converting it back from rtx_insn * to
4597 rtx, since it could be a RETURN. Rename it from "target" to
4598 "target_maybe_return", reintroducing the name "target" as a local
4599 rtx_insn * with a checked cast, after we've handled the case of
4602 2014-08-29 DJ Delorie <dj@redhat.com>
4604 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
4605 pointer size up to a power of two.
4606 * defaults.h (DWARF2_ADDR_SIZE): Round up.
4607 (POINTER_SIZE_UNITS): New, rounded up value.
4608 * dwarf2asm.c (size_of_encoded_value): Use it.
4609 (dw2_output_indirect_constant_1): Likewise.
4610 * expmed.c (init_expmed_one_conv): We now know the sizes of
4612 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
4613 * optabs.c (expand_float): Use precision, not size.
4614 (expand_fix): Likewise.
4615 * simplify-rtx (simplify_unary_operation_1): Likewise.
4616 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4617 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
4618 (default_assemble_integer) Likewise.
4619 (dump_tm_clone_pairs): Likewise.
4620 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
4621 * var-tracking.c (adjust_mems): Allow partial-int modes also.
4622 (prepare_call_arguments): Likewise.
4623 * stor-layout.c (finalize_type_size): Preserve precision.
4624 (layout_type): Use precision, not size.
4626 * expr.c (convert_move): If the target has an explicit converter,
4629 2014-08-29 David Malcolm <dmalcolm@redhat.com>
4631 * gdbinit.in: Skip various inline functions in rtl.h when
4634 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
4637 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
4639 2014-08-29 Richard Biener <rguenther@suse.de>
4641 PR tree-optimization/62291
4642 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
4643 exactly the vector size needed and use quick_push.
4644 (phi_translate_1): Adjust comment.
4645 (valid_in_sets): Remove block argument and remove pointless
4647 (dependent_clean): Adjust for removal of block argument.
4649 (compute_antic_aux): Likewise.
4650 (compute_partial_antic_aux): Likewise.
4652 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
4653 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4654 Anna Tikhonova <anna.tikhonova@intel.com>
4655 Ilya Tocar <ilya.tocar@intel.com>
4656 Andrey Turetskiy <andrey.turetskiy@intel.com>
4657 Ilya Verbin <ilya.verbin@intel.com>
4658 Kirill Yukhin <kirill.yukhin@intel.com>
4659 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4661 * config/i386/sse.md
4662 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
4663 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
4664 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
4665 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
4667 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
4668 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4669 Anna Tikhonova <anna.tikhonova@intel.com>
4670 Ilya Tocar <ilya.tocar@intel.com>
4671 Andrey Turetskiy <andrey.turetskiy@intel.com>
4672 Ilya Verbin <ilya.verbin@intel.com>
4673 Kirill Yukhin <kirill.yukhin@intel.com>
4674 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4676 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
4677 * config/i386/sse.md
4678 (define_mode_iterator VI4_128_8_256): New.
4679 (define_mode_iterator VI2_128_4_256): Ditto.
4680 (define_mode_iterator PMOV_DST_MODE): Rename into
4681 (define_mode_iterator PMOV_DST_MODE_1): this.
4682 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
4683 Use PMOV_DST_MODE_1 mode iterator.
4684 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
4686 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
4688 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
4689 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
4690 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
4691 (define_mode_iterator PMOV_DST_MODE_2): New.
4692 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
4693 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
4694 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
4696 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
4697 (define_mode_attr pmov_dst_3): Ditto.
4698 (define_mode_attr pmov_dst_zeroed_3): Ditto.
4699 (define_mode_attr pmov_suff_3): Ditto.
4700 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
4701 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
4702 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
4703 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
4704 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
4705 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
4706 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
4707 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
4708 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
4709 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
4710 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
4711 (define_mode_attr pmov_dst_4): Ditto.
4712 (define_mode_attr pmov_dst_zeroed_4): Ditto.
4713 (define_mode_attr pmov_suff_4): Ditto.
4714 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
4715 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
4716 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
4717 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
4718 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
4719 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
4720 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
4721 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
4722 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
4723 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
4724 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
4726 2014-08-29 Richard Biener <rguenther@suse.de>
4728 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
4729 NON_LVALUE_EXPR in gimple.
4731 2014-08-29 Richard Biener <rguenther@suse.de>
4734 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
4735 from previous refactoring.
4736 (gimple_fold_builtin_strncpy): Likewise.
4738 2014-08-29 David Malcolm <dmalcolm@redhat.com>
4741 * function.c (assign_parm_setup_reg): Remove erroneous checked
4742 cast to rtx_insn * on result of gen_extend_insn in favor of
4743 introducing a new local rtx "pat".
4745 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4747 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
4749 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
4751 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4753 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
4754 (next_insn): Likewise.
4755 * emit-rtl.c (next_insn): Likewise.
4756 (previous_insn): Likewise.
4757 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
4758 "insn" and "next" from rtx to rtx_insn *.
4759 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
4760 "insn", "insn1", "vliw_start", "prologue_end_note",
4761 "last_insn_in_packet".
4763 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4765 * shrink-wrap.h (active_insn_between): Strengthen both params from
4767 * function.c (active_insn_between): Likewise.
4769 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4771 * genattr.c (main): When writing out insn-attr.h, strengthen param
4772 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
4773 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
4774 writing out the definition of dfa_clear_single_insn_cache to the
4775 generated insn-automata.c
4777 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4779 * resource.h (clear_hashed_info_for_insn): Strengthen param from
4781 (incr_ticks_for_insn): Likewise.
4782 (init_resource_info): Likewise.
4784 * resource.c (init_resource_info): Likewise.
4785 (clear_hashed_info_for_insn): Likewise.
4786 (incr_ticks_for_insn): Likewise.
4788 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
4790 (steal_delay_list_from_target): Use methods of "seq".
4791 (try_merge_delay_insns): Use methods of "merged_insns".
4792 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
4793 (reorg_redirect_jump): Likewise for param "jump".
4795 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4797 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
4799 * config/s390/s390.c (s390_split_branches): Eliminate top-level
4800 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
4802 (s390_mainpool_finish): In three places, split out a local rtx
4803 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
4804 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
4805 and split another local rtx "insn" out into rtx "pat" and
4807 * config/sh/sh.c (output_branchy_insn): Rather than working
4808 directly on operands[9], introduce local rtx_code_label *
4809 variables named "lab" in two places, working on them, and then
4810 assigning them to operands[9], so that the intervening operations
4811 are known by the type system to be on insns.
4813 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4815 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
4818 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
4819 in invocation of INSN_HAS_LOCATION.
4821 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4823 * config/rs6000/altivec.h (vec_xl): New #define.
4824 (vec_xst): Likewise.
4825 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
4826 (XXSPLTD_V2DI): Likewise.
4827 (DIV_V2DI): Likewise.
4828 (UDIV_V2DI): Likewise.
4829 (MUL_V2DI): Likewise.
4830 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4831 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
4832 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
4833 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
4834 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
4835 (UNSPEC_VSX_DIVSD): Likewise.
4836 (UNSPEC_VSX_DIVUD): Likewise.
4837 (UNSPEC_VSX_MULSD): Likewise.
4838 (vsx_mul_v2di): New insn-and-split.
4839 (vsx_div_v2di): Likewise.
4840 (vsx_udiv_v2di): Likewise.
4841 (vsx_xxspltd_<mode>): New insn.
4843 2014-08-28 David Malcolm <dmalcolm@redhat.com>
4845 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
4847 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
4848 (NEXT_INSN): Likewise.
4849 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
4850 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
4852 (no_labels_between_p): Likewise for both params.
4854 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
4855 cast when using NEXT_INSN on operands[2].
4856 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
4857 "insn" from rtx to rtx_insn *, adding a checked cast.
4858 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
4860 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
4862 (arc_text_label): Likewise for param "insn".
4863 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
4865 (arc_ccfsm_record_condition): Likewise for param "jump".
4866 (arc_text_label): Likewise for local "label".
4867 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
4868 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
4869 a method for typesafety. Add a checked cast.
4870 * config/arc/constraints.md (Clb): Add a checked cast when getting
4871 the CODE_LABEL from a LABEL_REF.
4872 * config/arm/arm.c (require_pic_register): Strengthen locals
4873 "seq", "insn" from rtx to rtx_insn *.
4874 (create_fix_barrier): Likewise for locals "selected", "next".
4875 (thumb1_reorg): Likewise for locals "prev", "insn".
4876 (arm_expand_prologue): Likewise for local "last".
4877 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
4879 (thumb2_output_casesi): Likewise for operands[2].
4880 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
4881 strengthen local "insn" from rtx to rtx_insn *.
4882 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
4883 type and param "insn".
4884 (find_prev_insn_start): Likewise.
4885 (hwloop_optimize): Likewise for locals "insn", "last_insn",
4887 (gen_one_bundle): Likewise for loal "t".
4888 (find_load): Likewise for param "insn".
4889 (workaround_speculation): Likewise for locals "insn", "next",
4890 "target", "next_tgt".
4891 * config/c6x/c6x.c (assign_reservations): Likewise for both params
4892 and for locals "insn", "within", "last".
4893 (count_unit_reqs): Likewise for params "head", "tail" and local
4895 (try_rename_operands): Likewise for params "head", "tail".
4896 (reshuffle_units): Likewise for locals "head", "tail", "insn".
4897 (struct c6x_sched_context): Likewise for fields
4898 "last_scheduled_insn", "last_scheduled_iter0".
4899 (init_sched_state): Replace NULL_RTX with NULL.
4900 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
4902 (undo_split_delayed_nonbranch): Likewise for param and for local
4904 (conditionalize_after_sched): Likewise for local "insn".
4905 (bb_earliest_end_cycle): Likewise.
4906 (filter_insns_above): Likewise for locals "insn", "next".
4907 (hwloop_optimize): Remove redundant checked cast.
4908 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
4909 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
4911 (cris_simple_epilogue): Likewise.
4912 (cris_expand_prologue): Likewise.
4913 (cris_expand_epilogue): Likewise.
4914 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
4915 local "insn" from rtx to rtx_insn *.
4916 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
4917 (struct frv_packet_group): Likewise for the elements within array
4918 fields "insns", "sorted", and for field "nop".
4919 (frv_packet): Likewise for the elements within array field
4921 (frv_add_insn_to_packet): Likewise for param "insn".
4922 (frv_insert_nop_in_packet): Likewise for param "insn" and local
4924 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
4925 (frv_sort_insn_group_1): Likewise for local "insn".
4926 (frv_optimize_membar_local): Likewise.
4927 (frv_align_label): Likewise for locals "x", "last", "barrier",
4929 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
4931 (ia64_sched_init): Likewise for local "insn".
4932 (scheduled_good_insn): Likewise for param "last".
4933 (struct _ia64_sched_context): Likewise for field
4934 "last_scheduled_insn".
4935 (ia64_init_sched_context): Replace NULL_RTX with NULL.
4936 (struct bundle_state): Likewise for field "insn".
4937 (issue_nops_and_insn): Likewise for param "insn".
4938 (get_next_important_insn): Likewise for return type and both
4940 (ia64_add_bundle_selector_before): Likewise for param "insn".
4941 (bundling): Likewise for params "prev_head_insn", "tail" and
4942 locals "insn", "next_insn", "b". Eliminate top-level local rtx
4943 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
4944 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
4945 Strengthen final param from rtx to rtx_insn *.
4946 (iq2000_move_1word): Likewise for second param.
4947 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
4948 param "cur_insn" and local "next_insn".
4949 (iq2000_move_1word): Likewise for param "insn".
4950 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
4951 casts when using NEXT_INSN on operands[1].
4952 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
4953 "insn" from rtx to rtx_insn *.
4954 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
4955 "x", introducing local rtx_insn * "insn" for when working with the
4956 CODE_LABEL of the LABEL_REF.
4957 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
4959 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
4961 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
4963 (conditionalize_block): Likewise for return type and param.
4964 (mcore_is_dead): Likewise for param "first" and local "insn".
4965 (emit_new_cond_insn): Likewise for return type.
4966 (conditionalize_block): Likewise for return type, param, and
4967 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
4969 (conditionalize_optimization): Likewise for local "insn".
4970 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
4972 * config/microblaze/microblaze.md: Add checked casts when using
4974 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
4975 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
4976 and rtx_insn * "insn".
4977 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
4978 checked cast when using NEXT_INSN on operands[2].
4979 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
4980 local "insn" from rtx to rtx_insn *.
4981 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
4983 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
4984 Add a checked cast when using NEXT_INSN on operands[1].
4985 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
4987 (pa_output_cbranch): Likewise for final param.
4988 (pa_output_lbranch): Likewise for second param.
4989 (pa_output_bb): Likewise for third param.
4990 (pa_output_bvb): Likewise.
4991 (pa_output_dbra): Likewise for second param.
4992 (pa_output_movb): Likewise.
4993 (pa_output_parallel_movb): Likewise.
4994 (pa_output_parallel_addb): Likewise.
4995 (pa_output_millicode_call): Likewise for first param.
4996 (pa_output_mul_insn): Likewise for second param.
4997 (pa_output_div_insn): Likewise for third param.
4998 (pa_output_mod_insn): Likewise for second param.
4999 (pa_jump_in_call_delay): Likewise for param.
5000 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
5001 (pa_output_div_insn): Likewise.
5002 (pa_output_mod_insn): Likewise.
5003 (pa_output_cbranch): Likewise.
5004 (pa_output_lbranch): Likewise.
5005 (pa_output_bb): Likewise.
5006 (pa_output_bvb): Likewise.
5007 (pa_output_dbra): Likewise.
5008 (pa_output_movb): Likewise.
5009 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
5010 to simplify and for typesafety.
5011 (pa_output_call): Use method of rtx_sequence *.
5012 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
5013 (pa_jump_in_call_delay): Likewise.
5014 (pa_output_parallel_movb): Likewise.
5015 (pa_output_parallel_addb): Likewise.
5016 (pa_following_call): Likewise.
5017 (pa_combine_instructions): Likewise for locals "anchor",
5019 (pa_can_combine_p): Likewise for params "anchor", "floater" and
5020 locals "start", "end".
5021 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
5022 param "insn" and local "local_insn".
5023 (picochip_final_prescan_insn): Likewise for local "local_insn".
5024 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
5026 (uses_TOC): Likewise.
5027 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
5028 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
5029 splitting out to more tightly-scoped locals, 3 as rtx and one as
5031 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
5033 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
5035 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
5037 (fixup_addr_diff_vecs): Likewise.
5038 (reg_unused_after): Likewise for param 2.
5039 (sh_can_redirect_branch): Likewise for both params.
5040 (check_use_sfunc_addr): Likewise for param 1.
5041 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
5042 (find_barrier): Likewise for local "last_got".
5043 (gen_block_redirect): Likewise for return type, param "jump" and
5044 locals "prev", "scan", "next", "insn".
5045 (struct far_branch): Likewise for fields "near_label",
5046 "insert_place", "far_label".
5047 (gen_far_branch): Likewise for local "jump".
5048 (fixup_addr_diff_vecs): Likewise for param "first" and locals
5050 (barrier_align): Likewise for param and for locals "prev", "x".
5051 Introduce local rtx_sequence * "prev_seq" and use insn method for
5052 typesafety and clarity.
5053 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
5054 (get_dest_uid): Likewise for local "dest".
5055 (split_branches): Likewise for locals "next", "beyond", "label",
5056 "block", "far_label". Add checked casts when assigning to
5057 bp->far_label and "far_label".
5058 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
5059 (sequence_insn_p): Likewise.
5060 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
5061 more loop-scoped rtx "insn" when walking LABEL_REFS.
5062 (sh_can_redirect_branch): Strengthen both params from rtx to
5064 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
5065 new local rtx_sequence * "seq" via a dyn_cast, and use a method
5066 for clarity and typesafety.
5067 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
5068 "insn" from rtx to rtx_insn *.
5069 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
5070 when using NEXT_INSN on the CODE_LABEL in operands[2].
5071 (define_insn "casesi_worker_2"): Likewise.
5072 (define_insn "casesi_shift_media"): Likewise.
5073 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
5075 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
5076 Strengthen field "insn" from rtx to rtx_insn *.
5077 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
5078 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
5079 param "start_insn" and local "start_insn".
5080 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
5082 (find_set_of_reg_bb): Likewise for param "insn".
5083 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
5084 (trace_reg_uses): Likewise for param "start_insn".
5085 (sh_treg_combine::cbranch_trace): Likewise for field
5087 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
5089 (sh_treg_combine::record_set_of_reg): Likewise for param
5090 "start_insn" and local "i".
5091 (sh_treg_combine::can_remove_cstore): Likewise for local
5093 (sh_treg_combine::try_optimize_cbranch): Likewise for param
5095 (sh_treg_combine::execute): Likewise for local "i".
5096 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
5098 (sparc_check_64): Likewise for second param.
5099 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
5100 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
5101 dyn_cast, using its insn method for typesafety and clarity.
5102 (empty_delay_slot): Strengthen param "insn" from rtx to
5104 (set_extends): Likewise.
5105 (sparc_check_64): Likewise.
5106 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
5107 for locals "seq", "last_insn".
5108 (combine_bnp): Likewise for param "insn".
5109 (xstormy16_reorg): Likewise for local "insn".
5110 * config/v850/v850.c (substitute_ep_register): Likewise for params
5111 "first_insn", "last_insn" and local "insn".
5112 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
5113 elements of "regs" array, and local "insn".
5114 * except.c (emit_note_eh_region_end): Likewise for param "insn".
5115 * final.c (final_sequence): Strengthen this global from rtx to
5117 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
5119 (final_scan_insn): Update assignment to "final_sequence" to be
5120 from "seq", the cast version of "body", for type-safety.
5121 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
5122 "insns" from rtx to rtx_insn *.
5123 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
5124 * genattr.c (main): When writing out generated insn-attr.h,
5125 strengthen params 1 and 3 of eligible_for_delay,
5126 eligible_for_annul_true, eligible_for_annul_false from rtx to
5128 * genattrtab.c (write_eligible_delay): Likewise when writing out
5129 generated insn-attrtab.c; also local "insn" the generated
5131 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
5133 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
5134 "start_label" from rtx to rtx_insn *.
5135 * ira.c (decrease_live_ranges_number): Likewise for local "p".
5136 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
5137 "insns" and local "insn".
5138 (validate_equiv_mem): Likewise for param "start" and local "insn".
5139 (memref_used_between_p): Likewise for params "start", "end" and
5141 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
5143 * loop-doloop.c (doloop_optimize): Within region guarded by
5144 INSN_P (doloop_pat), introduce a new local rtx_insn *
5145 "doloop_insn" via a checked cast, and use it for typesafety,
5146 eventually writing the value back into doloop_pat.
5147 * output.h (final_sequence): Strengthen this global from rtx to
5149 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
5150 reintroducing "insn" as an rtx_insn * via a checked cast.
5151 Strengthen param "attempt" and local "new_insn"from rtx to
5153 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
5155 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
5156 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
5157 "p" in favor of more tightly-scoped replacements, sometimes rtx
5158 and sometimes rtx_insn *, as appropriate.
5159 (delete_output_reload): Eliminate top-level rtx "i1", splitting
5160 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
5161 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
5162 local "trial" from rtx to rtx_insn *.
5163 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
5164 rtx to rtx_insn *. Strenghten local "pat" from rtx to
5165 rtx_sequence * and use methods for clarity and typesafety.
5166 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
5167 rtx to rtx_insn *. Strenghten local "li" from rtx to
5168 rtx_insn_list * and use its methods for clarity and typesafety.
5169 (steal_delay_list_from_target): Strengthen param "insn" from rtx
5171 (steal_delay_list_from_fallthrough): Likewise.
5172 (try_merge_delay_insns): Likewise for param "thread" and locals
5173 "trial", "next_trial", "delay_insn".
5174 (redundant_insn): Likewise for param "target" and local "trial".
5175 (own_thread_p): Likewise for param "thread" and locals
5176 "active_insn", "insn".
5177 (get_label_before): Likewise for param "insn".
5178 (fill_simple_delay_slots): Likewise for local "new_label"; use
5179 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
5180 (label_before_next_insn): Strengthen return type and local "insn"
5181 from rtx to rtx_insn *.
5182 (relax_delay_slots): Likewise for locals "other", "tmp".
5183 (make_return_insns): Likewise for param "first" and locals "insn",
5184 "jump_insn", "prev". Move declaration of "pat" to its assignment
5185 and strengthen from rtx to rtx_sequence *. Use its methods for
5186 clarity and typesafety.
5187 * rtlanal.c (no_labels_between_p): Strengthen params from
5188 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
5190 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
5191 from const_rtx to const rtx_insn *.
5192 (reg_set_between_p): Rename param "from_insn" to
5193 "uncast_from_insn", and reintroduce "from_insn" as a
5194 const rtx_insn * via a checked cast.
5195 (modified_between_p): Likewise for param "start" as "uncast_start".
5196 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
5197 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
5198 "tmp", head" from rtx to rtx_insn *.
5199 (recompute_rev_top_order): Likewise for local "insn".
5200 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
5201 * store-motion.c (build_store_vectors): Likewise for local "insn".
5202 Strengthen local "st" from rtx to rtx_insn_list * and use methods
5203 for clarity and typesafety.
5204 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
5206 (computation_cost): Likewise for local "seq".
5207 (get_address_cost): Likewise.
5209 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5211 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
5213 (label_is_jump_target_p): Likewise for second param.
5215 * rtlanal.c (tablejump_p): Likewise for param "insn".
5216 (label_is_jump_target_p): Likewise for param "jump_insn".
5218 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5220 * rtl.h (find_first_parameter_load): Strengthen return type and
5221 both params from rtx to rtx_insn *.
5222 * rtlanal.c (find_first_parameter_load): Strengthen return type,
5223 both params and locals "before", "first_set" from rtx to
5224 rtx_insn *. Remove now-redundant cast.
5225 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
5227 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5229 * rtl.h (find_last_value): Delete.
5230 * rtlanal.c (find_last_value): Delete.
5232 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5234 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
5235 from rtx to rtx_insn *.
5236 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
5237 rtx "note" with new local rtx_insn * "new_head" when calculating
5238 head insn of new basic block.
5239 * combine.c (combine_split_insns): Strengthen return type and local
5240 "ret" from rtx to rtx_insn *.
5241 (likely_spilled_retval_p): Likewise for locals "use" and "p".
5242 (try_combine): Eliminate local "m_split", splitting into new
5243 locals "m_split_insn" and "m_split_pat".
5244 (find_split_point): Strengthen local "seq" from rtx into
5246 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
5247 locals "label", "branch".
5248 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
5250 (define_expand "umulsi3_highpart"): Likewise for local "insn".
5251 * dse.c (note_add_store_info): Likewise for fields "first",
5253 (note_add_store): Likewise for local "insn".
5254 (emit_inc_dec_insn_before): Likewise for locals "insn",
5256 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
5257 (replace_read): Likewise for locals "insns", "this_insn".
5258 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
5259 (notice_eh_throw): Likewise for param "insn".
5260 (before_next_cfi_note): Likewise for return type, param, and local
5262 (connect_traces): Likewise for local "note".
5263 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
5264 (verify_rtl_sharing): Likewise.
5265 (unshare_all_rtl_in_chain): Likewise for param "insn".
5266 (get_first_nonnote_insn): Likewise for local "insn".
5267 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
5268 "seq" and use its methods to clarify things.
5269 (next_insn): Strengthen return type from rtx to rtx_insn *.
5270 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
5271 local rtx_insn * using a checked cast, dropping a checked cast
5272 made redundant by this change. Use a cast to and method of
5273 rtx_sequence to clarify the code.
5274 (previous_insn): Rename param "insn" to "uncast_insn" and
5275 reintroduce "insn" as a local rtx_insn * using a checked cast,
5276 dropping a checked cast made redundant by this change. Use a cast
5277 to and method of rtx_sequence to clarify the code.
5278 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
5279 reintroduce "insn" as a local rtx_insn * using a checked cast,
5280 dropping a checked cast made redundant by this change.
5281 (next_nonnote_insn_bb): Likewise.
5282 (prev_nonnote_insn): Likewise.
5283 (prev_nonnote_insn_bb): Likewise.
5284 (next_nondebug_insn): Likewise.
5285 (prev_nondebug_insn): Likewise.
5286 (next_nonnote_nondebug_insn): Likewise.
5287 (prev_nonnote_nondebug_insn): Likewise.
5288 (next_real_insn): Likewise.
5289 (prev_real_insn): Likewise.
5290 (next_active_insn): Likewise.
5291 (prev_active_insn): Likewise.
5292 (next_cc0_user): Likewise. Use rtx_sequence and a method for
5294 (prev_cc0_setter): Likewise.
5295 (try_split): Rename param "trial" to "uncast_trial" and
5296 reintroduce "insn" as a local rtx_insn * using a checked cast,
5297 dropping checked casts made redundant by this change.
5298 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
5300 (remove_insn): Rename param "insn" to "uncast_insn" and
5301 reintroduce "insn" as a local rtx_insn * using a checked cast.
5302 (emit_pattern_after_setloc): Likewise for param "after", as
5304 (emit_pattern_after): Likewise. Strengthen local "prev" from
5306 (emit_pattern_before_setloc): Rename param "before" to
5307 "uncast_before" and reintroduce "before" as a local rtx_insn *
5308 using a checked cast. Strengthen locals "first", "last" from
5310 (emit_pattern_before): Likewise rename/cast param "before" to
5311 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
5312 * except.c (copy_reg_eh_region_note_forward): Strengthen param
5313 "first" and local "insn" from rtx to rtx_insn *.
5314 (copy_reg_eh_region_note_backward): Likewise for param "last"
5316 * expr.c (fixup_args_size_notes): Rename param "last" to
5317 "uncast_last" and reintroduce "last" as a local rtx_insn *
5318 using a checked cast. Strengthen local "insn" from rtx to
5320 * function.c (set_insn_locations): Strengthen param "insn" from
5322 (record_insns): Likewise for param "insns" and local "tmp".
5323 (active_insn_between): Rename param "tail" to
5324 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
5325 using a checked cast.
5326 (thread_prologue_and_epilogue_insns): Split out top-level local
5327 rtx "seq" into three different rtx_insn * locals. Strengthen
5328 local "prologue_seq" from rtx to rtx_insn *.
5329 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
5330 from rtx to rtx_insn *.
5331 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
5332 (priority): Likewise for locals "prev_first", "twin".
5333 (setup_insn_max_reg_pressure): Likewise for param "after".
5334 (sched_setup_bb_reg_pressure_info): Likewise.
5335 (no_real_insns_p): Strengthen params from const_rtx to
5337 (schedule_block): Strengthen local "next_tail" from rtx to
5339 * ifcvt.c (find_active_insn_before): Strengthen return type and
5340 param "insn" from rtx to rtx_insn *.
5341 (find_active_insn_after): Likewise.
5342 (cond_exec_process_insns): Likewise for param "start" and local "insn".
5343 (cond_exec_process_if_block): Likewise for locals "then_start",
5344 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
5345 (noce_process_if_block): Likewise for local "jump".
5346 (merge_if_block): Likewise for two locals named "end".
5347 (cond_exec_find_if_block): Likewise for local "last_insn".
5348 * jump.c (delete_related_insns): Rename param "insn" to
5349 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
5350 checked cast. Strengthen local "p" from rtx to rtx_insn *.
5351 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
5353 (split_reg): Likewise.
5354 * lra.c (lra_process_new_insns): Likewise.
5355 * modulo-sched.c (permute_partial_schedule): Strengthen param
5356 "last" from rtx to rtx_insn *.
5357 * optabs.c (add_equal_note): Likewise for param "insns" and local
5359 (expand_binop_directly): Add checked casts to rtx_insn * within
5360 NEXT_INSN (pat) uses.
5361 (expand_unop_direct): Likewise.
5362 (maybe_emit_unop_insn): Likewise.
5363 * recog.c (peep2_attempt): Strengthen locals "last",
5364 "before_try", "x" from rtx to rtx_insn *.
5365 * reorg.c (optimize_skip): Strengthen return type and local
5366 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
5367 and locals "trial", "next_trial" from rtx to rtx_insn *.
5368 * resource.c (next_insn_no_annul): Strengthen return type and
5369 param "insn" from rtx to rtx_insn *. Use a cast to and method of
5370 rtx_sequence to clarify the code.
5371 (mark_referenced_resources): Add a checked cast to rtx_insn *
5372 within PREV_INSN (x).
5373 (find_dead_or_set_registers): Strengthen return type, param
5374 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
5375 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
5377 (mark_target_live_regs): Strengthen params "insns" and "target",
5378 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
5379 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
5381 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
5382 from rtx to rtx_insn *.
5383 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
5384 from rtx to rtx_insn *.
5385 (copy_reg_eh_region_note_backward): Likewise.
5386 (unshare_all_rtl_in_chain): Likewise for sole param.
5387 (dump_rtl_slim): Strengthen second and third params from const_rtx
5388 to const rtx_insn *.
5389 * sched-deps.c (sched_free_deps): Strengthen params "head" and
5390 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
5391 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
5392 "next_tail" from rtx to rtx_insn *.
5393 (begin_move_insn): Likewise for local "next".
5394 * sched-int.h (sched_free_deps): Likewise for first and second
5396 (no_real_insns_p): Strengthen both params from const_rtx to
5398 (sched_setup_bb_reg_pressure_info): Strengthen second params from
5400 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
5402 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
5403 and locals "insn", "tail" from const_rtx to const rtx_insn *.
5404 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
5406 (debug_rtl_slim): Strengthen params "first" and "last" from
5407 const_rtx to const rtx_insn *.
5408 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
5409 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
5410 (convert_to_simple_return): Likewise for param "returnjump".
5411 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
5413 (convert_to_simple_return): Likewise for param "returnjump".
5414 * valtrack.c (propagate_for_debug): Likewise for params
5416 * valtrack.h (propagate_for_debug): Likewise for second param.
5418 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5420 * output.h (insn_current_reference_address): Strengthen param
5421 from rtx to rtx_insn *.
5422 * final.c (insn_current_reference_address): Likewise.
5424 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5426 * basic-block.h (inside_basic_block_p): Strengthen param from
5427 const_rtx to const rtx_insn *.
5428 * cfgbuild.c (inside_basic_block_p): Likewise.
5430 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5432 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
5434 (get_trace_info): Likewise for param "insn".
5435 (save_point_p): Likewise.
5436 (maybe_record_trace_start): Likewise for both params.
5437 (maybe_record_trace_start_abnormal): Likewise.
5438 (create_trace_edges): Likewise for sole param and for three of the
5440 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
5441 to rtx_insn *, and update a call to pat->element to pat->insn.
5443 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5445 * function.h (struct expr_status): Convert field "x_forced_labels"
5446 from rtx_expr_list * to rtx_insn_list *.
5448 * cfgbuild.c (make_edges): Convert local "x" from an
5449 rtx_expr_list * to an rtx_insn_list *, replacing use of
5450 "element" method with "insn" method.
5451 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
5452 * except.c (sjlj_emit_dispatch_table): Replace use of
5453 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
5455 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
5456 rtx_expr_list * to an rtx_insn_list *, replacing use of
5457 "element" method with "insn" method.
5458 * reload1.c (set_initial_label_offsets): Likewise for local "x".
5459 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
5460 rtx_insn *, adding a checked cast. Replace use of
5461 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
5463 (expand_label): Likewise for local "label_r".
5465 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5467 * function.h (struct rtl_data): Convert field
5468 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
5470 * rtl.h (remove_node_from_insn_list): New prototype.
5472 * builtins.c (expand_builtin): When prepending to
5473 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
5475 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
5476 to rtx_insn_list *, and use its "insn" method rather than
5478 * cfgrtl.c (delete_insn): Use new function
5479 remove_node_from_insn_list rather than
5480 remove_node_from_expr_list.
5481 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
5482 to rtx_insn_list *, and use its "insn" method rather than
5484 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
5485 * reload1.c (set_initial_label_offsets): Likewise for local "x".
5486 * rtlanal.c (remove_node_from_insn_list): New function, adapted
5487 from remove_node_from_expr_list.
5488 * stmt.c (expand_label): When prepending to
5489 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
5492 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5494 * function.h (struct rtl_data): Strengthen fields "x_return_label"
5495 and "x_naked_return_label" from rtx to rtx_code_label *.
5497 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5499 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
5500 (SET_NEXT_INSN): Likewise.
5501 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
5503 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
5504 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
5505 to split out the SEQUENCE from local "bundle", strengthening the
5506 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
5507 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
5508 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
5509 and the type of the elements of the "slot" array from rtx to
5511 (reorg_split_calls): Likewise for locals "insn" and "next", and
5512 the type of the elements of the "slot" array.
5514 * config/frv/frv.c (frv_nops): Likewise for the elements of this
5516 (frv_function_prologue): Likewise for locals "insn", "next",
5518 (frv_register_nop): Introduce a local "nop_insn" to be the
5519 rtx_insn * containing rtx "nop".
5521 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
5522 used as an insn and sometimes as a pattern, so rename it to
5523 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
5524 using it where dealing with the core insn.
5526 * config/picochip/picochip.c (reorder_var_tracking_notes):
5527 Strengthen locals "insn", "next", "last_insn", "queue",
5528 "next_queue", "prev" from rtx to rtx_insn *.
5530 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
5531 the second param is an rtx_insn ** rather than an rtx **.
5532 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
5533 from rtx to rtx_sequence *, and introduce local named "sequence",
5534 using methods of rtx_sequence to clarify the code.
5535 (remove_insn): Introduce local rtx_sequence * named "sequence" and
5537 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
5538 Rename param "after" to "uncast_after", reintroducing "after" as a
5539 local rtx_insn * with a checked cast.
5540 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
5541 reintroducing "after" as a local rtx_insn * with a checked cast.
5542 Strengthen local "last" from rtx to rtx_insn * and remove the
5543 now-redundant checked casts.
5544 (copy_delay_slot_insn): Strengthen return type and param from rtx
5547 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
5548 "last" from rtx to rtx_insn *.
5550 2014-08-28 David Malcolm <dmalcolm@redhat.com>
5552 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
5553 param from rtx to rtx_insn *.
5555 * emit-rtl.c (copy_delay_slot_insn): Likewise.
5557 * reorg.c (skip_consecutive_labels): Strengthen return type, param
5558 and local "insn" from rtx to rtx_insn *.
5559 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
5560 (unfilled_slots_next): Likewise.
5561 (function_return_label): Strengthen from rtx to rtx_code_label *.
5562 (function_simple_return_label): Likewise.
5563 (first_active_target_insn): Strengthen return type and param from
5565 (find_end_label): Strengthen return type from rtx to
5566 rtx_code_label *; strengthen locals as appropriate.
5567 (emit_delay_sequence): Strengthen return type, param "insn" and
5568 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
5569 and local "li" from rtx to rtx_insn_list *, using methods of
5570 rtx_insn_list for clarity and typesafety.
5571 (add_to_delay_list): Strengthen return type and param "insn" from
5572 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
5573 rtx_insn_list * and use methods of rtx_insn_list.
5574 (delete_from_delay_slot): Strengthen return type, param "insn",
5575 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
5576 Strengthen local "seq" from rtx to rtx_sequence *, and local
5577 "delay_list" from rtx to rtx_insn_list *, using methods of
5578 rtx_sequence for clarity and type-safety.
5579 (delete_scheduled_jump): Add checked cast when invoking
5580 delete_from_delay_slot. Strengthen local "trial" from rtx to
5582 (optimize_skip): Strengthen return type and local "delay_list"
5583 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
5585 (steal_delay_list_from_target): Strengthen return type, param
5586 "delay_list" and local "new_delay_list" from rtx to
5587 rtx_insn_list *. Strengthen param "seq" from rtx to
5588 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
5590 Split out local "temp" into multiple more-tightly scoped locals:
5591 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
5592 of rtx_insn_list and rtx_sequence for clarity and typesafety.
5593 Strengthen locals named "trial" from rtx to rtx_insn *.
5594 (steal_delay_list_from_fallthrough): Strengthen return type and
5595 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
5596 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
5597 Strengthen local "trial" from rtx to rtx_insn *.
5598 (try_merge_delay_insns): Strength local "merged_insns" from rtx
5599 to rtx_insn_list * and use its methods. Strengthen local "pat"
5600 from rtx to rtx_sequence * and use its methods. Strengthen locals
5601 "dtrial" and "new_rtx" from rtx to rtx_insn *.
5602 (get_label_before): Strengthen return type and local "label" from
5604 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
5605 "next_trial", "next", prev". Strengthen local "delay_list" from
5606 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
5608 (follow_jumps): Strengthen return type, param "label" and locals
5609 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
5610 (fill_slots_from_thread): Strengthen return type, param
5611 "delay_list" from rtx to rtx_insn_list *. Strengthen params
5612 "insn", "thread", "opposite_thread" and locals "new_thread",
5613 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
5614 "sequence" from a checked cast to rtx_sequence so that we can call
5615 steal_delay_list_from_target and steal_delay_list_from_fallthrough
5616 with an rtx_sequence *.
5617 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
5618 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
5619 Strengthen local "delay_list" from rtx to rtx_insn_list *.
5620 (relax_delay_slots): Strengthen param "first" and locals "insn",
5621 "next", "trial", "delay_insn", "target_label" from rtx to
5622 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
5623 Introduce a local "trial_seq" for PATTERN (trial) of type
5624 rtx_sequence *, in both cases using methods of rtx_sequence.
5625 (dbr_schedule): Strengthen param "first" and locals "insn",
5626 "next", "epilogue_insn" from rtx to rtx_insn *.
5628 2014-08-28 Richard Biener <rguenther@suse.de>
5630 PR tree-optimization/62283
5631 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5632 Do not peel loops for alignment where the vector loop likely
5633 doesn't run at least VF times.
5635 2014-08-28 Bin Cheng <bin.cheng@arm.com>
5637 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
5638 important_candidates. Consider all important candidates if
5639 IVS doesn't give any result. Remove check on ivs->upto.
5640 (try_add_cand_for): Call iv_ca_add_use only once.
5642 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
5643 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5644 Anna Tikhonova <anna.tikhonova@intel.com>
5645 Ilya Tocar <ilya.tocar@intel.com>
5646 Andrey Turetskiy <andrey.turetskiy@intel.com>
5647 Ilya Verbin <ilya.verbin@intel.com>
5648 Kirill Yukhin <kirill.yukhin@intel.com>
5649 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5651 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
5652 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
5654 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
5655 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
5656 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
5657 (define_insn "*mul<mode>3"): Add EVEX version.
5659 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
5660 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5661 Anna Tikhonova <anna.tikhonova@intel.com>
5662 Ilya Tocar <ilya.tocar@intel.com>
5663 Andrey Turetskiy <andrey.turetskiy@intel.com>
5664 Ilya Verbin <ilya.verbin@intel.com>
5665 Kirill Yukhin <kirill.yukhin@intel.com>
5666 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5668 * config/i386/sse.md
5669 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
5670 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
5671 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
5672 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
5673 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
5674 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
5675 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
5676 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
5677 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
5678 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
5679 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
5680 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
5681 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
5682 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
5683 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
5684 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
5686 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
5687 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5688 Anna Tikhonova <anna.tikhonova@intel.com>
5689 Ilya Tocar <ilya.tocar@intel.com>
5690 Andrey Turetskiy <andrey.turetskiy@intel.com>
5691 Ilya Verbin <ilya.verbin@intel.com>
5692 Kirill Yukhin <kirill.yukhin@intel.com>
5693 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5695 * config/i386/sse.md
5696 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
5697 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
5698 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
5700 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
5701 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5702 Anna Tikhonova <anna.tikhonova@intel.com>
5703 Ilya Tocar <ilya.tocar@intel.com>
5704 Andrey Turetskiy <andrey.turetskiy@intel.com>
5705 Ilya Verbin <ilya.verbin@intel.com>
5706 Kirill Yukhin <kirill.yukhin@intel.com>
5707 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5709 * config/i386/sse.md
5710 (define_mode_iterator VI128_256): New.
5711 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
5713 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
5714 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5715 Anna Tikhonova <anna.tikhonova@intel.com>
5716 Ilya Tocar <ilya.tocar@intel.com>
5717 Andrey Turetskiy <andrey.turetskiy@intel.com>
5718 Ilya Verbin <ilya.verbin@intel.com>
5719 Kirill Yukhin <kirill.yukhin@intel.com>
5720 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5722 * config/i386/sse.md
5723 (define_mode_iterator VI8_256_512): New.
5724 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
5726 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
5727 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
5729 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
5731 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5733 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
5734 pointer to the cumulative reloc value and return the value for
5736 (compute_reloc_for_rtx): Take a const_rtx. Call
5737 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
5738 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
5739 for_each_rtx for the CONST case.
5741 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5743 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
5744 (mark_constants_in_pattern): ...this new function to iterate over
5746 (mark_constants): Update accordingly.
5748 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5750 * varasm.c: Include rtl-iter.h.
5751 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
5752 Remove the pointer to the cumulative hashval_t and just return
5753 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
5754 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
5755 Accumulate the hashval_ts here instead of const_rtx_hash_1.
5757 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5759 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
5760 Give real type of data parameter. Remove return value.
5761 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
5762 to iterate over subrtxes.
5764 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5766 * var-tracking.c (use_narrower_mode_test): Turn from being a
5767 for_each_rtx callback to being a function that examines each
5769 (adjust_mems): Update accordingly.
5771 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5773 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
5774 callback to being a function that examines each subrtx itself.
5775 Remove handling of null rtxes.
5776 (add_uses): Update accordingly.
5778 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5780 * var-tracking.c: Include rtl-iter.h.
5781 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
5782 to being a function that examines each subrtx itself.
5783 (use_type): Update accordingly.
5785 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5787 * store-motion.c: Include rtl-iter.h.
5788 (extract_mentioned_regs_1): Delete.
5789 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
5790 for_each_rtx to iterate over subrtxes.
5792 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5794 * sel-sched.c: Include rtl-iter.h
5795 (count_occurrences_1): Delete.
5796 (count_occurrences_equiv): Turn rtxes into const_rtxes.
5797 Use FOR_EACH_SUBRTX rather than for_each_rtx.
5799 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5801 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
5802 * rtlanal.c (tls_referenced_p_1): Delete.
5803 (tls_referenced_p): Take a const_rtx rather than an rtx.
5804 Use FOR_EACH_SUBRTX rather than for_each_rtx.
5806 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5808 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
5809 (for_each_inc_dec): Take an rtx rather than an rtx *.
5810 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
5811 (cselib_record_sets): Likewise.
5812 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
5813 (check_for_inc_dec): Likewise.
5814 * rtlanal.c (for_each_inc_dec_ops): Delete.
5815 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
5816 rather than a pointer to the memory address. Replace
5817 for_each_inc_dec_ops argument with separate function and data
5818 arguments. Abort on non-autoinc addresses.
5819 (for_each_inc_dec_find_mem): Delete.
5820 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
5821 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
5823 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5825 * rtl.h (find_all_hard_regs): Declare.
5826 * rtlanal.c (find_all_hard_regs): New function.
5827 (record_hard_reg_uses_1): Delete.
5828 (record_hard_reg_uses): Use find_all_hard_regs.
5830 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5832 * rtl.h (replace_label_data): Delete.
5833 (replace_label): Take the old label, new label and update-nuses flag
5834 as direct arguments. Return void.
5835 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
5836 * rtlanal.c (replace_label): Update interface as above. Handle
5837 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
5838 iterator. Use FOR_EACH_SUBRTX_PTR.
5840 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5842 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
5843 with const_rtx parameters.
5844 * varasm.c (get_pool_constant): Likewise.
5845 * rtlanal.c (rtx_referenced_p_1): Delete.
5846 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
5847 Assert that the rtx we're looking for is nonnull. Allow searches
5848 for constant pool SYMBOL_REFs.
5850 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5852 * reload1.c: Include rtl-iter.h.
5853 (note_reg_elim_costly): Turn from being a for_each_rtx callback
5854 to being a function that examines each subrtx itself.
5855 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
5857 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5859 * regcprop.c (cprop_find_used_regs_1): Delete.
5860 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
5862 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5864 * regcprop.c: Include rtl-iter.h.
5865 (kill_value): Take a const_rtx.
5866 (kill_autoinc_value): Turn from being a for_each_rtx callback
5867 to being a function that examines each subrtx itself.
5868 (copyprop_hardreg_forward_1): Update accordingly.
5870 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5872 * reg-stack.c: Include rtl-iter.h.
5873 (subst_stack_regs_in_debug_insn): Delete.
5874 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
5875 instead of for_each_rtx.
5877 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5879 * lower-subreg.c (find_decomposable_subregs): Turn from being
5880 a for_each_rtx callback to being a function that examines each
5881 subrtx itself. Remove handling of null rtxes.
5882 (decompose_multiword_subregs): Update accordingly.
5884 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5886 * lower-subreg.c (adjust_decomposed_uses): Delete.
5887 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
5888 Remove handling of null rtxes.
5890 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5892 * lower-subreg.c: Include rtl-iter.h.
5893 (resolve_subreg_use): Turn from being a for_each_rtx callback
5894 to being a function that examines each subrtx itself. Remove
5895 handling of null rtxes.
5896 (resolve_reg_notes, resolve_simple_move): Update accordingly.
5897 (decompose_multiword_subregs): Likewise.
5899 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5901 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
5902 to being a function that examines each subrtx itself.
5903 (simplify_using_condition, simplify_using_initial_values): Update
5906 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5908 * loop-iv.c: Include rtl-iter.h.
5909 (find_single_def_src): New function.
5910 (replace_single_def_regs): Turn from being a for_each_rtx callback
5911 to being a function that examines each subrtx itself.
5912 (replace_in_expr, simplify_using_initial_values): Update accordingly.
5914 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5916 * jump.c (eh_returnjump_p_1): Delete.
5917 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
5918 Remove handling of null rtxes.
5920 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5922 * jump.c: Include rtl-iter.h.
5923 (returnjump_p_1): Delete.
5924 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
5925 Remove handling of null rtxes.
5927 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5929 * ira.c: Include rtl-iter.h.
5930 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
5931 to being a function that examines each subrtx itself. Remove
5932 handling of null rtxes.
5933 (update_equiv_regs): Update call accordingly.
5935 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5937 * fwprop.c: Include rtl-iter.h.
5938 (varying_mem_p): Turn from being a for_each_rtx callback to being
5939 a function that examines each subrtx itself.
5940 (propagate_rtx): Update accordingly.
5942 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5944 * function.c: Include rtl-iter.h
5945 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
5946 callback to being a function that examines each subrtx itself.
5947 Return the changed flag.
5948 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
5949 (instantiate_virtual_regs): Update calls accordingly.
5951 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5953 * final.c: Include rtl-iter.h.
5954 (mark_symbol_ref_as_used): Delete.
5955 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
5958 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5960 * emit-rtl.c: Include rtl-iter.h.
5961 (find_auto_inc): Turn from being a for_each_rtx callback to being
5962 a function that examines each subrtx itself. Assume the first operand
5963 to an RTX_AUTOINC is the automodified register.
5964 (try_split): Update call accordingly.
5966 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5968 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
5969 Return a bool, inverting the result so that 0/false means "not ok".
5970 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
5971 subrtxes of a CONST.
5972 (mem_loc_descriptor, add_const_value_attribute)
5973 (resolve_addr_in_expr): Update calls accordingly.
5975 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5977 * dwarf2out.c: Include rtl-iter.h.
5978 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
5979 Remove unused data parameter. Return a bool, inverting the result
5980 so that 0/false means "not ok".
5981 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
5982 instead of for_each_rtx.
5984 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5986 * dse.c: Include rtl-iter.h.
5987 (check_mem_read_rtx): Change void * parameter to real type.
5988 Remove return value.
5989 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
5990 for_each_rtx. Don't handle null rtxes.
5992 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5994 * df-problems.c: Include rtl-iter.h.
5995 (find_memory): Turn from being a for_each_rtx callback to being
5996 a function that examines each subrtx itself. Continue to look for
5997 volatile references even after a nonvolatile one has been found.
5998 (can_move_insns_across): Update calls accordingly.
6000 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6002 * ddg.c (walk_mems_2, walk_mems_1): Delete.
6003 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
6004 to iterate over subrtxes. Return a bool rather than an int.
6006 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6008 * ddg.c: Include rtl-iter.h.
6009 (mark_mem_use_1): Rename to...
6010 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
6011 instead of for_each_rtx.
6012 (mem_read_insn_p): Update accordingly.
6014 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6016 * cse.c (change_cc_mode_args): Delete.
6017 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
6018 a function that examines each subrtx itself. Take the fields of
6019 change_cc_mode_args as argument and return void.
6020 (cse_change_cc_mode_insn): Update calls accordingly.
6022 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6024 * cse.c (is_dead_reg): Change argument to const_rtx.
6025 (dead_debug_insn_data): Delete.
6026 (is_dead_debug_insn): Expand commentary. Turn from being a
6027 for_each_rtx callback to being a function that examines
6028 each subrtx itself. Take the fields of dead_debug_insn_data
6030 (delete_trivially_dead_insns): Update call accordingly.
6032 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6034 * cse.c (check_for_label_ref): Move earlier in file. Turn from
6035 being a for_each_rtx callback to being a function that examines
6037 (cse_extended_basic_block): Update call accordingly.
6039 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6041 * cse.c (check_dependence_data): Delete.
6042 (check_dependence): Change from being a for_each_rtx callback to being
6043 a function that examines all subrtxes itself. Don't handle null rtxes.
6044 (invalidate): Update call accordingly.
6046 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6048 * cse.c: Include rtl-iter.h.
6049 (approx_reg_cost_1): Delete.
6050 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
6051 Don't handle null rtxes.
6053 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6055 * cfgcleanup.c: Include rtl-iter.h.
6056 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
6057 to being a function that examines each subrtx itself.
6058 (thread_jump): Update accordingly.
6060 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6062 * combine-stack-adj.c: Include rtl-iter.h.
6063 (record_stack_refs_data): Delete.
6064 (record_stack_refs): Turn from being a for_each_rtx callback
6065 to being a function that examines each subrtx itself.
6066 Take a pointer to the reflist. Invert sense of return value
6067 so that true means success and false means failure. Don't
6069 (combine_stack_adjustments_for_block): Update accordingly.
6071 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6073 * combine.c (record_truncated_value): Turn from being a for_each_rtx
6074 callback to a function that takes an rtx and returns a bool
6075 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
6078 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6080 * combine.c: Include rtl-iter.h.
6081 (unmentioned_reg_p_1): Delete.
6082 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
6083 Don't handle null rtxes.
6085 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6087 * calls.c: Include rtl-iter.h.
6088 (internal_arg_pointer_based_exp_1): Delete.
6089 (internal_arg_pointer_based_exp): Take a const_rtx.
6090 Use FOR_EACH_SUBRTX to iterate over subrtxes.
6092 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6094 * caller-save.c: Include rtl-iter.h.
6095 (add_used_regs_1): Delete.
6096 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
6097 to iterate over subrtxes. Assert that any remaining pseudos
6100 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6102 * bt-load.c: Include rtl-iter.h.
6103 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
6104 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
6105 to iterate over subrtxes.
6106 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
6107 find_btr_use rather than btr_referenced_p.
6109 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6111 * alias.c: Include rtl-iter.h.
6112 (refs_newer_value_cb): Delete.
6113 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
6115 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
6117 * rtl-iter.h: New file.
6118 * rtlanal.c: Include it.
6119 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
6120 (generic_subrtx_iterator <T>::add_single_to_queue)
6121 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
6122 (generic_subrtx_iterator <T>::free_array): New functions.
6123 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
6124 (generic_subrtx_iterator <const_rtx_accessor>)
6125 (generic_subrtx_iterator <rtx_var_accessor>
6126 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
6127 (setup_reg_subrtx_bounds): New function.
6128 (init_rtlanal): Call it.
6130 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
6133 * config/sh/sh.md (ashlsi3): Handle negative shift count for
6135 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
6137 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
6139 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
6141 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6143 * rtl.h (JUMP_LABEL_AS_INSN): New.
6145 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6147 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
6149 (alloc_EXPR_LIST): Strengthen return type from rtx to
6151 (remove_free_EXPR_LIST_node): Likewise for param.
6152 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
6153 from rtx to rtx_expr_list *.
6154 * sched-int.h (struct deps_desc): Strengthen fields
6155 "pending_read_mems" and "pending_write_mems" from rtx to
6158 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
6159 rtx to rtx_expr_list *.
6160 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
6161 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
6163 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
6164 from rtx to rtx_expr_list *.
6165 * loop-iv.c (simplify_using_initial_values): Strengthen local
6166 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
6167 "pnote_next" from rtx * to rtx_expr_list **.
6168 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
6169 param "exprp" from rtx * to rtx_expr_list **.
6170 (add_insn_mem_dependence): Strengthen local "mem_list" from
6171 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
6173 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
6174 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
6175 param "old_mems_p" from rtx * to rtx_expr_list **.
6176 * var-tracking.c (struct adjust_mem_data): Strengthen field
6177 "side_effects" from rtx to rtx_expr_list *.
6178 (adjust_insn): Replace NULL_RTX with NULL when assigning to
6180 (prepare_call_arguments): Likewise.
6182 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6184 * function.h (struct rtl_data): Strengthen field
6185 "x_stack_slot_list" from rtx to rtx_expr_list *.
6187 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
6188 when assigning to stack_slot_list.
6190 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6192 * function.h (struct rtl_data): Strengthen field
6193 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
6194 * rtl.h (remove_node_from_expr_list): Strengthen second param from
6195 rtx * to rtx_expr_list **.
6197 * cfgbuild.c (make_edges): In loop over
6198 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
6199 rtx_expr_list *, and use methods of the latter class to clarify
6201 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
6202 rtx_expr_list *, and use methods of the latter class to clarify
6204 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
6205 * reload1.c (set_initial_label_offsets): Likewise for local "x".
6206 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
6207 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
6208 to rtx_expr_list *. Use methods of the latter class to clarify
6211 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6213 * function.h (struct expr_status): Strengthen field
6214 "x_forced_labels" from rtx to rtx_expr_list *.
6216 * cfgbuild.c (make_edges): Split local "x" into two locals,
6217 strengthening one from rtx to rtx_expr_list *, and using methods
6219 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
6220 loop over forced_labels, introduce strengthen it from rtx to
6221 rtx_expr_list *, using methods to clarify the code.
6222 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
6223 to rtx_expr_list *, using methods of said class to clarify the
6225 * reload1.c (set_initial_label_offsets): Split local "x" into two
6226 per-loop variables, strengthening the first from rtx to
6227 rtx_expr_list * and using methods.
6229 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6231 * coretypes.h (class rtx_expr_list): Add forward declaration.
6232 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
6233 * gengenrtl.c (special_rtx): Add EXPR_LIST.
6234 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
6235 invariant: GET_CODE (X) == EXPR_LIST.
6236 (is_a_helper <rtx_expr_list *>::test): New.
6237 (rtx_expr_list::next): New.
6238 (rtx_expr_list::element): New.
6239 (gen_rtx_EXPR_LIST): New.
6241 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6243 * varasm.c (mark_constants): Convert a GET_CODE check into a
6244 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
6245 Use methods of rtx_sequence to clarify the code.
6247 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6249 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
6250 local "seq" via a checked cast, and use methods of rtx_sequence
6251 to simplify the code.
6253 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6255 * resource.c (mark_referenced_resources): Strengthen local
6256 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
6257 using methods of rtx_sequence to clarify the code.
6258 (find_dead_or_set_registers): Within the switch statement, convert
6259 a GET_CODE check to a dyn_cast, introducing local "seq". Within
6260 the JUMP_P handling, introduce another local "seq", adding a
6261 checked cast to rtx_sequence *. In both cases, use methods of
6262 rtx_sequence to clarify the code.
6263 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
6264 via a checked cast, and use methods of rtx_sequence to simplify
6267 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6269 * reorg.c (redundant_insn): In two places in the function, replace
6270 a check of GET_CODE with a dyn_cast, introducing local "seq", and
6271 usings methods of rtx_sequence to clarify the code.
6273 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6275 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
6276 local "seq" with a checked cast, and use methods of rtx_sequence
6277 to clarify the code.
6279 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6281 * function.c (contains): Introduce local "seq" for PATTERN (insn),
6282 with a checked cast, in the region for where we know it's a
6283 SEQUENCE. Use methods of rtx_sequence.
6285 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6287 * final.c (get_attr_length_1): Replace GET_CODE check with a
6288 dyn_cast, introducing local "seq" and the use of methods of
6290 (shorten_branches): Likewise, introducing local "body_seq".
6291 Strengthen local "inner_insn" from rtx to rtx_insn *.
6292 (reemit_insn_block_notes): Replace GET_CODE check with a
6293 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
6294 Use methods of rtx_sequence.
6295 (final_scan_insn): Likewise, introducing local "seq" for when
6296 "body" is known to be a SEQUENCE, using its methods.
6298 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6300 * except.c (can_throw_external): Strengthen local "seq" from rtx
6301 to rtx_sequence *. Use methods of rtx_sequence.
6302 (insn_nothrow_p): Likewise.
6304 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6306 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
6307 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
6308 Use methods of rtx_sequence.
6309 (scan_trace): Likewise for local "pat".
6311 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6313 * coretypes.h (class rtx_sequence): Add forward declaration.
6314 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
6315 invariant: GET_CODE (X) == SEQUENCE.
6316 (is_a_helper <rtx_sequence *>::test): New.
6317 (is_a_helper <const rtx_sequence *>::test): New.
6318 (rtx_sequence::len): New.
6319 (rtx_sequence::element): New.
6320 (rtx_sequence::insn): New.
6322 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6324 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
6326 (alloc_INSN_LIST): Strengthen return type from rtx to
6328 (copy_INSN_LIST): Likewise for return type and param.
6329 (concat_INSN_LIST): Likewise for both params and return type.
6330 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
6331 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
6332 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
6333 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
6335 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
6336 "implicit_sets", "control_uses", "clobbers" from rtx to
6338 (struct deps_desc): Likewise for fields "pending_read_insns",
6339 "pending_write_insns", "pending_jump_insns",
6340 "last_pending_memory_flush", "last_function_call",
6341 "last_function_call_may_noreturn", "sched_before_next_call",
6342 "sched_before_next_jump".
6343 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
6344 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
6346 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
6347 from rtx to rtx_insn_list *.
6348 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
6351 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
6352 to rtx_insn_list **.
6353 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
6355 (queue_insn): Likewise for local "link".
6356 (struct haifa_saved_data): Strengthen field "insn_queue" from
6357 rtx * to rtx_insn_list **.
6358 (save_backtrack_point): Update allocation of save->insn_queue to
6359 reflect the strengthening of elements from rtx to rtx_insn_list *.
6360 (queue_to_ready): Strengthen local "link" from rtx to
6361 rtx_insn_list *; use methods "next" and "insn" when traversing the
6363 (early_queue_to_ready): Likewise for locals "link", "next_link",
6365 (schedule_block): Update allocation of insn_queue to reflect the
6366 strengthening of elements from rtx to rtx_insn_list *. Strengthen
6367 local "link" from rtx to rtx_insn_list *, and use methods when
6369 (add_to_speculative_block): Strengthen locals "twins" and
6370 "next_node" from rtx to rtx_insn_list *, and use methods when
6371 working with them. Strengthen local "twin" from rtx to
6372 rtx_insn *, eliminating a checked cast.
6373 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
6374 from rtx to rtx_insn_list *, and use methods when working with
6377 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
6378 from rtx to rtx_insn_list *, adding a checked cast.
6379 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
6381 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
6382 "newlink" from rtx to rtx_insn_list *. Strengthen local
6383 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
6384 from rtx to rtx_insn *.
6385 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
6386 from rtx to rtx_insn_list *. Use methods of the latter class.
6387 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
6388 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
6389 (remove_free_INSN_LIST_node): Strengthen return type and local
6390 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
6391 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
6392 rtx_insn_list *, using "insn" method.
6394 * sched-deps.c (add_dependence_list): Strengthen param "list"
6395 from rtx to rtx_insn_list *, and use methods when working with it.
6396 (add_dependence_list_and_free): Strengthen param "listp" from
6397 rtx * to rtx_insn_list **.
6398 (remove_from_dependence_list): Strenghten param "listp" from rtx *
6399 to rtx_insn_list **, and use methods when working with *listp.
6400 (remove_from_both_dependence_lists): Strengthen param "listp" from
6401 rtx * to rtx_insn_list **
6402 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
6403 to rtx_insn_list **. Eliminate local "link", in favor of two new
6404 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
6406 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
6407 by introducing local "cond_deps".
6408 (remove_from_deps): Strengthen param "insn" from rtx to
6411 * sched-rgn.c (concat_insn_mem_list): Strengthen param
6412 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
6413 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
6414 Use methods of rtx_insn_list.
6416 * store-motion.c (struct st_expr): Strengthen fields
6417 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
6418 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
6420 (find_moveable_store): Split out "tmp" into multiple more-tightly
6421 scoped locals. Use methods of rtx_insn_list *.
6422 (compute_store_table): Strengthen local "tmp" from rtx to
6423 rtx_insn *. Use methods of rtx_insn_list *.
6425 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6427 * coretypes.h (class rtx_insn_list): Add forward declaration.
6428 * rtl.h (class rtx_insn_list): New subclass of rtx_def
6429 (is_a_helper <rtx_insn_list *>::test): New.
6430 (rtx_insn_list::next): New.
6431 (rtx_insn_list::insn): New.
6432 (gen_rtx_INSN_LIST): Add prototype.
6433 * emit-rtl.c (gen_rtx_INSN_LIST): New.
6434 * gengenrtl.c (special_rtx): Add INSN_LIST.
6436 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6438 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
6439 "prev" from rtx to rtx_insn *.
6441 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6443 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
6444 functions. Require merely an rtx for now, not an rtx_insn *.
6445 (BLOCK_FOR_INSN): Likewise.
6446 (INSN_LOCATION): Likewise.
6447 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
6449 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6451 * rtl.h (PATTERN): Convert this macro into a pair of inline
6452 functions, for now, requiring const_rtx and rtx.
6454 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6456 * target.def (unwind_emit): Strengthen param "insn" from rtx to
6458 (final_postscan_insn): Likewise.
6459 (adjust_cost): Likewise.
6460 (adjust_priority): Likewise.
6461 (variable_issue): Likewise.
6462 (macro_fusion_pair_p): Likewise.
6463 (dfa_post_cycle_insn): Likewise.
6464 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
6465 (first_cycle_multipass_issue): Likewise.
6466 (dfa_new_cycle): Likewise.
6467 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
6468 (speculate_insn): Likewise for param "insn".
6469 (gen_spec_check): Likewise for params "insn" and "label".
6470 (get_insn_spec_ds): Likewise for param "insn".
6471 (get_insn_checked_ds): Likewise.
6472 (dispatch_do): Likewise.
6473 (dispatch): Likewise.
6474 (cannot_copy_insn_p): Likewise.
6475 (invalid_within_doloop): Likewise.
6476 (legitimate_combined_insn): Likewise.
6480 * doc/tm.texi: Automatically updated to reflect changes to
6483 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
6485 (schedule_block): Likewise.
6486 (sched_init): Likewise.
6487 (sched_speculate_insn): Strengthen param "insn" from rtx to
6489 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
6491 * hooks.c (hook_bool_rtx_true): Rename to...
6492 hook_bool_rtx_insn_true): ...this, and strengthen first param from
6494 (hook_constcharptr_const_rtx_null): Rename to...
6495 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
6496 first param from const_rtx to const rtx_insn *.
6497 (hook_bool_rtx_int_false): Rename to...
6498 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
6499 param from rtx to rtx_insn *.
6500 (hook_void_rtx_int): Rename to...
6501 (hook_void_rtx_insn_int): ...this, and strengthen first param from
6504 * hooks.h (hook_bool_rtx_true): Rename to...
6505 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
6507 (hook_bool_rtx_int_false): Rename to...
6508 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
6509 param from rtx to rtx_insn *.
6510 (hook_void_rtx_int): Rename to...
6511 (hook_void_rtx_insn_int): ...this, and strengthen first param from
6513 (hook_constcharptr_const_rtx_null): Rename to...
6514 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
6515 first param from const_rtx to const rtx_insn *.
6517 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
6518 and local "prev" from rtx to rtx_insn *.
6520 * sched-int.h (sched_speculate_insn): Strengthen first param from
6523 * sel-sched.c (create_speculation_check): Likewise for local "label".
6524 * targhooks.c (default_invalid_within_doloop): Strengthen param
6525 "insn" from const_rtx to const rtx_insn *.
6526 * targhooks.h (default_invalid_within_doloop): Strengthen param
6527 from const_rtx to const rtx_insn *.
6529 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
6530 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
6532 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
6534 (arc_invalid_within_doloop): Likewise, with const.
6536 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
6537 (arm_cannot_copy_insn_p): Likewise for param "insn".
6538 (arm_unwind_emit): Likewise.
6540 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
6543 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
6544 (c6x_variable_issue): Likewise. Removed now-redundant checked
6546 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
6548 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
6549 Likewise for param "insn".
6550 (epiphany_mode_after): Likewise.
6551 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
6552 params "insn", "dep_insn".
6553 (epiphany_mode_needed): Likewise for param "insn".
6554 (epiphany_mode_after): Likewise.
6556 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
6557 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
6558 (ix86_avx_u128_mode_needed): Likewise.
6559 (ix86_i387_mode_needed): Likewise.
6560 (ix86_mode_needed): Likewise.
6561 (ix86_avx_u128_mode_after): Likewise.
6562 (ix86_mode_after): Likewise.
6563 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
6564 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
6565 (ix86_adjust_priority): Likewise for param "insn".
6566 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
6567 (do_dispatch): Likewise.
6568 (has_dispatch): Likewise.
6569 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
6571 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
6572 reflect renaming of default hook implementation from
6573 hook_constcharptr_const_rtx_null to
6574 hook_constcharptr_const_rtx_insn_null.
6575 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
6577 (ia64_variable_issue): Likewise for param "insn".
6578 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
6579 (ia64_dfa_new_cycle): Likewise.
6580 (ia64_get_insn_spec_ds): Likewise.
6581 (ia64_get_insn_checked_ds): Likewise.
6582 (ia64_speculate_insn): Likewise.
6583 (ia64_gen_spec_check): Likewise for params "insn", "label".
6584 (ia64_asm_unwind_emit): Likewise for param "insn".
6586 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
6588 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
6590 (m68k_sched_variable_issue): Likewise for param "insn".
6592 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
6595 * config/microblaze/microblaze.c (microblaze_adjust_cost):
6596 Likewise for params "insn", "dep".
6598 * config/mips/mips.c (mips_adjust_cost): Likewise.
6599 (mips_variable_issue): Likewise for param "insn".
6600 (mips_final_postscan_insn): Likewise.
6602 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
6603 for params "insn", "dep".
6605 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
6607 (pa_adjust_priority): Likewise for param "insn".
6609 * config/picochip/picochip.c (picochip_sched_adjust_cost):
6610 Likewise for params "insn", "dep_insn".
6612 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
6614 (rs6000_variable_issue): Likewise.
6615 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
6616 (rs6000_debug_adjust_cost): Likewise.
6617 (rs6000_adjust_priority): Likewise for param "insn".
6618 (rs6000_use_sched_lookahead_guard): Likewise.
6619 (get_next_active_insn): Likewise for return type and both params.
6620 (redefine_groups): Likewise for params "prev_head_insn", "tail"
6621 and locals "insn", "next_insn".
6622 (pad_groups): Likewise.
6624 * config/s390/s390.c (s390_adjust_priority): Likewise for param
6626 (s390_cannot_copy_insn_p): Likewise.
6627 (s390_sched_variable_issue): Likewise for third param, eliminating
6629 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
6630 default hook implementation from hook_constcharptr_const_rtx_null
6631 to hook_constcharptr_const_rtx_insn_null.
6633 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
6634 from rtx to rtx_insn *.
6635 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
6636 (sh_variable_issue): Likewise for param "insn".
6637 (sh_dfa_new_cycle): Likewise.
6638 (sh_mode_needed): Likewise.
6639 (sh_mode_after): Likewise.
6641 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
6642 params "insn", "dep_insn".
6643 (hypersparc_adjust_cost): Likewise.
6644 (sparc_adjust_cost): Likewise.
6646 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
6647 param, eliminated checked cast.
6648 (spu_sched_adjust_cost): Likewise for first and third params.
6650 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
6651 params "insn" and "dep_insn" from rtx to rtx_insn *.
6653 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
6655 2014-08-27 David Malcolm <dmalcolm@redhat.com>
6657 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
6658 (set_is_load_p): ...this, updating to work on a SET pattern rather
6660 (is_store_insn): Rename to...
6661 (set_is_store_p): ...this, updating to work on a SET pattern
6662 rather than an insn.
6663 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
6664 top of function to where it is needed. Rewrite the bogus
6665 condition that checks for "insn" and "dep" being PARALLEL to
6666 instead use single_set, introducing locals "insn_set" and
6667 "dep_set". Given that we only ever returned "cost" for a non-pair
6668 of SETs, bail out early if we don't have a pair of SET.
6669 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
6670 use the new locals "insn_set" and "dep_set", and update calls to
6671 is_load_insn and is_store_insn to be calls to set_is_load_p and
6674 2014-08-27 Guozhi Wei <carrot@google.com>
6677 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
6678 amount before using it.
6680 2014-08-27 Richard Biener <rguenther@suse.de>
6682 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
6683 get_maxval_strlen inside a more useful API.
6684 (gimple_fold_builtin_with_strlen): Remove and fold into ...
6685 (gimple_fold_builtin): ... caller.
6686 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
6687 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
6688 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
6689 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
6690 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
6691 gimple_fold_builtin_sprintf): Adjust to compute maxval
6694 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
6697 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
6699 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
6700 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6701 Anna Tikhonova <anna.tikhonova@intel.com>
6702 Ilya Tocar <ilya.tocar@intel.com>
6703 Andrey Turetskiy <andrey.turetskiy@intel.com>
6704 Ilya Verbin <ilya.verbin@intel.com>
6705 Kirill Yukhin <kirill.yukhin@intel.com>
6706 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6708 * config/i386/sse.md
6709 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
6710 Use `concat_tg_mode' attribute to determine asm register size.
6712 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
6713 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6714 Anna Tikhonova <anna.tikhonova@intel.com>
6715 Ilya Tocar <ilya.tocar@intel.com>
6716 Andrey Turetskiy <andrey.turetskiy@intel.com>
6717 Ilya Verbin <ilya.verbin@intel.com>
6718 Kirill Yukhin <kirill.yukhin@intel.com>
6719 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6721 * config/i386/sse.md
6722 (define_mode_iterator VI48_AVX512VL): New.
6723 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
6724 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
6725 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
6726 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6727 with VI1): Change mode iterator.
6728 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6729 with VI_ULOADSTORE_BW_AVX512VL): New.
6730 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6731 with VI_ULOADSTORE_F_AVX512VL): Ditto.
6732 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6733 with VI1): Change mode iterator.
6734 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6735 with VI_ULOADSTORE_BW_AVX512VL): New.
6736 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
6737 with VI_ULOADSTORE_F_AVX512VL): Ditto.
6738 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
6739 with VI1): Change mode iterator.
6740 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
6741 with VI_ULOADSTORE_BW_AVX512VL): New.
6742 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
6743 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
6744 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
6745 (define_insn "<avx512>_storedqu<mode>_mask" with
6746 VI48_AVX512VL): New.
6747 (define_insn "<avx512>_storedqu<mode>_mask" with
6748 VI12_AVX512VL): Ditto.
6750 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
6751 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6752 Anna Tikhonova <anna.tikhonova@intel.com>
6753 Ilya Tocar <ilya.tocar@intel.com>
6754 Andrey Turetskiy <andrey.turetskiy@intel.com>
6755 Ilya Verbin <ilya.verbin@intel.com>
6756 Kirill Yukhin <kirill.yukhin@intel.com>
6757 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6759 * config/i386/sse.md
6760 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
6761 (define_mode_iterator VI48_AVX512BW): New.
6762 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
6763 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
6764 with VI48_AVX2_48_AVX512F): New.
6765 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
6766 with VI2_AVX512VL): Ditto.
6768 2014-08-27 Richard Biener <rguenther@suse.de>
6771 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
6772 (fold_builtin_3): Do not fold strcat_chk here.
6773 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
6775 (gimple_fold_builtin): Fold strcat_chk here.
6777 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
6779 * dwarf2out.h (dwarf2out_decl): Remove prototype.
6780 * dwarf2out.c (dwarf2out_decl): Make static.
6782 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
6784 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
6786 2014-08-26 David Malcolm <dmalcolm@redhat.com>
6788 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
6789 from rtx to rtx_insn *.
6790 (cselib_lookup_from_insn): Likewise for final param.
6791 (cselib_subst_to_values_from_insn): Likewise.
6792 (cselib_add_permanent_equiv): Likewise.
6794 * cselib.c (cselib_current_insn): Likewise for this variable.
6795 (cselib_subst_to_values_from_insn): Likewise for param "insn".
6796 (cselib_lookup_from_insn): Likewise.
6797 (cselib_add_permanent_equiv): Likewise for param "insn" and local
6798 "save_cselib_current_insn".
6799 (cselib_process_insn): Replace use of NULL_RTX with NULL.
6801 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
6802 from rtx to rtx_insn *.
6804 2014-08-26 David Malcolm <dmalcolm@redhat.com>
6806 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
6809 2014-08-26 David Malcolm <dmalcolm@redhat.com>
6811 * df.h (df_dump_insn_problem_function): Strengthen first param of
6812 this callback from const_rtx to const rtx_insn *.
6813 (struct df_insn_info): Strengthen field "insn" from rtx to
6815 (DF_REF_INSN): Eliminate this function, reinstating the older
6817 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
6818 (df_reg_defined): Likewise.
6819 (df_find_use): Likewise.
6820 (df_reg_used): Likewise.
6821 (df_dump_insn_top): Strengthen param 1 from const_rtx to
6823 (df_dump_insn_bottom): Likewise.
6824 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
6825 (df_insn_debug_regno): Likewise.
6826 (debug_df_insn): Likewise.
6827 (df_rd_simulate_one_insn): Likewise for param 2.
6828 (df_word_lr_simulate_defs): Likewise for param 1.
6829 (df_word_lr_simulate_uses): Likewise.
6830 (df_md_simulate_one_insn): Likewise for param 2.
6831 (df_simulate_find_noclobber_defs): Likewise for param 1.
6832 (df_simulate_find_defs): Likewise.
6833 (df_simulate_defs): Likewise.
6834 (df_simulate_uses): Likewise.
6835 (df_simulate_one_insn_backwards): Likewise for param 2.
6836 (df_simulate_one_insn_forwards): Likewise.
6837 (df_uses_create): Likewise for param 2.
6838 (df_insn_create_insn_record): Likewise for param 1.
6839 (df_insn_delete): Likewise.
6840 (df_insn_rescan): Likewise.
6841 (df_insn_rescan_debug_internal): Likewise.
6842 (df_insn_change_bb): Likewise.
6843 (df_notes_rescan): Likewise.
6844 * rtl.h (remove_death): Likewise for param 2.
6845 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
6847 * sched-int.h (reemit_notes): Strengthen param from rtx to
6849 * valtrack.h (propagate_for_debug): Likewise for param 1.
6851 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
6852 local "tmp_rtx" from const_rtx to const rtx_insn *.
6853 * combine.c (remove_death): Strengthen param "insn" from rtx to
6855 (move_deaths): Likewise for local "where_dead".
6856 * cse.c (delete_trivially_dead_insns): Introduce local
6857 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
6858 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
6860 (df_reg_defined): Likewise.
6861 (df_find_use): Likewise.
6862 (df_reg_used): Likewise.
6863 (df_dump_insn_problem_data): Strengthen param "insn" from
6864 const_rtx to const rtx_insn *.
6865 (df_dump_insn_top): Likewise.
6866 (df_dump_insn_bottom): Likewise.
6867 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
6868 (df_insn_debug_regno): Likewise.
6869 (debug_df_insn): Likewise.
6870 (DF_REF_INSN): Delete.
6871 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
6872 from rtx to rtx_insn *.
6873 (df_chain_insn_top_dump): Strengthen param "insn" from
6874 const_rtx to const rtx_insn *.
6875 (df_chain_insn_bottom_dump): Likewise.
6876 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
6878 (df_word_lr_simulate_uses): Likewise.
6879 (df_print_note): Likewise.
6880 (df_remove_dead_and_unused_notes): Likewise.
6881 (df_set_unused_notes_for_mw): Likewise.
6882 (df_set_dead_notes_for_mw): Likewise.
6883 (df_create_unused_note): Likewise.
6884 (df_simulate_find_defs): Likewise.
6885 (df_simulate_find_uses): Likewise.
6886 (df_simulate_find_noclobber_defs): Likewise.
6887 (df_simulate_defs): Likewise.
6888 (df_simulate_uses): Likewise.
6889 (df_simulate_one_insn_backwards): Likewise.
6890 (df_simulate_one_insn_forwards): Likewise.
6891 (df_md_simulate_one_insn): Likewise.
6892 * df-scan.c (df_uses_create): Likewise.
6893 (df_insn_create_insn_record): Likewise.
6894 (df_insn_delete): Likewise.
6895 (df_insn_rescan): Likewise.
6896 (df_insn_rescan_debug_internal): Likewise.
6897 (df_insn_change_bb): Likewise.
6898 (df_notes_rescan): Likewise.
6899 (df_refs_add_to_chains): Likewise.
6900 (df_insn_refs_verify): Likewise.
6901 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
6902 when invoking df_insn_delete.
6903 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
6904 (set_unique_reg_note): Add checked cast.
6905 * final.c (cleanup_subreg_operands): Likewise.
6906 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
6907 "insn" from rtx to rtx_insn *.
6908 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
6909 "last" from rtx to rtx_insn *.
6910 * ira-emit.c (change_regs_in_insn): New function.
6911 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
6912 Invoke change_regs_in_insn rather than change_regs.
6913 * ira.c (update_equiv_regs): Strengthen locals "insn",
6914 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
6915 for_each_rtx_in_insn rather than for_each_rtx.
6916 * recog.c (confirm_change_group): Add checked casts.
6917 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
6919 (peep2_fill_buffer): Add checked cast.
6920 * rtlanal.c (remove_note): Likewise.
6921 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
6922 locals "next" "end" from rtx to rtx_insn *.
6924 2014-08-26 David Malcolm <dmalcolm@redhat.com>
6926 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
6928 (struct reg_use_data): Likewise for field "insn".
6929 (insn_cost): Likewise for param.
6930 (real_insn_for_shadow): Likewise for return type and param.
6931 (increase_insn_priority): Likewise for param 1.
6932 (debug_dependencies): Likewise for both params.
6934 * haifa-sched.c (insn_delay): Likewise for param "insn".
6935 (real_insn_for_shadow): Likewise for return type and param "insn".
6936 (update_insn_after_change): Likewise for param "insn".
6937 (recompute_todo_spec): Likewise for param "next" and locals "pro",
6939 (insn_cost): Likewise for param "insn".
6940 (increase_insn_priority): Likewise.
6941 (calculate_reg_deaths): Likewise.
6942 (setup_insn_reg_pressure_info): Likewise.
6943 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
6944 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
6945 (model_recompute): Likewise.
6946 (must_restore_pattern_p): Likewise for param "next".
6947 (model_excess_cost): Likewise for param "insn".
6948 (queue_remove): Likewise.
6949 (adjust_priority): Likewise for param "prev".
6950 (update_register_pressure): Likewise for param "insn".
6951 (setup_insn_max_reg_pressure): Likewise for local "insn".
6952 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
6953 (model_add_to_schedule): Likewise.
6954 (model_reset_queue_indices): Likewise for local "insn".
6955 (unschedule_insns_until): Strengthen local "recompute_vec" from
6956 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
6957 "con" from rtx to rtx_insn *.
6958 (restore_last_backtrack_point): Likewise for both locals "x". Add
6960 (estimate_insn_tick): Likewise for param "insn".
6961 (commit_schedule): Likewise for params "prev_head", "tail" and
6963 (verify_shadows): Likewise for locals "i1", "i2".
6964 (dump_insn_stream): Likewise for params "head", "tail" and locals
6965 "next_tail", "insn".
6966 (schedule_block): Likewise for locals "insn", "x". Add a checked
6968 (fix_inter_tick): Likewise for params "head", "tail".
6969 (create_check_block_twin): Likewise for local "jump".
6970 (haifa_change_pattern): Likewise for param "insn".
6971 (haifa_speculate_insn): Likewise.
6972 (dump_new_block_header): Likewise for params "head", "tail".
6973 (fix_jump_move): Likewise for param "jump".
6974 (move_block_after_check): Likewise.
6975 (sched_init_insn_luid): Likewise for param "insn".
6976 (sched_init_luids): Likewise for local "insn".
6977 (insn_luid): Likewise for param "insn".
6978 (init_h_i_d): Likewise.
6979 (haifa_init_h_i_d): Likewise for local "insn".
6980 (haifa_init_insn): Likewise for param "insn".
6981 * sched-deps.c (add_dependence): Likewise for local "real_pro",
6983 (create_insn_reg_use): Likewise for param "insn".
6984 (setup_insn_reg_uses): Likewise. Add a checked cast.
6985 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
6986 "tail" from rtx to rtx_insn *.
6987 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
6988 "insn", "next_tail".
6990 2014-08-26 David Malcolm <dmalcolm@redhat.com>
6992 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
6993 from rtx to rtx_insn *.
6994 (model_add_to_schedule): Likewise for locals "start", "end",
6997 2014-08-26 David Malcolm <dmalcolm@redhat.com>
6999 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
7001 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
7002 "to" and locals "insn", "next", "copy". Remove now-redundant
7005 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7007 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
7008 rtx_insn * and param 4 from rtx * to rtx_insn **.
7009 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
7010 param 2 from rtx * to rtx_insn **.
7012 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
7013 rtx_insn * and final param from rtx * to rtx_insn **.
7015 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
7016 from rtx to rtx_insn *.
7017 (try_head_merge_bb): Likewise for both locals named "move_upto".
7018 * df-problems.c (can_move_insns_across): Likewise for params
7019 "from", "to", "across_from", "across_to" and locals "insn",
7020 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
7022 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
7023 from rtx to rtx_insn *.
7024 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
7025 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
7026 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
7028 (noce_try_abs): Likewise.
7029 (noce_get_condition): Likewise for param "jump". Strengthen param
7030 "earliest" from rtx * to rtx_insn **.
7031 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
7033 (find_cond_trap): Likewise.
7034 (dead_or_predicable): Likewise for local "earliest".
7035 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
7037 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
7038 and local "prev". Strengthen param "earliest" from rtx * to
7040 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
7041 Strengthen param "earliest" from rtx * to rtx_insn **.
7043 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7045 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
7046 "to" and local "insn" from rtx to rtx_insn *.
7048 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7050 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
7051 from rtx to rtx_insn *.
7052 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
7053 (code_motion_path_driver): Likewise for local "last_insn".
7054 (simplify_changed_insns): Likewise for local "insn".
7056 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7058 * rtl.h (push_to_sequence): Strengthen param from rtx to
7060 (push_to_sequence2): Likewise for both params.
7061 (delete_insns_since): Likewise for param.
7062 (reorder_insns_nobb): Likewise for all three params.
7063 (set_new_first_and_last_insn): Likewise for both params.
7065 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
7066 rtx_insn *. Remove now-redundant cast.
7067 (set_last_insn): Likewise.
7069 * builtins.c (expand_builtin_return): Strengthen local
7070 "call_fusage" from rtx to rtx_insn *.
7071 * cfgrtl.c (create_basic_block_structure): Likewise for local
7073 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
7074 "first", "last" and local "insn".
7075 (delete_insns_since): Likewise for param "from".
7076 (reorder_insns_nobb): Likewise for params "from", "to", "after"
7078 (push_to_sequence): Likewise for param "first" and local "last".
7079 (push_to_sequence2): Likewise for params "first" and "last".
7080 * lra.c (emit_add3_insn): Likewise for local "last".
7081 (lra_emit_add): Likewise.
7082 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
7084 (process_address_1): Likewise for locals "insn", last".
7085 * modulo-sched.c (ps_first_note): Likewise for return type.
7086 * optabs.c (expand_binop_directly): Likewise for param "last".
7088 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7090 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
7092 * emit-rtl.c (get_last_insn_anywhere): Likewise.
7094 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7096 * function.h (struct sequence_stack): Strengthen fields "first"
7097 and "last" from rtx to rtx_insn *.
7098 (struct emit_status): Likewise for fields "x_first_insn" and
7101 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
7102 (set_first_insn): Add checked cast.
7103 (get_last_insn): Remove now-redundant checked cast.
7104 (set_last_insn): Add checked cast.
7106 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
7107 "saved_first" and "saved_last" from rtx to rtx_insn *.
7109 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7111 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
7112 (unlink_insn_chain): Strengthen both params from rtx to
7115 * cfgrtl.c (cfg_layout_function_header): Likewise for this
7117 (unlink_insn_chain): Likewise for params "first" and "last".
7118 Remove now-redundant checked cast.
7119 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
7120 (fixup_reorder_chain): Strengthen local "insn" from rtx to
7122 * emit-rtl.c (link_insn_into_chain): Likewise for all three
7124 (add_insn): Likewise for param "insn" and local "prev".
7125 (add_insn_after_nobb): Likewise for both params and local "next".
7126 (add_insn_before_nobb): Likewise for both params and local "prev".
7127 (add_insn_after): Rename param "after" to "uncast_after",
7128 introducing local "after" with another checked cast.
7129 (add_insn_before): Rename params "insn" and "before", giving them
7130 "uncast_" prefixes, adding the old names back using checked casts.
7131 (emit_note_after): Likewise for param "after".
7132 (emit_note_before): Likewise for param "before".
7133 (emit_label): Add a checked cast.
7135 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7137 * cselib.h (cselib_record_sets_hook): Strengthen initial param
7138 "insn" from rtx to rtx_insn *.
7140 * cselib.c (cselib_record_sets_hook): Likewise.
7142 * var-tracking.c (add_with_sets): Likewise, renaming back from
7143 "uncast_insn" to "insn" and eliminating the checked cast from rtx
7146 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7148 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
7149 and "header_" from rtx to rtx_insn *.
7150 (struct basic_block_d): Likewise for field "head_" within "x"
7151 field of union basic_block_il_dependent.
7152 (BB_HEAD): Drop function...
7153 (SET_BB_HEAD): ...and this function in favor of...
7154 (BB_HEAD): ...reinstate macro.
7155 (BB_END): Drop function...
7156 (SET_BB_END): ...and this function in favor of...
7157 (BB_END): ...reinstate macro.
7158 (BB_HEADER): Drop function...
7159 (SET_BB_HEADER): ...and this function in favor of...
7160 (BB_HEADER): ...reinstate macro.
7162 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
7163 (fix_crossing_unconditional_branches): Likewise.
7164 * caller-save.c (save_call_clobbered_regs): Likewise.
7165 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
7166 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
7167 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
7168 (merge_blocks_move_successor_nojumps): Likewise.
7169 (outgoing_edges_match): Update use of for_each_rtx to
7170 for_each_rtx_in_insn.
7171 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
7172 (expand_gimple_cond): Likewise.
7173 (expand_gimple_tailcall): Likewise.
7174 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
7176 (construct_exit_block): Drop use of SET_BB_END.
7177 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
7179 (delete_insn): Rename param "insn" to "uncast_insn", introducing
7180 a new local "insn" with a checked cast to rtx_insn *. Drop use of
7181 SET_BB_HEAD and SET_BB_END.
7182 (create_basic_block_structure): Drop use of SET_BB_HEAD and
7184 (rtl_delete_block): Drop use of SET_BB_HEAD.
7185 (rtl_split_block): Drop use of SET_BB_END.
7186 (emit_nop_for_unique_locus_between): Likewise.
7187 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
7188 (block_label): Drop use of SET_BB_HEAD.
7189 (fixup_abnormal_edges): Drop use of SET_BB_END.
7190 (record_effective_endpoints): Drop use of SET_BB_HEADER.
7191 (relink_block_chain): Likewise.
7192 (fixup_reorder_chain): Drop use of SET_BB_END.
7193 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
7194 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
7195 rtx_insn **. Drop use of SET_BB_HEADER.
7196 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
7198 (BB_HEAD): Delete this function.
7199 (SET_BB_HEAD): Likewise.
7201 (SET_BB_END): Likewise.
7202 (BB_HEADER): Likewise.
7203 (SET_BB_HEADER): Likewise.
7204 * emit-rtl.c (add_insn_after): Rename param "insn" to
7205 "uncast_insn", adding a new local "insn" and a checked cast to
7206 rtx_insn *. Drop use of SET_BB_END.
7207 (remove_insn): Strengthen locals "next" and "prev" from rtx to
7208 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
7209 (reorder_insns): Drop use of SET_BB_END.
7210 (emit_insn_after_1): Strengthen param "first" and locals "last",
7211 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
7212 (emit_pattern_after_noloc): Add checked cast.
7213 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
7214 (restore_other_notes): Likewise.
7215 (move_insn): Likewise.
7216 (sched_extend_bb): Likewise.
7217 (fix_jump_move): Likewise.
7218 * ifcvt.c (noce_process_if_block): Likewise.
7219 (dead_or_predicable): Likewise.
7220 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
7221 * reg-stack.c (change_stack): Drop use of SET_BB_END.
7222 * sel-sched-ir.c (sel_move_insn): Likewise.
7223 * sel-sched.c (move_nop_to_previous_block): Likewise.
7225 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
7227 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
7229 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7231 * basic-block.h (create_basic_block_structure): Strengthen params
7232 1 "head" and 2 "end" from rtx to rtx_insn *.
7233 * cfgrtl.c (create_basic_block_structure): Likewise.
7234 (rtl_create_basic_block): Update casts from void * to rtx to
7235 rtx_insn *, so that we can pass them as rtx_insn * to
7236 create_basic_block_structure.
7237 * sel-sched-ir.c (sel_create_basic_block): Likewise.
7239 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7241 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
7243 (check_for_inc_dec): Strengthen param "insn" from rtx to
7246 * cselib.h (cselib_process_insn): Likewise.
7248 * cselib.c (cselib_record_sets): Likewise.
7249 (cselib_process_insn): Likewise.
7251 * dse.c (struct insn_info): Likewise for field "insn".
7252 (check_for_inc_dec_1): Likewise for local "insn".
7253 (check_for_inc_dec): Likewise for param "insn".
7254 (scan_insn): Likewise.
7255 (dse_step1): Likewise for local "insn".
7257 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
7258 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
7260 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7262 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
7263 from rtx to rtx_insn *.
7264 (DEP_PRO): Delete this function and...
7265 (SET_DEP_PRO): ...this function in favor of...
7266 (DEP_PRO): ...reinstate this macro.
7267 (DEP_CON): Delete this function and...
7268 (SET_DEP_CON): ...this function in favor of...
7269 (DEP_CON): ...reinstate this old macro.
7270 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
7271 (init_dep): Likewise.
7272 (set_priorities): Likewise for both params.
7273 (sd_copy_back_deps): Likewise for params 1 and 2.
7275 * haifa-sched.c (priority): Likewise for param "insn" and local
7277 (set_priorities): Likewise for params "head" and "tail" and local
7279 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
7281 (add_to_speculative_block): Add a checked cast.
7282 (create_check_block_twin): Drop use of SET_DEP_CON.
7283 (add_jump_dependencies): Strengthen params "insn" and "jump" from
7286 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
7287 Drop use of SET_DEP_PRO
7288 (init_dep): Strengthen params "pro" and "con" from rtx to
7290 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
7294 (SET_DEP_PRO): Delete.
7295 (SET_DEP_CON): Delete.
7297 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7299 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
7300 from rtx to rtx_insn *.
7301 (VINSN_INSN_RTX): Eliminate rvalue function and...
7302 (SET_VINSN_INSN): ...lvalue function in favor of...
7303 (VINSN_INSN_RTX): reinstate this old macro.
7305 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
7306 in favor of VINSN_INSN_RTX.
7307 (VINSN_INSN_RTX): Delete this function.
7308 (SET_VINSN_INSN_RTX): Likewise.
7310 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7312 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
7313 (BND_TO): Delete this function and...
7314 (SET_BND_TO): ...this functions in favor of...
7315 (BND_TO): ...reinstating this macro.
7316 (struct _fence): Strengthen field "executing_insns" from
7317 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
7318 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
7319 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
7320 and param "insn" from rtx to insn_t.
7321 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
7324 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
7326 (rtx_vec_t): Likewise.
7327 (struct sched_deps_info_def): Strengthen param of "start_insn"
7328 callback from rtx to rtx_insn *. Likewise for param "insn2" of
7329 "note_mem_dep" callback and first param of "note_dep" callback.
7331 * haifa-sched.c (add_to_speculative_block): Strengthen param
7332 "insn" from rtx to rtx_insn *.
7333 (clear_priorities): Likewise.
7334 (calc_priorities): Likewise for local "insn".
7336 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
7337 Remove redundant checked cast.
7338 (haifa_note_mem_dep): Likewise for param "pending_insn".
7339 (haifa_note_dep): Likewise for param "elem".
7340 (note_mem_dep): Likewise for param "e".
7341 (sched_analyze_1): Add checked casts.
7342 (sched_analyze_2): Likewise.
7344 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
7345 from rtx to rtx_insn *.
7346 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
7347 from vec<rtx> * to vec<rtx_insn *> *.
7349 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
7351 (flist_add): Strengthen param "executing_insns" from
7352 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
7353 (advance_deps_context): Remove now-redundant checked cast.
7354 (init_fences): Replace uses of NULL_RTX with NULL.
7355 (merge_fences): Strengthen params "last_scheduled_insn" and
7356 "sched_next" from rtx to rtx_insn * and "executing_insns" from
7357 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
7358 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
7359 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
7360 an instruction, rather than doing double-duty as a pattern.
7361 (return_nop_to_pool): Update for change of insn_t.
7362 (deps_init_id): Remove now-redundant checked cast.
7363 (struct sched_scan_info_def): Strengthen param of "init_insn"
7364 callback from rtx to insn_t.
7365 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
7366 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
7368 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
7369 "end" from rtx to rtx_insn *.
7370 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
7371 (rtx insn_rtx, bool force_unique_p)
7372 (BND_TO): Delete function.
7373 (SET_BND_TO): Delete function.
7375 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
7377 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
7378 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
7380 (undo_transformations): Likewise for param "insn".
7381 (update_liveness_on_insn): Likewise.
7382 (compute_live_below_insn): Likewise for param "insn" and local
7384 (update_data_sets): Likewise for param "insn".
7385 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
7386 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
7387 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
7389 (move_cond_jump): Likewise for param "insn".
7390 (move_cond_jump): Drop use of SET_BND_TO.
7391 (compute_av_set_on_boundaries): Likewise.
7392 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
7393 (update_and_record_unavailable_insns): Strengthen local "bb_end"
7394 from rtx to rtx_insn *.
7395 (maybe_emit_renaming_copy): Likewise for param "insn".
7396 (maybe_emit_speculative_check): Likewise.
7397 (handle_emitting_transformations): Likewise.
7398 (remove_insn_from_stream): Likewise.
7399 (code_motion_process_successors): Strengthen local "succ" from rtx
7402 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7404 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
7405 ilist_t, not _xlist_t;
7406 (ILIST_INSN): Define in terms of new union field "insn".
7407 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
7409 (struct _list_node): Add new field "insn" to the union, of type
7411 (ilist_add): Replace macro with an inline function, requiring an
7413 (ilist_remove): Define this macro directly in terms of
7414 _list_remove, rather than indirectly via _xlist_remove.
7415 (ilist_clear): Likewise, in terms of _list_clear rather than
7417 (ilist_is_in_p): Replace macro with an inline function, requiring
7419 (_list_iter_cond_insn): New function.
7420 (ilist_iter_remove): Define this macro directly in terms of
7421 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
7422 (ilist_iterator): Define directly in terms of _list_iterator
7423 rather than indirectly through _xlist_iterator.
7424 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
7425 than in terms of _FOR_EACH_X.
7426 (FOR_EACH_INSN_1): Likewise.
7428 2014-08-26 Joseph Myers <joseph@codesourcery.com>
7432 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
7433 DECL_HARD_REGISTER and return for invalid register specifications.
7434 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
7435 DECL_HARD_REGISTER, call expand_one_error_var.
7436 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
7437 CC_REGNUM with non-MODE_CC modes.
7438 (arm_regno_class): Return NO_REGS for PC_REGNUM.
7440 2014-08-26 Marek Polacek <polacek@redhat.com>
7443 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
7445 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
7447 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
7448 qi cost; add di cost.
7449 (cortexa57_addrcost_table): Likewise.
7451 2014-08-26 Marek Polacek <polacek@redhat.com>
7454 * expr.c (is_aligning_offset): Remove logical not.
7456 2014-08-26 Marek Polacek <polacek@redhat.com>
7459 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
7460 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
7462 2014-08-26 Richard Biener <rguenther@suse.de>
7464 PR tree-optimization/62175
7465 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
7466 expand possibly trapping operations.
7468 2014-08-26 David Malcolm <dmalcolm@redhat.com>
7470 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
7471 "insn" from rtx to rtx_insn *.
7472 (permute_load): Likewise for param "insn".
7473 (permute_store): Likewise.
7474 (handle_special_swappables): Likewise for local "insn".
7475 (replace_swap_with_copy): Likewise for locals "insn" and
7477 (rs6000_analyze_swaps): Likewise for local "insn".
7479 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7481 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
7484 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7486 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
7487 "note_list" from rtx to rtx_insn *.
7488 (BB_NOTE_LIST): Replace this function and...
7489 (SET_BB_NOTE_LIST): ...this function with...
7490 (BB_NOTE_LIST): ...the former macro implementation.
7492 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
7493 local "from_start" from rtx to rtx_insn *. Strengthen param
7494 "to_endp" from rtx * to rtx_insn **.
7496 * haifa-sched.c (concat_note_lists): Likewise.
7497 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
7499 (sel_restore_notes): Likewise.
7500 (move_bb_info): Likewise.
7501 (BB_NOTE_LIST): Delete this function.
7502 (SET_BB_NOTE_LIST): Delete this function.
7503 * sel-sched.c (create_block_for_bookkeeping): Eliminate
7504 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
7506 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7508 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
7509 from rtx * to rtx_insn **.
7510 (reorder2): Likewise.
7511 (dependencies_evaluation_hook): Strengthen params "head", "tail"
7512 from rtx to rtx_insn *.
7514 * doc/tm.texi: Update mechanically for above change to target.def.
7516 * sched-int.h (note_list): Strengthen this variable from rtx to
7518 (remove_notes): Likewise for both params.
7519 (restore_other_notes): Likewise for return type and first param.
7520 (struct ready_list): Strengthen field "vec" from rtx * to
7522 (struct dep_replacement): Strenghten field "insn" from rtx to
7524 (struct deps_desc): Likewise for fields "last_debug_insn",
7526 (struct haifa_sched_info): Likewise for callback field
7527 "can_schedule_ready_p"'s param, for first param of "new_ready"
7528 callback field, for both params of "rank" callback field, for
7529 first field of "print_insn" callback field (with a const), for
7530 both params of "contributes_to_priority" callback, for param
7531 of "insn_finishes_block_p" callback, for fields "prev_head",
7532 "next_tail", "head", "tail", for first param of "add_remove_insn"
7533 callback, for first param of "begin_schedule_ready" callback, for
7534 both params of "begin_move_insn" callback, and for second param
7535 of "advance_target_bb" callback.
7536 (add_dependence): Likewise for params 1 and 2.
7537 (sched_analyze): Likewise for params 2 and 3.
7538 (deps_analyze_insn): Likewise for param 2.
7539 (ready_element): Likewise for return type.
7540 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
7541 (try_ready): Strenghten param from rtx to rtx_insn *.
7542 (sched_emit_insn): Likewise for return type.
7543 (record_delay_slot_pair): Likewise for params 1 and 2.
7544 (add_delay_dependencies): Likewise for param.
7545 (contributes_to_priority): Likewise for both params.
7546 (find_modifiable_mems): Likewise.
7548 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
7549 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
7550 "first_older_only_insn" from rtx to rtx_insn *.
7551 (arm_sched_reorder): Strengthen param "ready" from rtx * to
7554 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
7555 "last_scheduled_iter0" from rtx to rtx_insn *.
7556 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
7557 (c6x_sched_reorder_1): Strengthen param "ready" and locals
7558 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
7559 "insn" from rtx to rtx_insn *.
7560 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
7562 (c6x_sched_reorder2): Strengthen param "ready" and locals
7563 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
7564 "insn" from rtx to rtx_insn *.
7565 (c6x_variable_issue): Add a checked cast when assigning from insn
7566 to ss.last_scheduled_iter0.
7567 (split_delayed_branch): Strengthen param "insn" and local "i1"
7568 from rtx to rtx_insn *.
7569 (split_delayed_nonbranch): Likewise.
7570 (undo_split_delayed_nonbranch): Likewise for local "insn".
7571 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
7572 "entry_after", "end_packet", "head_insn", "tail_insn",
7573 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
7574 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
7575 to rtx_insn **. Remove now-redundant checked cast on last_insn,
7576 but add a checked cast on loop->start_label. Consolidate calls to
7577 avoid assigning result of gen_spkernel to "insn", now an
7580 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
7581 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
7583 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
7584 rtx_insn **. Strengthen locals "top", "next" from rtx to
7586 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
7587 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
7588 (add_parameter_dependencies): Strengthen params "call", "head" and
7589 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
7590 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
7591 (add_dependee_for_func_arg): Likewise for param "arg" and local
7593 (ix86_dependencies_evaluation_hook): Likewise for params "head",
7594 "tail" and locals "insn", "first_arg".
7596 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
7597 for params "head", "tail" and locals "insn", "next", "next_tail".
7598 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
7599 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
7600 "insn", "lowest", "highest" from rtx to rtx_insn *.
7601 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
7603 (ia64_sched_reorder2): Likewise.
7605 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
7606 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
7607 from rtx * to rtx_insn **.
7608 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
7610 (mep_print_sched_insn): Strengthen param "insn" from rtx to
7612 (mep_sched_reorder): Strengthen param "ready" from rtx * to
7613 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
7616 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
7617 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
7619 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
7620 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
7621 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
7623 (vr4130_reorder): Likewise.
7624 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
7626 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
7628 (mips_sched_reorder): Likewise.
7629 (mips_sched_reorder2): Likewise.
7631 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
7633 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
7634 Strengthen local "tmp" from rtx to rtx_insn *.
7635 (rs6000_sched_reorder2): Likewise.
7637 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
7638 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
7639 (s390_sched_reorder): Strengthen param "ready" from rtx * to
7640 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
7642 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
7643 "tmp2" from rtx to rtx_insn *.
7644 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
7645 Strengthen local "insn" from rtx to rtx_insn *.
7646 (ready_reorder): Strengthen param "ready" from rtx * to
7647 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
7648 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
7649 (sh_reorder2): Likewise.
7651 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
7652 local "insn" from rtx to rtx_insn *.
7654 * haifa-sched.c (note_list): Strengthen this variable from rtx to
7656 (scheduled_insns): Strengthen this variable from vec<rtx> to
7658 (set_modulo_params): Likewise for locals "i1", "i2".
7659 (record_delay_slot_pair): Likewise for params "i1", "i2".
7660 (add_delay_dependencies): Likewise for param "insn".
7661 (cond_clobbered_p): Likewise.
7662 (recompute_todo_spec): Likewise for local "prev".
7663 (last_scheduled_insn): Likewise for this variable.
7664 (nonscheduled_insns_begin): Likewise.
7665 (model_set_excess_costs): Strengthen param "insns" from rtx * to
7667 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
7669 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
7670 Strengthen local "insn" from rtx to rtx_insn *.
7671 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
7672 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
7673 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
7674 (ready_remove_first): Likewise for return type and local "t".
7675 (ready_element): Likewise for return type.
7676 (ready_remove): Likewise for return type and local "t".
7677 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
7678 (check_clobbered_conditions): Strengthen local "x" from rtx to
7679 rtx_insn *, adding a checked cast.
7680 (schedule_insn): Likewise for param "insn".
7681 (remove_notes): Likewise for params "head", "tail" and locals
7682 "next_tail", "insn", "next".
7683 (struct haifa_saved_data): Likewise for fields
7684 "last_scheduled_insn", "nonscheduled_insns_begin".
7685 (save_backtrack_point): Update for change to field "vec" of
7687 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
7689 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
7690 from rtx to rtx_insn *
7691 (resolve_dependencies): Strengthen param "insn" from rtx to
7693 (restore_other_notes): Likewise for return type, for param "head"
7694 and local "note_head".
7695 (undo_all_replacements): Likewise for local "insn".
7696 (first_nonscheduled_insn): Likewise for return type and local "insn".
7697 (queue_to_ready): Likewise for local "insn", adding checked casts.
7698 (early_queue_to_ready): Likewise for local "insn".
7699 (debug_ready_list_1): Strengthen local "p" from rtx * to
7701 (move_insn): Strengthen param "insn" and local "note" from rtx to
7703 (insn_finishes_cycle_p): Likewise for param "insn".
7704 (max_issue): Likewise for local "insn".
7705 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
7707 (commit_schedule): Strengthen param "prev_head" and local "insn"
7708 from rtx to rtx_insn *
7709 (prune_ready_list): Likewise for local "insn".
7710 (schedule_block): Likewise for locals "prev_head", "head", "tail",
7711 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
7712 (set_priorities): Likewise for local "prev_head".
7713 (try_ready): Likewise for param "next".
7714 (fix_tick_ready): Likewise.
7715 (change_queue_index): Likewise.
7716 (sched_extend_ready_list): Update for change to field "vec" of
7718 (generate_recovery_code): Strengthen param "insn" from rtx to
7720 (begin_speculative_block): Likewise.
7721 (create_check_block_twin): Likewise for param "insn" and locals
7722 "label", "check", "twin". Introduce local "check_pat" to avoid
7723 "check" being used as a plain rtx before being used as an insn.
7724 (fix_recovery_deps): Add a checked cast to rtx_insn * when
7725 extracting elements from ready_list.
7726 (sched_remove_insn): Strengthen param "insn" from rtx to
7728 (sched_emit_insn): Likewise for return type.
7729 (ready_remove_first_dispatch): Likewise for return type and local
7732 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
7734 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
7737 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
7738 from rtx to rtx_insn *.
7739 (add_dependence_list): Likewise for param "insn". Add a checked
7741 (add_dependence_list_and_free): Strengthen param "insn" from rtx
7742 to rtx_insn *. Strengthen param "list_p" from rtx * to
7744 (chain_to_prev_insn): Strengthen param "insn" and locals
7745 "prec_nonnote", "i" from rtx to rtx_insn *.
7746 (flush_pending_lists): Likewise for param "insn".
7747 (cur_insn): Likewise for this variable.
7748 (haifa_start_insn): Add a checked cast.
7749 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
7750 (sched_analyze_reg): Likewise for param "insn".
7751 (sched_analyze_1): Likewise.
7752 (sched_analyze_2): Likewise. Add checked casts.
7753 (sched_analyze_insn): Likewise. Also for local "prev".
7754 (deps_analyze_insn): Likewise for param "insn".
7755 (sched_analyze): Likewise for params "head", "tail" and local "insn".
7756 (add_dependence_1): Likewise for params "insn", "elem".
7757 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
7758 (parse_add_or_inc): Likewise for param "insn".
7759 (find_inc): Likewise for local "inc_cand".
7760 (find_modifiable_mems): Likewise for params "head", "tail" and
7761 locals "insn", "next_tail".
7763 * sched-ebb.c (init_ready_list): Likewise for local "insn".
7764 (begin_schedule_ready): Likewise for param "insn".
7765 (begin_move_insn): Likewise for params "insn" and "last".
7766 (ebb_print_insn): Strengthen param "insn" from const_rtx to
7768 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
7769 (ebb_contributes_to_priority): Likewise for params "next", "insn".
7770 (ebb_add_remove_insn): Likewise for param "insn".
7771 (advance_target_bb): Likewise.
7773 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
7775 (check_live): Likewise for param "insn".
7776 (init_ready_list): Likewise for local "insn".
7777 (can_schedule_ready_p): Likewise for param "insn".
7778 (begin_schedule_ready): Likewise.
7779 (new_ready): Likewise for param "next".
7780 (rgn_print_insn): Likewise for param "insn".
7781 (rgn_rank): Likewise for params "insn1", "insn2".
7782 (contributes_to_priority): Likewise for params "next", "insn".
7783 (rgn_insn_finishes_block_p): Likewise for param "insn".
7784 (add_branch_dependences): Likewise for params "head", "tail" and
7785 locals "insn", "last".
7786 (rgn_add_remove_insn): Likewise for param "insn".
7787 (advance_target_bb): Likewise.
7789 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
7790 const_rtx to const rtx_insn *.
7792 * sel-sched-dump.h (sel_print_insn): Likewise.
7794 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
7795 (deps_init_id): Likewise.
7797 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
7798 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
7801 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7803 * output.h (final_start_function): Strengthen param 1 from rtx to
7806 * final.c (final_start_function): Likewise, renaming back from
7807 "uncast_first" to "first", and dropping the checked cast from rtx
7810 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7812 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
7813 * final.c (final): Likewise. Rename param back from
7814 "uncast_first" to "first" and eliminate the checked cast from rtx
7817 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7819 * output.h (shorten_branches): Strengthen param from rtx to
7822 * final.c (shorten_branches): Likewise, renaming param back from
7823 "uncast_first" to "first", and dropping the checked cast from rtx
7826 * genattr.c (gen_attr): Likewise when writing out the prototype of
7829 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7831 * sched-int.h (struct haifa_sched_info): Strengthen fields
7832 "prev_head" and "next_tail" from rtx to rtx_insn *.
7834 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7836 * rtl.h (rtx_jump_table_data::get_labels): New method.
7837 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
7838 with use of the new rtx_jump_table_data::get_labels method.
7839 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
7840 to rtx_jump_table_data *. Simplify by using get_labels method.
7841 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
7842 a dyn_cast, introducing local "table", using it to replace
7843 label-lookup logic with a get_labels method call.
7844 (patch_jump_insn): Simplify using get_labels method.
7845 * dwarf2cfi.c (create_trace_edges): Likewise.
7846 * rtlanal.c (label_is_jump_target_p): Likewise.
7848 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7850 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
7853 * emit-rtl.c (unshare_all_rtl_1): Likewise.
7854 (unshare_all_rtl_again): Likewise, also for local "p".
7856 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7858 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
7860 * cfgrtl.c (delete_insn_and_edges): Likewise.
7862 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7864 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
7865 from rtx to rtx_insn *.
7867 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
7869 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7871 * function.c (thread_prologue_and_epilogue_insns): Likewise for
7872 locals "returnjump", "epilogue_end", "insn", "next".
7874 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
7875 "returnjump" from rtx * to rtx_insn **.
7876 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
7878 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7880 * basic-block.h (struct edge_def). Strengthen "r" within
7881 union edge_def_insns from rtx to rtx_insn *.
7883 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
7884 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
7886 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
7887 from rtx to rtx_insn *.
7888 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
7890 * postreload-gcse.c (reg_killed_on_edge): Likewise.
7891 (reg_used_on_edge): Likewise.
7892 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
7893 (gt_pch_nx): New overload for rtx_insn *&.
7894 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
7895 from rtx to rtx_insn *.
7897 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7899 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
7900 from rtx to rtx_insn *.
7901 (BB_FOOTER): Replace function with access macro.
7902 (SET_BB_FOOTER): Delete.
7904 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
7906 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
7907 (emit_barrier_after_bb): Likewise.
7908 (record_effective_endpoints): Likewise.
7909 (relink_block_chain): Likewise.
7910 (fixup_fallthru_exit_predecessor): Likewise.
7911 (cfg_layout_duplicate_bb): Likewise.
7912 (cfg_layout_split_block): Likewise.
7913 (cfg_layout_delete_block): Likewise.
7914 (cfg_layout_merge_blocks): Likewise.
7915 (BB_FOOTER): Delete function.
7916 (SET_BB_FOOTER): Delete function.
7917 * combine.c (update_cfg_for_uncondjump): Replace uses of
7918 SET_BB_FOOTER with BB_FOOTER.
7920 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7922 * except.h (struct eh_landing_pad_d): Strengthen field
7923 "landing_pad" from rtx to rtx_code_label *.
7925 * except.c (sjlj_emit_dispatch_table): Likewise for param
7927 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
7929 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7931 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
7932 first param from rtx to rtx_insn *.
7933 * config/xtensa/xtensa.c (struct machine_function): Likewise for
7934 field "set_frame_ptr_insn".
7935 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
7936 "csend" from rtx to rtx_code_label *.
7937 (xtensa_expand_atomic): Likewise for local "csloop".
7938 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
7940 (xtensa_call_tls_desc): Likewise for return type and locals
7941 "call_insn", "insns".
7942 (xtensa_legitimize_tls_address): Likewise for local "insns".
7943 (xtensa_expand_prologue): Likewise for locals "insn", "first".
7945 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7947 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
7948 first param from rtx to rtx_insn *.
7949 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
7952 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7954 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
7955 Strengthen param 1 from rtx to rtx_insn *.
7956 (tilepro_output_cbranch): Likewise.
7957 (tilepro_adjust_insn_length): Likewise.
7958 (tilepro_final_prescan_insn): Likewise for sole param.
7960 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
7961 Likewise for local "last".
7962 (cbranch_predicted_p): Likewise for param "insn".
7963 (tilepro_output_simple_cbranch_with_opcode): Likewise.
7964 (tilepro_output_cbranch_with_opcode): Likewise.
7965 (tilepro_output_cbranch): Likewise.
7966 (frame_emit_load): Likewise for return type and locals "seq",
7968 (emit_sp_adjust): Likewise for return type and local "insn".
7969 (tilepro_expand_epilogue): Likewise for locals "last_insn",
7971 (tilepro_adjust_insn_length): Likewise for param "insn".
7972 (next_insn_to_bundle): Likewise for return type and params
7974 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
7975 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
7977 (match_addli_pcrel): Likewise for param "insn".
7978 (replace_addli_pcrel): Likewise.
7979 (match_auli_pcrel): Likewise.
7980 (replace_auli_pcrel): Likewise.
7981 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
7983 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
7984 "queue", "next_queue", "prev".
7985 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
7986 (tilepro_final_prescan_insn): Likewise for param "insn".
7988 2014-08-25 David Malcolm <dmalcolm@redhat.com>
7990 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
7991 Strengthen param 1 from rtx to rtx_insn *.
7992 (tilegx_output_cbranch): Likewise.
7993 (tilegx_adjust_insn_length): Likewise.
7994 (tilegx_final_prescan_insn): Likewise for sole param.
7996 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
7998 (cbranch_predicted_p): Likewise for param "insn".
7999 (tilegx_output_simple_cbranch_with_opcode): Likewise.
8000 (tilegx_output_cbranch_with_opcode): Likewise.
8001 (tilegx_output_cbranch): Likewise.
8002 (frame_emit_load): Likewise for return type.
8003 (set_frame_related_p): Likewise for locals "seq", "insn".
8004 (emit_sp_adjust): Likewise for return type, and for local "insn".
8005 Introduce local "pat" for use in place of "insn" where the latter
8006 isn't an instruction.
8007 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
8008 from rtx to rtx_insn *.
8009 (tilegx_adjust_insn_length): Likewise for param "insn".
8010 (next_insn_to_bundle): Likewise for return type and params "r" and
8012 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
8014 (replace_insns): Likewise for params "old_insn", "new_insns".
8015 (replace_mov_pcrel_step1): Likewise for param "insn" and local
8017 (replace_mov_pcrel_step2): Likewise.
8018 (replace_mov_pcrel_step3): Likewise.
8019 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
8021 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
8022 "queue", "next_queue", "prev".
8023 (tilegx_output_mi_thunk): Likewise for local "insn".
8024 (tilegx_final_prescan_insn): Likewise for param "insn".
8026 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8028 * config/spu/spu.c (frame_emit_store): Strengthen return type from
8030 (frame_emit_load): Likewise.
8031 (frame_emit_add_imm): Likewise, also for local "insn".
8032 (spu_expand_prologue): Likewise for local "insn".
8033 (struct spu_bb_info): Likewise for field "prop_jump".
8034 (emit_nop_for_insn): Likewise for param "insn" and local
8036 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
8038 (spu_emit_branch_hint): Likewise for params "before", "branch" and
8039 locals "hint", "insn".
8040 (get_branch_target): Likewise for param "branch".
8041 (insn_clobbers_hbr): Likewise for param "insn".
8042 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
8043 locals "insn", "before_4", "before_16".
8044 (insert_hbrp): Likewise for local "insn".
8045 (spu_machine_dependent_reorg): Likewise for locals "branch",
8046 "insn", "next", "bbend".
8047 (uses_ls_unit): Likewise for param "insn".
8048 (get_pipe): Likewise.
8049 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
8050 introducing a checked cast.
8051 (spu_sched_adjust_cost): Likewise for params "insn" and
8053 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
8054 (spu_sms_res_mii): Likewise.
8056 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8058 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
8059 from rtx to rtx_insn *.
8060 (output_cbranch): Likewise for param 6.
8061 (output_return): Likewise for param 1.
8062 (output_sibcall): Likewise.
8063 (output_v8plus_shift): Likewise.
8064 (output_v8plus_mult): Likewise.
8065 (output_v9branch): Likewise for param 7.
8066 (output_cbcond): Likewise for param 3.
8068 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
8070 (sparc_legitimize_pic_address): Likewise.
8071 (sparc_emit_call_insn): Likewise.
8072 (emit_save_or_restore_regs): Likewise.
8073 (emit_window_save): Likewise for return type and local "insn".
8074 (sparc_expand_prologue): Likewise for local "insn".
8075 (sparc_flat_expand_prologue): Likewise.
8076 (output_return): Likewise for param "insn".
8077 (output_sibcall): Likewise for param "insn" and local "delay".
8078 (output_ubranch): Likewise for param "insn".
8079 (output_cbranch): Likewise.
8080 (output_cbcond): Likewise.
8081 (output_v9branch): Likewise.
8082 (output_v8plus_shift): Likewise.
8083 (sparc_output_mi_thunk): Likewise for local "insn".
8084 (get_some_local_dynamic_name): Likewise.
8085 (output_v8plus_mult): Likewise for param "insn".
8087 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8089 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
8090 from rtx to rtx_insn *.
8091 (output_branchy_insn): Likewise for param 3.
8092 (output_far_jump): Likewise for param 1.
8093 (final_prescan_insn): Likewise.
8094 (sh_insn_length_adjustment): Likewise for sole param.
8096 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
8097 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
8099 (sh_emit_compare_and_set): Likewise for local "lab".
8100 (output_far_jump): Strengthen param "insn" and local "prev" from
8102 (output_branchy_insn): Likewise for param "insn" and local
8104 (output_ieee_ccmpeq): Likewise for param "insn".
8105 (struct label_ref_list_d): Strengthen field "label" from rtx to
8107 (pool_node): Likewise.
8108 (pool_window_label): Likewise for this global.
8109 (add_constant): Likewise for return type and locals "lab", "new_rtx".
8110 (dump_table): Strengthen params "start", "barrier" and local
8111 "scan" from rtx to rtx_insn *.
8112 (broken_move): Likewise for param "insn".
8113 (untangle_mova): Likewise for params "first_mova" and "new_mova".
8114 Strengthen param "first_mova" from rtx * to rtx_insn **.
8115 (mova_p): Likewise for param "insn".
8116 (fixup_mova): Likewise for param "mova".
8117 (find_barrier): Likewise for return type, params "mova" and
8118 "from", and locals "barrier_before_mova", "found_barrier",
8119 "good_barrier", "orig", "last_symoff", "next". Strengthen local
8120 "label" from rtx to rtx_code_label *.
8121 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
8123 (sh_reorg): Likewise for locals "link", "scan", "barrier".
8124 (split_branches): Likewise for param "first" and local "insn".
8125 (final_prescan_insn): Likewise for param "insn".
8126 (sequence_insn_p): Likewise for locals "prev", "next".
8127 (sh_insn_length_adjustment): Likewise for param "insn".
8128 (sh_can_redirect_branch): Likewise for local "insn".
8129 (find_r0_life_regions): Likewise for locals "end", "insn".
8130 (sh_output_mi_thunk): Likewise for local "insns".
8132 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8134 * config/score/score.c (score_output_mi_thunk): Strengthen local
8135 "insn" from rtx to rtx_insn *.
8136 (score_prologue): Likewise.
8138 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8140 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
8141 1 from rtx to rtx_insn *.
8142 (s390_emit_jump): Likewise for return type.
8143 (s390_emit_call): Likewise.
8144 (s390_load_got): Likewise.
8146 * config/s390/s390.c (last_scheduled_insn): Likewise for this
8148 (s390_match_ccmode): Likewise for param "insn".
8149 (s390_emit_jump): Likewise for return type.
8150 (s390_split_branches): Likewise for local "label".
8151 (struct constant): Strengthen field "label" from rtx to
8153 (struct constant_pool): Likewise for field "label". Strengthen
8154 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
8156 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
8158 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
8159 (s390_end_pool): Likewise.
8160 (s390_dump_pool): Likewise for local "insn".
8161 (s390_mainpool_start): Likewise.
8162 (s390_chunkify_start): Likewise.
8163 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
8164 with insns. Strengthen locals "label", "jump", "barrier", "next",
8165 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
8166 (s390_chunkify_finish): Strengthen local "insn" from rtx to
8168 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
8169 "jump", "label", "next_insn".
8170 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
8171 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
8173 (s390_load_got): Likewise for return type and local "insns".
8174 (s390_save_gprs_to_fprs): Likewise for local "insn".
8175 (s390_restore_gprs_from_fprs): Likewise.
8176 (pass_s390_early_mach::execute): Likewise.
8177 (s390_emit_prologue): Likewise for local "insns".
8178 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
8180 (s390_emit_call): Strengthen return type and local "insn" from
8182 (s390_emit_tpf_eh_return): Likewise for local "insn".
8183 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
8184 "next_insn", introducing locals "s_pat", "rpat" to allow this.
8185 (s390_fix_long_loop_prediction): Likewise for param "insn" and
8187 (s390_non_addr_reg_read_p): Likewise for param "insn".
8188 (find_cond_jump): Likewise for return type and param "insn".
8189 (s390_swap_cmp): Likewise for param "insn".
8190 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
8191 "prev_insn", "next_insn".
8192 (s390_reorg): Likewise for locals "insn", "target".
8193 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
8194 (s390_sched_variable_issue): For now, rename param "insn" to
8195 "uncast_insn", introducing a checked cast.
8196 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
8198 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
8199 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
8201 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8203 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
8204 param from rtx to rtx_insn *.
8205 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
8207 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8209 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
8210 4 from rtx to rtx_insn *.
8211 (rs6000_final_prescan_insn): Likewise for first param.
8212 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
8214 (rs6000_get_some_local_dynamic_name): Likewise.
8215 (output_cbranch): Likewise for param "insn".
8216 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
8217 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
8218 (rs6000_emit_allocate_stack): Likewise for local "insn".
8219 (load_cr_save): Likewise.
8220 (restore_saved_cr): Likewise.
8221 (restore_saved_lr): Likewise.
8222 (emit_cfa_restores): Likewise.
8223 (rs6000_output_function_epilogue): Likewise for locals "insn" and
8224 "deleted_debug_label".
8225 (rs6000_output_mi_thunk): Likewise for local "insn".
8226 (rs6000_final_prescan_insn): Likewise for param "insn".
8228 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8230 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
8231 Strengthen param "insn" from rtx to rtx_insn *.
8232 * config/picochip/picochip.c (picochip_current_prescan_insn):
8233 Likewise for this variable.
8234 (picochip_final_prescan_insn): Likewise for param "insn".
8236 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8238 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
8239 from rtx to rtx_insn *.
8240 (pa_output_indirect_call): Likewise.
8241 (pa_adjust_insn_length): Likewise.
8242 (pa_attr_length_millicode_call): Likewise.
8243 (pa_attr_length_call): Likewise.
8244 (pa_attr_length_indirect_call): Likewise.
8246 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
8248 (pa_attr_length_millicode_call): Likewise.
8249 (pa_attr_length_call): Likewise.
8250 (pa_output_call): Likewise.
8251 (pa_attr_length_indirect_call): Likewise.
8252 (pa_output_indirect_call): Likewise.
8254 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8256 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
8257 Strengthen first param from rtx to rtx_insn *.
8258 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
8261 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8263 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
8264 type from rtx to rtx_insn *.
8265 (mips_expand_call): Likewise.
8266 (mips_adjust_insn_length): Likewise for first param.
8267 (mips_output_conditional_branch): Likewise.
8268 (mips_output_order_conditional_branch): Likewise.
8269 (mips_final_prescan_insn): Likewise.
8271 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
8272 rtx_insn * for the SEQUENCE case.
8273 (SEQ_END): Likewise.
8274 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
8275 (mips_emit_call_insn): Likewise, also for local "insn".
8276 (mips16_gp_pseudo_reg): Likewise for local "scan".
8277 (mips16_build_call_stub): Likewise for return type and for local
8278 "insn". Introduce a new local "pattern" so that "insn" can indeed
8280 (mips_expand_call): Strengthen return type and local "insn" from
8282 (mips_block_move_loop): Strengthen local "label" from rtx to
8284 (mips_expand_synci_loop): Likewise for locals "label",
8286 (mips_set_frame_expr): Strengthen local "insn" from rtx to
8288 (mips16e_collect_argument_saves): Likewise for locals "insn",
8290 (mips_find_gp_ref): Likewise for param of callback for "pred"
8291 param, and for local "insn".
8292 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
8293 (mips_insn_has_flexible_gp_ref_p): Likewise.
8294 (mips_epilogue_emit_cfa_restores): Likewise for return type and
8296 (mips_epilogue_set_cfa): Likewise for local "insn".
8297 (mips_expand_epilogue): Likewise.
8298 (mips_adjust_insn_length): Likewise for param "insn".
8299 (mips_output_conditional_branch): Likewise.
8300 (mips_output_order_conditional_branch): Likewise.
8301 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
8302 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
8303 "falu2_turn_enabled_insn".
8304 (mips_builtin_branch_and_move): Strengthen locals "true_label",
8305 "done_label" from rtx to rtx_code_label *.
8306 (struct mips16_constant): Likewise for field "label".
8307 (mips16_add_constant): Likewise for return type.
8308 (mips16_emit_constants_1): Strengthen return type and param "insn"
8309 from rtx to rtx_insn *.
8310 (mips16_emit_constants): Likewise for param "insn".
8311 (mips16_insn_length): Likewise.
8312 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
8313 to rtx_code_label *.
8314 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
8315 from rtx to rtx_insn *.
8316 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
8317 "jump". Strengthen local "label" from rtx to rtx_code_label *.
8318 (r10k_simplify_address): Strengthen param "insn" and local
8319 "def_insn" from rtx to rtx_insn *.
8320 (r10k_safe_address_p): Strengthen param "insn" from rtx to
8322 (r10k_needs_protection_p_1): Update target type of cast of data
8323 from to rtx to rtx_insn *.
8324 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
8325 rtx * to rtx_insn **.
8326 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
8328 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
8329 (mips_call_expr_from_insn): Likewise for param "insn".
8330 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
8331 (mips_find_pic_call_symbol): Likewise for param "insn".
8332 (mips_annotate_pic_calls): Likewise for local "insn".
8333 (mips_sim_insn): Likewise for this variable.
8334 (struct mips_sim): Likewise for field "insn" within elements of
8336 (mips_sim_wait_reg): Likewise for param "insn".
8337 (mips_sim_wait_regs): Likewise.
8338 (mips_sim_wait_units): Likewise.
8339 (mips_sim_wait_insn): Likewise.
8340 (mips_sim_issue_insn): Likewise.
8341 (mips_sim_finish_insn): Likewise.
8342 (mips_seq_time): Likewise for param "seq" and local "insn".
8343 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
8344 locals "first", "second".
8345 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
8346 "last", "last2", "next".
8347 (mips_avoid_hazard): Likewise for params "after", "insn".
8348 (mips_reorg_process_insns): Likewise for locals "insn",
8349 "last_insn", "subinsn", "next_insn".
8350 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
8351 (mips16_split_long_branches): Likewise for locals "insn" "jump",
8353 (mips_output_mi_thunk): Likewise for local "insn".
8354 (mips_final_prescan_insn): Likewise for param "insn".
8356 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8358 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
8359 Strengthen return type and local "insns" from rtx to rtx_insn *.
8360 (microblaze_legitimize_tls_address): Likewise for local "insns".
8361 (microblaze_block_move_loop): Strengthen local "label" from rtx
8362 to rtx_code_label *.
8363 (microblaze_expand_prologue): Strengthen two locals named "insn"
8364 from rtx to rtx_insn *.
8365 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
8366 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
8367 "insn". Strengthen locals "div_label", "div_end_label" from rtx
8368 to rtx_code_label *.
8370 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8372 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
8373 param from rtx to rtx_insn *.
8374 (mep_reuse_lo): Likewise for third param.
8375 (mep_use_post_modify_p): Likewise for first param.
8376 (mep_core_address_length): Likewise.
8377 (mep_cop_address_length): Likewise.
8378 (mep_final_prescan_insn): Likewise.
8379 (mep_store_data_bypass_p): Likewise for both params.
8380 (mep_mul_hilo_bypass_p): Likewise.
8381 (mep_ipipe_ldc_p): Likewise for param.
8383 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
8384 (mep_rewrite_mult): Likewise.
8385 (mep_rewrite_mulsi3): Likewise.
8386 (mep_rewrite_maddsi3): Likewise.
8387 (mep_reuse_lo_p_1): Likewise.
8388 (mep_reuse_lo_p): Likewise.
8389 (mep_frame_expr): Likewise.
8390 (mep_make_parallel): Likewise for both params.
8391 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
8393 (mep_use_post_modify_p): Likewise for param "insn".
8394 (mep_core_address_length): Likewise.
8395 (mep_cop_address_length): Likewise.
8396 (mep_reg_set_in_function): Likewise for local "insn".
8397 (mep_asm_without_operands_p): Likewise.
8398 (F): Likewise for return type and param "x".
8399 (add_constant): Likewise for local "insn".
8400 (maybe_dead_move): Likewise for return type and local "insn".
8401 (mep_expand_prologue): Likewise for local "insn".
8402 (mep_final_prescan_insn): Likewise for param "insn".
8403 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
8404 "next", "follow", "x".
8405 (mep_insert_repeat_label_last): Likewise for return type, param
8406 "last_insn", and locals "next", "prev". Strengthen param "label"
8407 from rtx to rtx_code_label *.
8408 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
8410 (struct mep_doloop_end): Likewise for fields "insn" and
8412 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
8413 Strengthen local "repeat_label" from rtx to rtx_code_label *.
8414 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
8416 (mep_invert_branch): Likewise for params "insn" and "after".
8417 (mep_reorg_erepeat): Likewise for param "insns" and locals
8418 "insn", "prev", "new_last", "barrier", "user". Strengthen local
8419 "l" from rtx to rtx_code_label *.
8420 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
8421 from rtx to rtx_insn *.
8422 (mep_reorg_addcombine): Likewise for param "insns" and locals
8424 (add_sp_insn_p): Likewise for param "insn".
8425 (mep_reorg_noframe): Likewise for param "insns" and locals
8426 "start_frame_insn", "end_frame_insn", "next".
8427 (mep_reorg): Likewise for local "insns".
8428 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
8430 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
8431 (mep_mul_hilo_bypass_p): Likewise.
8432 (mep_ipipe_ldc_p): Likewise for param "insn".
8433 (mep_make_bundle): Likewise for return type, param "cop" and local
8434 "insn", splitting out the latter into a new local "seq" for when it
8435 is a SEQUENCE rather than an insn.
8436 (core_insn_p): Likewise for param "insn".
8437 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
8438 "last", "first", "note", "prev", "core_insn".
8440 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8442 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
8444 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
8445 (m68k_final_prescan_insn): Likewise for first param.
8447 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
8448 (m68k_set_frame_related): Likewise for param "insn".
8449 (output_btst): Likewise for param "insn".
8450 (m68k_final_prescan_insn): Likewise.
8451 (m68k_move_to_reg): Likewise for local "insn".
8452 (m68k_call_tls_get_addr): Likewise for local "insns".
8453 (m68k_call_m68k_read_tp): Likewise.
8454 (strict_low_part_peephole_ok): Likewise for param "first_insn".
8455 (m68k_output_mi_thunk): Likewise for local "insn".
8457 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8459 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
8460 first param from rtx to rtx_insn *.
8461 (iq2000_adjust_insn_length): Likewise.
8462 (iq2000_output_conditional_branch): Likewise.
8463 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
8464 "insn" and local "nop_insn".
8465 (iq2000_annotate_frame_insn): Likewise for param "insn".
8466 (iq2000_expand_prologue): Likewise for both locals "insn".
8467 (iq2000_adjust_insn_length): Likewise for param "insn".
8468 (iq2000_output_conditional_branch): Likewise.
8470 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8472 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
8473 "insns" from rtx to rtx_insn *.
8474 (ia64_emit_cond_move): Likewise for locals "insn", "first".
8475 (struct spill_fill_data): Likewise for field "init_after" and for
8476 elements of array field "prev_insn".
8477 (spill_restore_mem): Likewise for locals "insn", "first".
8478 (do_spill): Likewise for local "insn".
8479 (do_restore): Likewise.
8480 (ia64_expand_prologue): Likewise.
8481 (ia64_expand_epilogue): Likewise.
8482 (emit_insn_group_barriers): Likewise for locals "insn",
8484 (emit_all_insn_group_barriers): Likewise for locals "insn",
8486 (dfa_stop_insn): Likewise for this global.
8487 (dfa_pre_cycle_insn): Likewise.
8488 (ia64_nop): Likewise.
8489 (final_emit_insn_group_barriers): Likewise for locals "insn",
8491 (emit_predicate_relation_info): Likewise for locals "head", "n",
8493 (ia64_reorg): Likewise for local "insn".
8494 (ia64_output_mi_thunk): Likewise.
8495 (expand_vec_perm_interleave_2): Likewise for local "seq".
8497 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8499 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
8500 param 1 "insn" from rtx to rtx_insn *.
8501 (ix86_use_lea_for_mov): Likewise.
8502 (ix86_avoid_lea_for_addr): Likewise.
8503 (ix86_split_lea_for_addr): Likewise.
8504 (ix86_lea_for_add_ok): Likewise.
8505 (ix86_output_call_insn): Likewise.
8507 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
8508 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
8509 (ix86_output_function_epilogue): Likewise for locals "insn",
8510 "deleted_debug_label".
8511 (legitimize_tls_address): Likewise for local "insn".
8512 (get_some_local_dynamic_name): Likewise.
8513 (increase_distance): Likewise for params "prev", "next".
8514 (distance_non_agu_define_in_bb): Likewise for params "insn",
8515 "start" and locals "prev", "next".
8516 (distance_non_agu_define): Likewise for param "insn".
8517 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
8518 locals "next", "prev".
8519 (distance_agu_use): Likewise for param "insn".
8520 (ix86_lea_outperforms): Likewise.
8521 (ix86_ok_to_clobber_flags): Likewise.
8522 (ix86_avoid_lea_for_add): Likewise.
8523 (ix86_use_lea_for_mov): Likewise.
8524 (ix86_avoid_lea_for_addr): Likewise.
8525 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
8526 (ix86_split_lea_for_addr): Likewise for param "insn".
8527 (ix86_lea_for_add_ok): Likewise for param "insn".
8528 (ix86_expand_carry_flag_compare): Likewise for local
8530 (ix86_expand_int_movcc): Likewise.
8531 (ix86_output_call_insn): Likewise for param "insn".
8532 (ix86_output_call_insn): Likewise for local "i".
8533 (x86_output_mi_thunk): Introduce local "insn", using it in place
8534 of "tmp" when dealing with insns.
8535 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
8537 (ix86_pad_returns): Likewise for locals "ret", "prev".
8538 (ix86_count_insn_bb): Likewise for local "insn".
8539 (ix86_pad_short_function): Likewise for locals "ret", "insn".
8540 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
8541 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
8542 (expand_vec_perm_interleave2): Likewise for local "seq".
8543 (expand_vec_perm_vperm2f128_vblend): Likewise.
8544 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
8545 call to for_each_rtx with for_each_rtx_in_insn.
8547 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8549 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
8550 "label" from rtx to rtx_code_label *.
8551 (ix86_expand_prologue): Likewise.
8552 (ix86_expand_split_stack_prologue): Likewise for locals "label",
8554 (ix86_split_idivmod): Likewise for locals "end_label" and
8556 (ix86_expand_branch): Likewise for local "label2".
8557 (ix86_expand_aligntest): Likewise for return type and local "label".
8558 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
8560 (expand_movmem_epilogue): Likewise for the various locals named
8562 (expand_setmem_epilogue): Likewise.
8563 (expand_small_movmem_or_setmem): Likewise for local "label".
8564 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
8565 Strengthen param "done_label" from rtx * to rtx_code_label **.
8566 Strengthen locals "loop_label" and "label" from rtx to
8568 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
8569 Likewise for locals "loop_label", "label".
8570 (ix86_expand_set_or_movmem): Likewise for locals "label",
8571 "jump_around_label", "hot_label".
8572 (ix86_expand_strlensi_unroll_1): Likewise for locals
8573 "align_2_label", align_3_label", "align_4_label", "end_0_label",
8575 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
8576 (void ix86_emit_i387_log1p): Likewise for locals "label1",
8577 "label2", "jump_label".
8578 (ix86_expand_sse_compare_and_jump): Likewise for return type and
8580 (ix86_expand_lfloorceil): Likewise for local "label".
8581 (ix86_expand_rint): Likewise.
8582 (ix86_expand_floorceildf_32): Likewise.
8583 (ix86_expand_floorceil): Likewise.
8584 (ix86_expand_rounddf_32): Likewise.
8585 (ix86_expand_trunc): Likewise.
8586 (ix86_expand_truncdf_32): Likewise.
8587 (ix86_expand_round): Likewise.
8589 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8591 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
8592 first param from rtx to rtx_insn *.
8593 (h8300_insn_length_from_table): Likewise.
8594 * config/h8300/h8300.c (F): Likewise for return type and param
8596 (Fpa): Add a checked cast to rtx_insn *.
8597 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
8599 (final_prescan_insn): Likewise for param "insn".
8600 (h8300_binary_length): Likewise.
8601 (h8300_insn_length_from_table): Likewise.
8603 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8605 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
8606 Strengthen first param "insn" from rtx to rtx_insn *.
8608 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
8610 (frame_insn): Likewise for return type. Introduce local "insn"
8611 for use in place of local "x" for use as an rtx_insn *.
8612 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
8613 (epiphany_expand_prologue): Likewise for local "insn".
8614 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
8615 * config/epiphany/resolve-sw-modes.c
8616 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
8619 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8621 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
8622 param from rtx to rtx_insn *.
8623 (c6x_final_prescan_insn): Likewise for first param.
8625 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
8626 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
8627 (c6x_expand_compare): Strengthen local "insns" from rtx to
8629 (c6x_get_unit_specifier): Likewise for param "insn".
8630 (c6x_print_unit_specifier_field): Likewise.
8631 (c6x_final_prescan_insn): Likewise.
8632 (emit_add_sp_const): Likewise for local "insn".
8633 (c6x_expand_prologue): Likewise.
8635 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8637 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
8638 param 1 from rtx to rtx_insn *.
8639 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
8640 the various locals named "insn".
8641 (expand_epilogue_reg_restore): Likewise.
8642 (frame_related_constant_load): Likewise.
8643 (add_to_reg): Likewise.
8644 (emit_link_insn): Likewise.
8645 (do_link): Likewise.
8646 (expand_interrupt_handler_prologue): Likewise.
8647 (branch_dest): Likewise for param "branch".
8648 (asm_conditional_branch): Likewise for param "insn".
8649 (gen_one_bundle): Likewise for elements of param "slot" and local
8651 (bfin_gen_bundles): Likewise for locals "insn", "next" and
8652 elements of local "slot".
8653 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
8654 "queue", "next_queue", "prev".
8655 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
8656 (add_sched_insns_for_speculation): Likewise for local "insn".
8658 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8660 * config/avr/avr-protos.h (output_movqi): Strengthen first param
8661 from rtx to rtx_insn *.
8662 (output_movhi): Likewise.
8663 (output_movsisf): Likewise.
8664 (avr_out_tstsi): Likewise.
8665 (avr_out_tsthi): Likewise.
8666 (avr_out_tstpsi): Likewise.
8667 (avr_out_compare): Likewise.
8668 (avr_out_compare64): Likewise.
8669 (avr_out_movpsi): Likewise.
8670 (ashlqi3_out): Likewise.
8671 (ashlhi3_out): Likewise.
8672 (ashlsi3_out): Likewise.
8673 (ashrqi3_out): Likewise.
8674 (ashrhi3_out): Likewise.
8675 (ashrsi3_out): Likewise.
8676 (lshrqi3_out): Likewise.
8677 (lshrhi3_out): Likewise.
8678 (lshrsi3_out): Likewise.
8679 (avr_out_ashlpsi3): Likewise.
8680 (avr_out_ashrpsi3): Likewise.
8681 (avr_out_lshrpsi3): Likewise.
8682 (avr_out_fract): Likewise.
8683 (avr_out_sbxx_branch): Likewise.
8684 (avr_out_round): Likewise.
8685 (avr_out_xload): Likewise.
8686 (avr_out_movmem): Likewise.
8687 (adjust_insn_length): Likewise.
8688 (avr_out_lpm): Likewise.
8689 (reg_unused_after): Likewise.
8690 (_reg_unused_after): Likewise.
8691 (avr_jump_mode): Likewise for second param.
8692 (jump_over_one_insn): Likewise for first param.
8693 (avr_final_prescan_insn): Likewise.
8694 (out_shift_with_cnt): Likewise for second param.
8696 * config/avr/avr.c (get_sequence_length): Likewise for param
8697 "insns" and local "insn".
8698 (emit_push_byte): Likewise for local "insn".
8699 (emit_push_sfr): Likewise.
8700 (avr_prologue_setup_frame): Likewise for locals "insn",
8701 "fp_plus_insns", "sp_plus_insns".
8702 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
8704 (avr_jump_mode): Likewise for param "insn".
8705 (avr_final_prescan_insn): Likewise.
8706 (avr_find_unused_d_reg): Likewise.
8707 (avr_out_lpm_no_lpmx): Likewise.
8708 (avr_out_lpm): Likewise.
8709 (avr_out_xload): Likewise.
8710 (output_movqi): Likewise.
8711 (output_movhi): Likewise.
8712 (out_movqi_r_mr): Likewise.
8713 (out_movhi_r_mr): Likewise.
8714 (out_movsi_r_mr): Likewise.
8715 (out_movsi_mr_r): Likewise.
8716 (output_movsisf): Likewise.
8717 (avr_out_load_psi): Likewise.
8718 (avr_out_store_psi): Likewise.
8719 (avr_out_movpsi): Likewise.
8720 (out_movqi_mr_r): Likewise.
8721 (avr_out_movhi_mr_r_xmega): Likewise.
8722 (out_movhi_mr_r): Likewise.
8723 (compare_condition): Likewise for param "insn" and local "next".
8724 (compare_sign_p): Likewise for param "insn".
8725 (compare_diff_p): Likewise.
8726 (compare_eq_p): Likewise.
8727 (avr_out_compare): Likewise.
8728 (avr_out_compare64): Likewise.
8729 (avr_out_tsthi): Likewise.
8730 (avr_out_tstpsi): Likewise.
8731 (avr_out_tstsi): Likewise.
8732 (out_shift_with_cnt): Likewise.
8733 (ashlqi3_out): Likewise.
8734 (ashlhi3_out): Likewise.
8735 (avr_out_ashlpsi3): Likewise.
8736 (ashlsi3_out): Likewise.
8737 (ashrqi3_out): Likewise.
8738 (ashrhi3_out): Likewise.
8739 (avr_out_ashrpsi3): Likewise.
8740 (ashrsi3_out): Likewise.
8741 (lshrqi3_out): Likewise.
8742 (lshrhi3_out): Likewise.
8743 (avr_out_lshrpsi3): Likewise.
8744 (lshrsi3_out): Likewise.
8745 (avr_out_fract): Likewise.
8746 (avr_out_round): Likewise.
8747 (avr_adjust_insn_length): Likewise.
8748 (reg_unused_after): Likewise.
8749 (_reg_unused_after): Likewise.
8750 (avr_compare_pattern): Likewise.
8751 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
8752 and locals "branch1", "branch2", "insn2", "jump".
8753 (avr_reorg): Likewise for local "insn".
8754 (avr_2word_insn_p): Likewise for param "insn".
8755 (jump_over_one_insn_p): Likewise.
8756 (avr_out_sbxx_branch): Likewise.
8757 (avr_out_movmem): Likewise.
8759 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8761 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
8762 param from rtx to rtx_insn *.
8763 (thumb1_final_prescan_insn): Likewise.
8764 (thumb2_final_prescan_insn): Likewise.
8766 * config/arm/arm.c (emit_set_insn): Strengthen return type from
8768 (struct minipool_node): Likewise for field "insn".
8769 (dump_minipool): Likewise for param "scan".
8770 (create_fix_barrier): Likewise for local "from". Strengthen local
8771 "label" from rtx to rtx_code_label *.
8772 (push_minipool_barrier): Strengthen param "insn" from rtx to
8774 (push_minipool_fix): Likewise.
8775 (note_invalid_constants): Likewise.
8776 (thumb2_reorg): Likewise for local "insn".
8777 (arm_reorg): Likewise.
8778 (thumb2_final_prescan_insn): Likewise for param
8779 "insn" and local "first_insn".
8780 (arm_final_prescan_insn): Likewise for param "insn" and locals
8781 "start_insn", "this_insn".
8782 (arm_debugger_arg_offset): Likewise for param "insn".
8783 (thumb1_emit_multi_reg_push): Likewise for return type and local
8785 (thumb1_final_prescan_insn): Likewise for param "insn".
8786 (thumb_far_jump_used_p): Likewise for local "insn".
8787 (thumb1_expand_prologue): Likewise.
8788 (arm_expand_epilogue_apcs_frame): Likewise.
8789 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
8790 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
8791 from rtx to rtx_code_label *.
8792 (arm_split_atomic_op): Likewise for local "label".
8793 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
8795 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8797 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
8798 first param from rtx to rtx_insn *.
8799 (arc_verify_short): Likewise.
8800 (arc_short_long): Likewise.
8801 (arc_need_delay): Likewise.
8803 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
8805 (arc_ccfsm_advance): Likewise for param "insn" and locals
8806 "start_insn", "this_insn".
8807 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
8808 (arc_ccfsm_post_advance): Likewise for param "insn".
8809 (arc_next_active_insn): Likewise for return type and param "insn".
8810 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
8811 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
8812 (output_short_suffix): Likewise for local "insn".
8813 (arc_final_prescan_insn): Likewise for param "insn". Remove
8814 now-redundant checked cast.
8815 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
8816 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
8817 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
8818 for use where lc_set became an insn.
8819 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
8821 (arc_get_insn_variants): Likewise for local "prev".
8822 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
8824 (arc_predicate_delay_insns): Likewise for local "insn".
8825 (arc_pad_return): Likewise for local "prev". For now, add a
8826 checked cast when extracting the insn from "final_sequence".
8827 (arc_short_long): Likewise for param "insn".
8828 (arc_need_delay): Likewise for param "insn" and local "next".
8829 (arc_label_align): Likewise for locals "prev", "next".
8831 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8833 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
8834 "insn" from rtx to rtx_insn *.
8835 (alpha_gp_save_rtx): Likewise for local "seq".
8836 (alpha_instantiate_decls): Likewise for local "top".
8837 (get_some_local_dynamic_name): Likewise for local "insn".
8838 (alpha_does_function_need_gp): Likewise.
8839 (set_frame_related_p): Likewise for return type and for locals
8841 (emit_frame_store_1): Likewise for local "insn".
8842 (alpha_expand_prologue): Likewise for locals "insn", "seq".
8843 (alpha_end_function): Likewise for local "insn".
8844 (alpha_output_mi_thunk_osf): Likewise.
8845 (alphaev4_insn_pipe): Likewise for param "insn".
8846 (alphaev5_insn_pipe): Likewise.
8847 (alphaev4_next_group): Likewise for return type and param 1
8849 (alphaev5_next_group): Likewise.
8850 (alpha_align_insns_1): Likewise for return type and param 1 of
8851 callback param "next_group", and for locals "i", "next", "prev",
8852 "where", "where2", "insn".
8854 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
8856 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
8857 rather than modifying the stmt.
8859 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8861 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
8862 cgraph_state conversion.
8864 2014-08-25 David Malcolm <dmalcolm@redhat.com>
8866 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
8867 Strengthen local "insns" from rtx to rtx_insn *.
8868 (aarch64_set_frame_expr): Likewise for local "insn".
8869 (aarch64_save_or_restore_fprs): Likewise.
8870 (aarch64_save_or_restore_callee_save_registers): Likewise.
8871 (aarch64_expand_prologue): Likewise.
8872 (aarch64_expand_epilogue): Likewise.
8873 (aarch64_output_mi_thunk): Likewise.
8874 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
8875 "label2" from rtx to rtx_code_label *.
8876 (aarch64_split_atomic_op): Likewise for local "label".
8878 2014-08-25 Martin Liska <mliska@suse.cz>
8880 * cgraph.h (symtab_node):
8881 (bool needed_p (void)): created from decide_is_symbol_needed
8882 (bool referred_to_p (void)): created from referred_to_p
8883 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
8884 * cgraph.h (cgraph_node):
8885 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
8886 (void expand (void)): created from expand_function
8887 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
8888 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
8889 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
8890 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
8891 * cgraph.h (varpool_node):
8892 (static void add (tree decl): created from varpool_add_new_variable
8893 * cgraph.h (cgraph_edge):
8895 (void remove_caller (void)): created from cgraph_edge_remove_caller
8896 (void remove_callee (void)): created from cgraph_edge_remove_callee
8897 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
8898 created from cgraph_set_call_stmt
8899 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
8900 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
8901 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
8902 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
8903 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
8904 created from cgraph_speculative_call_info
8905 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
8906 int freq_scale, bool update_original)): created from cgraph_clone_edge
8907 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
8908 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
8909 (bool recursive_p (void)): created from cgraph_edge_recursive_p
8910 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
8911 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
8912 (static void rebuild_references (void)): created from cgraph_rebuild_references
8913 * cgraph.h (symbol_table):
8914 (create_reference): renamed from add_reference
8915 (maybe_create_reference): renamed from maybe_add_reference
8916 (void register_symbol (symtab_node *node)): new function
8917 (void clear_asm_symbols (void)): new function
8918 (void unregister (symtab_node *node)): new function
8919 (void release_symbol (cgraph_node *node, int uid)): new function
8920 (cgraph_node * allocate_cgraph_symbol (void)): new function
8921 (void initialize (void)): created from cgraph_init
8922 (symtab_node *first_symbol (void)):new function
8923 (asm_node *first_asm_symbol (void)):new function
8924 (symtab_node *first_defined_symbol (void)):new function
8925 (varpool_node *first_variable (void)):new function
8926 (varpool_node *next_variable (varpool_node *node)):new function
8927 (varpool_node *first_static_initializer (void)):new function
8928 (varpool_node *next_static_initializer (varpool_node *node)):new function
8929 (varpool_node *first_defined_variable (void)):new function
8930 (varpool_node *next_defined_variable (varpool_node *node)):new function
8931 (cgraph_node *first_defined_function (void)):new function
8932 (cgraph_node *next_defined_function (cgraph_node *node)):new function
8933 (cgraph_node *first_function (void)):new function
8934 (cgraph_node *next_function (cgraph_node *node)):new function
8935 (cgraph_node *first_function_with_gimple_body (void)):new function
8936 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
8937 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
8938 created from symtab_remove_unreachable_nodes
8939 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
8940 (void process_new_functions (void)): created from cgraph_process_new_functions
8941 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
8942 (bool output_variables (void)): created from varpool_node::output_variables
8943 (void output_asm_statements (void)): created from output_asm_statements
8944 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
8945 (void compile (void)): created from compile
8946 (void output_weakrefs (void)): created from output_weakrefs
8947 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
8948 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
8949 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
8950 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
8951 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
8952 created from cgraph_next_function_with_gimple_body
8953 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
8954 created from cgraph_remove_edge_removal_hook
8955 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
8956 created from cgraph_add_node_removal_hook
8957 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
8958 created from cgraph_remove_node_removal_hook
8959 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
8960 created from varpool_add_node_removal_hook
8961 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
8962 created from varpool_remove_node_removal_hook
8963 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
8964 created from cgraph_add_function_insertion_hook
8965 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
8966 created from cgraph_remove_function_insertion_hook
8967 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
8968 created from varpool_add_variable_insertion_hook
8969 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
8970 created from varpool_remove_variable_insertion_hook
8971 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
8972 created from cgraph_add_edge_duplication_hook
8973 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
8974 created from cgraph_remove_edge_duplication_hook
8975 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
8976 created from cgraph_add_node_duplication_hook
8977 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
8978 created from cgraph_remove_node_duplication_hook
8979 (void call_edge_removal_hooks (cgraph_edge *e)):
8980 created from cgraph_call_edge_removal_hooks
8981 (void call_cgraph_insertion_hooks (cgraph_node *node)):
8982 created from call_function_insertion_hooks
8983 (void call_cgraph_removal_hooks (cgraph_node *node)):
8984 created from cgraph_call_node_removal_hooks
8985 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
8986 created from cgraph_node::call_duplication_hooks
8987 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
8988 created from cgraph_call_edge_duplication_hooks
8989 (void call_varpool_removal_hooks (varpool_node *node)):
8990 created from varpool_call_node_removal_hooks
8991 (void call_varpool_insertion_hooks (varpool_node *node)):
8992 created from varpool_call_variable_insertion_hooks
8993 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
8994 created from insert_to_assembler_name_hash
8995 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
8996 created from unlink_from_assembler_name_hash
8997 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
8998 created from symtab_prevail_in_asm_name_hash
8999 (void symtab_initialize_asm_name_hash (void)):
9000 created from symtab_initialize_asm_name_hash
9001 (void change_decl_assembler_name (tree decl, tree name)):
9002 created from change_decl_assembler_name
9003 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
9004 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
9005 created from decl_assembler_name_hash
9006 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
9007 created from decl_assembler_name_equal
9008 (static hashval_t hash_node_by_assembler_name (const void *p)):
9009 created from hash_node_by_assembler_name
9010 (static int eq_assembler_name (const void *p1, const void *p2)):
9011 created from eq_assembler_name
9013 2014-08-25 Marek Polacek <polacek@redhat.com>
9015 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
9017 2014-08-25 Petr Murzin <petr.murzin@intel.com>
9019 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
9020 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
9021 SWI1248_AVX512BW mode iterator.
9023 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
9026 * config/sh/predicates.md (general_extend_operand): Disable
9027 TRUNCATE before reload completes.
9029 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
9031 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
9033 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
9036 * config/sh/sh.opt (musermode): Allow negative form.
9037 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
9038 targets that don't support it.
9039 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
9040 Document -mno-usermode option.
9042 2014-08-24 Kito Cheng <kito@0xlab.org>
9044 * system.h (CALLER_SAVE_PROFITABLE): Poison.
9045 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
9046 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
9047 * doc/tm.texi: Regenerate.
9049 2014-08-24 Kito Cheng <kito@0xlab.org>
9051 * ira.c: Fix typo in comment.
9053 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
9055 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
9056 Deprecate c++1y. Change language to reflect greater confidence in C++14.
9058 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
9061 * config/pa/pa.c (pa_output_function_epilogue): Don't set
9062 last_address when the current function is a thunk.
9063 (pa_asm_output_mi_thunk): When we don't have named sections or they
9064 are not being used, check that thunk can reach the stub table with a
9067 2014-08-23 David Malcolm <dmalcolm@redhat.com>
9069 * web.c (union_match_dups): Strengthen param "insn" from rtx to
9071 (pass_web::execute): Likewise for local "insn".
9073 2014-08-23 David Malcolm <dmalcolm@redhat.com>
9075 * var-tracking.c (struct micro_operation_def): Strengthen field
9076 "insn" from rtx to rtx_insn *.
9077 (struct emit_note_data_def): Likewise.
9078 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
9079 (vt_stack_adjustments): Likewise for local "insn".
9080 (adjust_insn): Likewise for param "insn".
9081 (val_store): Likewise.
9082 (val_resolve): Likewise.
9083 (struct count_use_info): Likewise for field "insn".
9084 (log_op_type): Likewise for param "insn".
9085 (reverse_op): Likewise.
9086 (prepare_call_arguments): Likewise.
9087 (add_with_sets): The initial param takes an insn, but we can't
9088 yet strengthen it from rtx to rtx_insn * since it's used as a
9089 cselib_record_sets_hook callback. For now rename initial param
9090 from "insn" to "uncast_insn", and introduce a local "insn" of
9091 the stronger rtx_insn * type, with a checked cast.
9092 (compute_bb_dataflow): Strengthen local "insn" from rtx to
9094 (emit_note_insn_var_location): Likewise.
9095 (emit_notes_for_changes): Likewise.
9096 (emit_notes_for_differences): Likewise.
9097 (next_non_note_insn_var_location): Likewise for return type and
9099 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
9100 (vt_initialize): Likewise for local "insn".
9101 (delete_debug_insns): Likewise for locals "insn" and "next".
9103 2014-08-23 David Malcolm <dmalcolm@redhat.com>
9105 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
9107 (mark_constant_pool): Likewise for local "insn".
9109 2014-08-23 David Malcolm <dmalcolm@redhat.com>
9111 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
9113 (dead_debug_promote_uses): Likewise.
9114 (dead_debug_insert_temp): Likewise.
9116 2014-08-23 David Malcolm <dmalcolm@redhat.com>
9118 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
9119 from const_rtx to const rtx_insn *.
9120 (store_killed_after): Likewise. Strengthen locals "last", "act"
9121 from rtx to rtx_insn *.
9122 (store_killed_before): Strengthen param "insn" from const_rtx to
9123 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
9124 (find_moveable_store): Strengthen param "insn" from rtx to
9126 (compute_store_table): Likewise for local "insn".
9127 (insert_insn_start_basic_block): Likewise for param "insn" and
9128 locals "prev", "before", "insn".
9129 (insert_store): For now, add a checked cast to rtx_insn * on the
9130 result of gen_move_insn.
9131 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
9133 (replace_store_insn): Likewise. For now, add a checked cast to
9134 rtx_insn * on the result of gen_move_insn.
9136 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9138 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
9140 (expand_sjlj_dispatch_table): Likewise.
9142 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9144 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
9145 "insn" from rtx to rtx_insn *.
9147 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9149 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
9150 "insn" from rtx to rtx_insn *.
9151 (dup_block_and_redirect): Likewise for param 3 "before".
9153 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
9154 from rtx to rtx_insn *.
9155 (move_insn_for_shrink_wrap): Likewise.
9156 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
9157 (dup_block_and_redirect): Likewise for param "before" and local
9159 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
9161 (convert_to_simple_return): Likewise for local "start".
9163 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
9164 Strengthen local "insn" from rtx to rtx_insn *, for use when
9165 invoking requires_stack_frame_p.
9167 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9169 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
9171 (speculate_expr): Likewise for locals "orig_insn_rtx",
9173 (eq_transformed_insns): Likewise for locals "i1", "i2".
9174 (check_for_new_jump): Likewise for return type and local "end".
9175 (find_new_jump): Likewise for return type and local "jump".
9176 (sel_split_edge): Likewise for local "jump".
9177 (sel_create_recovery_block): Likewise.
9178 (sel_redirect_edge_and_branch_force): Likewise.
9179 (sel_redirect_edge_and_branch): Likewise.
9181 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9183 * sel-sched.c (substitute_reg_in_expr): Strengthen local
9184 "new_insn" from rtx to rtx_insn *.
9185 (create_insn_rtx_with_rhs): Likewise for return type and for local
9187 (create_insn_rtx_with_lhs): Likewise.
9188 (create_speculation_check): Likewise for local "insn_rtx".
9189 (implicit_clobber_conflict_p): Likewise for local "insn".
9190 (get_expr_cost): Likewise.
9191 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
9192 (move_cond_jump): Likewise for locals "next", "prev", "link",
9193 "head", "from", "to".
9195 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9197 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
9198 "next" from rtx to rtx_insn *.
9199 (find_conditional_protection): Likewise for local "next".
9200 (is_conditionally_protected): Likewise for local "insn1".
9201 (is_pfree): Likewise for locals "insn1", "insn2".
9203 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9205 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
9206 from rtx to rtx_insn *.
9208 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
9209 locals "insn1", "insn2" from rtx to rtx_insn *.
9210 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
9211 locals "insn", "prev", "last_jump", "next_tail".
9212 (schedule_ebb): Likewise for params "head", "tail".
9213 (schedule_ebbs): Likewise for locals "tail", "head".
9215 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
9216 to rtx_insn on "last_insn" in one of the invocations of
9219 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9221 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
9222 "elem", "insn" from rtx to rtx_insn *.
9223 (change_spec_dep_to_hard): Likewise.
9224 (get_back_and_forw_lists): Likewise for local "con".
9225 (sd_add_dep): Likewise for locals "elem", "insn".
9226 (sd_resolve_dep): Likewise for locals "pro", "con".
9227 (sd_unresolve_dep): Likewise.
9228 (sd_delete_dep): Likewise.
9229 (chain_to_prev_insn): Likewise for local "pro".
9230 (find_inc): Likewise for locals "pro", "con".
9232 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9234 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
9236 (reg_set_between_p): Strengthen local "insn" from const_rtx to
9238 (modified_between_p): Strengthen local "insn" from rtx to
9240 (remove_reg_equal_equiv_notes_for_regno): Likewise.
9241 (keep_with_call_p): Strengthen local "i2" from const_rtx to
9244 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9246 * resource.c (next_insn_no_annul): Strengthen local "next" from
9248 (mark_referenced_resources): Likewise for local "insn".
9250 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9252 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
9254 (find_reloads): Likewise for param 1.
9255 (subst_reloads): Likewise for sole param.
9256 (find_equiv_reg): Likwise for param 2.
9257 (regno_clobbered_p): Likwise for param 2.
9258 (reload): Likewise for param 1.
9260 * caller-save.c (save_call_clobbered_regs): Strengthen local
9261 "insn" from rtx to rtx_insn *.
9262 (insert_one_insn): Likewise for local "insn".
9264 * reload.c (this_insn): Likewise for this global.
9265 (find_reloads): Likewise for param "insn".
9266 (find_reloads_toplev): Likewise.
9267 (find_reloads_address): Likewise.
9268 (subst_reg_equivs): Likewise.
9269 (update_auto_inc_notes): Likewise.
9270 (find_reloads_address_1): Likewise.
9271 (find_reloads_subreg_address): Likewise.
9272 (subst_reloads): Likewise.
9273 (find_equiv_reg): Likewise, also for local "p".
9274 (regno_clobbered_p): Likewise for param "insn".
9276 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
9278 (spill_reg_store): Likewise for the elements of this array.
9279 (remove_init_insns): Likewise for local "equiv_insn".
9280 (will_delete_init_insn_p): Likewise for param "insn".
9281 (reload): Likewise for param ""first" and local "insn".
9282 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
9284 (calculate_elim_costs_all_insns): Likewise.
9285 (delete_caller_save_insns): Likewise.
9286 (spill_failure): Likewise for param "insn".
9287 (delete_dead_insn): Likewise.
9288 (set_label_offsets): Likewise.
9289 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
9291 (elimination_costs_in_insn): Likewise for param "insn".
9292 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
9293 when referring to an insn.
9294 (set_initial_label_offsets): Likewise.
9295 (set_offsets_for_label): Strengthen param "insn" from rtx to
9297 (init_eliminable_invariants): Likewise for param "first" and local
9299 (fixup_eh_region_note): Likewise for param "insn".
9300 (reload_as_needed): Likewise for locals "prev", "insn",
9301 "old_next", "old_prev", "next".
9302 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
9304 (reload_inheritance_insn): Strengthen elements of this array from
9306 (failed_reload): Likewise for param "insn".
9307 (choose_reload_regs): Likewise for local "insn". Replace use of
9308 NULL_RTX with NULL when referring to an insn.
9309 (input_reload_insns): Strengthen elements of this array from rtx
9311 (other_input_address_reload_insns): Likewise for this global.
9312 (other_input_reload_insns): Likewise for this global.
9313 (input_address_reload_insns): Likwise for the elements of this
9315 (inpaddr_address_reload_insns): Likwise for the elements of this
9317 (output_reload_insns): Likewise for the elements of this array.
9318 (output_address_reload_insns): Likewise for the elements of this
9320 (outaddr_address_reload_insns): Likewise for the elements of this
9322 (operand_reload_insns): Likewise for this global.
9323 (other_operand_reload_insns): Likewise for this global.
9324 (other_output_reload_insns): Likewise for the elements of this
9326 (new_spill_reg_store): Likewise for the elements of this
9328 (emit_input_reload_insns): Likewise for locals "insn", "temp".
9329 Strengthen local "where" from rtx * to rtx_insn **.
9330 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
9331 from rtx to rtx_insn *.
9332 (do_input_reload): Likewise for local "insn".
9333 (do_output_reload): Likewise for local "insn".
9334 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
9335 (emit_insn_if_valid_for_reload): Likewise for return type and local
9336 "last". Add checked cast to rtx_insn when returning "insn" since
9337 this has been through emit_insn.
9338 (gen_reload): Strengthen return type and locals "last", "insn", "set"
9339 from rtx to rtx_insn *. Add checked cast to rtx_insn when
9340 returning "insn" since it's been through
9341 emit_insn_if_valid_for_reload at this point.
9342 (delete_output_reload): Strengthen param "insn" and locals
9343 "output_reload_insn", "i2" from rtx to rtx_insn *.
9344 (delete_address_reloads): Likewise for params "dead_insn",
9345 "current_insn" and locals "prev", "next".
9346 (delete_address_reloads_1): Likewise for params "dead_insn",
9347 "current_insn" and locals "prev", "i2".
9348 (inc_for_reload): Likewise for locals "last", "add_insn".
9349 (add_auto_inc_notes): Strengthen param "insn" from rtx to
9352 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
9353 param of this duplicate of the prototype from reload.h
9355 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9357 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
9359 (regstat_bb_compute_calls_crossed): Likewise.
9361 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9363 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
9365 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
9367 (regrename_analyze): Strengthen local "insn" from rtx to
9369 (scan_rtx_reg): Likewise for param "insn".
9370 (scan_rtx_address): Likewise.
9371 (scan_rtx): Likewise.
9372 (restore_operands): Likewise.
9373 (record_out_operands): Likewise.
9374 (build_def_use): Likewise for local "insn". Replace use of
9375 NULL_RTX with NULL when dealing with an insn.
9377 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9379 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
9380 * reginfo.c (reg_scan): Likewise, also for local "insn".
9381 (reg_scan_mark_refs): Likewise for param "insn".
9382 (init_subregs_of_mode): Likewise for local "insn".
9384 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9386 * regcprop.c (struct queued_debug_insn_change): Strengthen field
9387 "insn" from rtx to rtx_insn *.
9388 (replace_oldest_value_reg): Likewise for param "insn".
9389 (replace_oldest_value_addr): Likewise.
9390 (replace_oldest_value_mem): Likewise.
9391 (apply_debug_insn_changes): Likewise for local "last_insn".
9392 (copyprop_hardreg_forward_1): Likewise for local "insn".
9394 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9396 * reg-stack.c (next_flags_user): Strengthen return type and param
9397 "insn" from rtx to rtx_insn *.
9398 (straighten_stack): Likewise for param "insn".
9399 (check_asm_stack_operands): Likewise.
9400 (remove_regno_note): Likewise.
9401 (emit_pop_insn): Likewise for return type, param "insn", local
9403 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
9404 "limit" from rtx to rtx_insn *.
9405 (swap_to_top): Likewise for param "insn".
9406 (move_for_stack_reg): Likewise.
9407 (move_nan_for_stack_reg): Likewise.
9408 (swap_rtx_condition): Likewise.
9409 (compare_for_stack_reg): Likewise.
9410 (subst_all_stack_regs_in_debug_insn): Likewise.
9411 (subst_stack_regs_pat): Likewise, and local "insn2".
9412 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
9414 (subst_stack_regs): Likewise.
9415 (change_stack): Likewise.
9416 (convert_regs_1): Likewise for locals "insn", "next".
9418 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9420 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
9422 (combine_set_extension): Likewise for param "curr_insn".
9423 (transform_ifelse): Likewise for param "def_insn".
9424 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
9425 from vec<rtx> * to vec<rtx_insn *> *.
9426 (is_cond_copy_insn): Likewise for param "insn".
9427 (struct ext_state): Strengthen the four vec fields from vec<rtx>
9429 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
9430 local "def_insn" from rtx to rtx_insn *.
9431 (get_sub_rtx): Likewise for param "def_insn".
9432 (merge_def_and_ext): Likewise.
9433 (combine_reaching_defs): Likewise.
9434 (add_removable_extension): Likewise for param "insn".
9435 (find_removable_extensions): Likewise for local "insn".
9436 (find_and_remove_re): Likewise for locals "curr_insn" and
9437 "def_insn". Strengthen locals "reinsn_del_list" and
9438 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
9440 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9442 * recog.c (split_insn): Strengthen param "insn" and locals
9443 "first", "last" from rtx to rtx_insn *.
9444 (split_all_insns): Likewise for locals "insn", "next".
9445 (split_all_insns_noflow): Likewise.
9447 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9449 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
9451 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
9452 (debug_rtx_find): Likewise for param 1 "x".
9454 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
9455 const_rtx to const rtx_insn *. Likewise for local "insn".
9456 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
9457 (debug_rtx_find): Likewise for param 1 "x".
9458 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
9459 from const_rtx to const rtx_insn * within the appropriate cases of
9460 the switch statement.
9462 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
9463 Strengthen local "insns" from rtx to rtx_insn * since this is
9464 passed to a call to debug_rtx_list.
9466 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9468 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
9471 * function.c (stack_protect_epilogue): Add checked cast to
9472 rtx_insn for now when invoking predict_insn_def.
9474 * predict.c (predict_insn): Strengthen param "insn" from rtx to
9476 (predict_insn_def): Likewise.
9477 (rtl_predict_edge): Likewise for local "last_insn".
9478 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
9480 (combine_predictions_for_insn): Strengthen param "insn" from rtx
9482 (bb_estimate_probability_locally): Likewise for local "last_insn".
9483 (expensive_function_p): Likewise for local "insn".
9485 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
9486 local "jmp", since this is used when invoking predict_insn_def.
9488 2014-08-22 Marek Polacek <polacek@redhat.com>
9491 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
9493 2014-08-22 Marek Polacek <polacek@redhat.com>
9496 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
9497 a comparison in parens.
9498 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
9501 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9503 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
9506 * cprop.c (fis_get_condition): Likewise.
9508 * postreload.c (reload_cse_regs): Likewise for param "first".
9509 (reload_cse_simplify): Likewise for param "insn".
9510 (reload_cse_regs_1): Likewise for local "insn".
9511 (reload_cse_simplify_set): Likewise for param "insn".
9512 (reload_cse_simplify_operands): Likewise.
9513 (struct reg_use): Likewise for field "insn".
9514 (reload_combine_purge_insn_uses): Likewise for param "insn".
9515 (fixup_debug_insns): Likewise for params "from", "to" and local
9517 (try_replace_in_use): Likewise for local "use_insn".
9518 (reload_combine_recognize_const_pattern): Likewise for param
9519 "insn" and locals "add_moved_after_insn", "use_insn".
9520 (reload_combine_recognize_pattern): Likewise for param "insn" and
9522 (reload_combine): Likewise for locals "insn", "prev".
9523 (reload_combine_note_use): Likewise for param "insn".
9524 (move2add_use_add2_insn): Likewise.
9525 (move2add_use_add3_insn): Likewise.
9526 (reload_cse_move2add): Likewise, also for local "next".
9527 (move2add_note_store): Likewise for local "insn".
9529 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9531 * postreload-gcse.c (struct occr): Strengthen field "insn" from
9533 (struct unoccr): Likewise.
9534 (struct modifies_mem): Likewise.
9535 (alloc_mem): Likewise for local "insn".
9536 (insert_expr_in_table): Likewise for param "insn".
9537 (dump_expr_hash_table_entry): Likewise for local "insn".
9538 (oprs_unchanged_p): Likewise for param "insn".
9539 (load_killed_in_block_p): Likewise for local "setter".
9540 (record_last_reg_set_info): Likewise for param "insn".
9541 (record_last_reg_set_info_regno): Likewise.
9542 (record_last_mem_set_info): Likewise.
9543 (record_last_set_info): Likewise for local "last_set_insn".
9544 (record_opr_changes): Likewise for param "insn".
9545 (hash_scan_set): Likewise.
9546 (compute_hash_table): Likewise for local "insn".
9547 (get_avail_load_store_reg): Likewise for param "insn".
9548 (eliminate_partially_redundant_load): Likewise, also for locals
9549 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
9551 (eliminate_partially_redundant_loads): Likewise for local "insn".
9553 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9555 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
9557 (expand_binop): Likewise for locals "entry_last", "last", "insns"
9558 (expand_twoval_unop): Likewise for locals entry_last", "last".
9559 (expand_twoval_binop): Likewise.
9560 (expand_twoval_binop_libfunc): Likewise for local "insns".
9561 (widen_leading): Likewise for local "last".
9562 (expand_doubleword_clz): Likewise for local "seq". Strengthen
9563 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
9564 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
9565 (expand_parity): Likewise for locals "last" and "seq".
9566 (expand_ffs): Likewise for local "seq". Strengthen local
9567 "nonzero_label" from rtx to rtx_code_label *.
9568 (expand_absneg_bit): Strengthen local "insns" from rtx to
9570 (expand_unop_direct): Likewise for local "last".
9571 (expand_unop): Likewise for locals "last", "insns".
9572 (expand_abs_nojump): Likewise for local "last".
9573 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
9574 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
9576 (expand_copysign_absneg): Strengthen local "label" from rtx to
9578 (expand_copysign_bit): Strengthen local "insns" from rtx to
9580 (struct no_conflict_data): Likewise for fields "first", "insn".
9581 (emit_libcall_block_1): Likewise for param "insns" and locals
9582 "next", "last", "insn".
9583 (emit_libcall_block): For now, add a checked cast to rtx_insn *
9584 on "insns" when invoking emit_libcall_block_1. Ultimately we
9585 want to strengthen insns itself.
9586 (prepare_cmp_insn): Strengthen local "last" from rtx to
9588 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
9589 (prepare_float_lib_cmp): Likewise for local "insns".
9590 (emit_conditional_move): Likewise for local "last".
9591 (emit_conditional_add): Likewise.
9592 (have_sub2_insn): Likewise for local "seq".
9593 (expand_float): Likewise for local "insns". Strengthen locals
9594 "label", "neglabel" from rtx to rtx_code_label *.
9595 (expand_fix): Likewise for locals "last", "insn", "insns" (to
9596 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
9597 (expand_fixed_convert): Likewise for local "insns" (to
9599 (expand_sfix_optab): Likewise for local "last".
9600 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
9601 to rtx_code_label *.
9602 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
9603 from rtx to rtx_insn *.
9604 (expand_atomic_fetch_op): Likewise for local "insn".
9605 (maybe_legitimize_operand_same_code): Likewise for local "last".
9606 (maybe_legitimize_operands): Likewise.
9608 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9610 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
9611 "insn" from rtx to rtx_insn *.
9612 (ps_rtl_insn): Likewise for return type.
9613 (doloop_register_get): Likewise for params "head", "tail" and
9614 locals "insn", "first_insn_not_to_check".
9615 (schedule_reg_move): Likewise for local "this_insn".
9616 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
9617 of gen_move_insn for now.
9618 (reset_sched_times): Strengthen local "insn" from rtx to
9620 (permute_partial_schedule): Likewise.
9621 (duplicate_insns_of_cycles): Likewise for local "u_insn".
9622 (dump_insn_location): Likewise for param "insn".
9623 (loop_canon_p): Likewise for local "insn".
9624 (sms_schedule): Likewise.
9625 (print_partial_schedule): Likewise.
9626 (ps_has_conflicts): Likewise.
9628 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9630 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
9631 "tailp" from rtx * to rtx_insn **.
9633 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
9634 from rtx to rtx_insn *.
9635 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
9636 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
9637 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
9639 * modulo-sched.c (const_iteration_count): Strengthen return type
9640 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
9641 use of NULL_RTX with NULL when working with insns.
9642 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
9644 (sms_schedule): Likewise.
9645 * sched-rgn.c (init_ready_list): Likewise, also for locals
9646 "src_head" and "src_next_tail".
9647 (compute_block_dependences): Likewise.
9648 (free_block_dependencies): Likewise.
9649 (debug_rgn_dependencies): Likewise.
9650 (free_rgn_deps): Likewise.
9651 (compute_priorities): Likewise.
9652 (schedule_region): Likewise.
9653 * sel-sched.c (find_ebb_boundaries): Likewise.
9655 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
9656 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
9658 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9660 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
9661 from rtx to rtx_insn *.
9662 (new_seginfo): Likewise for param "insn".
9663 (create_pre_exit): Likewise for locals "last_insn",
9664 "before_return_copy", "return_copy".
9665 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
9668 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9670 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
9671 from rtx to rtx_insn *.
9672 (lra_push_insn): Likewise for 1st param.
9673 (lra_push_insn_and_update_insn_regno_info): Likewise.
9674 (lra_pop_insn): Likewise for return type.
9675 (lra_invalidate_insn_data): Likewise for 1st param.
9676 (lra_set_insn_deleted): Likewise.
9677 (lra_delete_dead_insn): Likewise.
9678 (lra_process_new_insns): Likewise for first 3 params.
9679 (lra_set_insn_recog_data): Likewise for 1st param.
9680 (lra_update_insn_recog_data): Likewise.
9681 (lra_set_used_insn_alternative): Likewise.
9682 (lra_invalidate_insn_regno_info): Likewise.
9683 (lra_update_insn_regno_info): Likewise.
9684 (lra_former_scratch_operand_p): Likewise.
9685 (lra_eliminate_regs_1): Likewise.
9686 (lra_get_insn_recog_data): Likewise.
9688 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
9691 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
9693 (substitute_within_insn): New.
9694 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
9695 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
9696 Replace call to "substitute" with call to substitute_within_insn.
9698 * lra-constraints.c (curr_insn): Strengthen from rtx to
9700 (get_equiv_with_elimination): Likewise for param "insn".
9701 (match_reload): Strengthen params "before" and "after" from rtx *
9703 (emit_spill_move): Likewise for return type. Add a checked cast
9704 to rtx_insn * on result of gen_move_insn for now.
9705 (check_and_process_move): Likewise for local "before". Replace
9706 NULL_RTX with NULL when referring to insns.
9707 (process_addr_reg): Strengthen params "before" and "after" from
9708 rtx * to rtx_insn **.
9709 (insert_move_for_subreg): Likewise.
9710 (simplify_operand_subreg): Strengthen locals "before" and "after"
9711 from rtx to rtx_insn *.
9712 (process_address_1): Strengthen params "before" and "after" from
9713 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
9715 (process_address): Strengthen params "before" and "after" from
9716 rtx * to rtx_insn **.
9717 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
9718 (curr_insn_transform): Strengthen locals "before" and "after"
9719 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
9721 (loc_equivalence_callback): Update cast of "data", changing
9722 resulting type from rtx to rtx_insn *.
9723 (substitute_pseudo_within_insn): New.
9724 (inherit_reload_reg): Strengthen param "insn" from rtx to
9725 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
9726 NULL when referring to insns. Add a checked cast to rtx_insn *
9727 when using usage_insn to invoke lra_update_insn_regno_info.
9728 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
9729 likewise for locals "restore", "save". Add checked casts to
9730 rtx_insn * when using usage_insn to invoke
9731 lra_update_insn_regno_info and lra_process_new_insns. Replace
9732 NULL_RTX with NULL when referring to insns.
9733 (split_if_necessary): Strengthen param "insn" from rtx to
9735 (update_ebb_live_info): Likewise for params "head", "tail" and local
9737 (get_last_insertion_point): Likewise for return type and local "insn".
9738 (get_live_on_other_edges): Likewise for local "last".
9739 (inherit_in_ebb): Likewise for params "head", "tail" and locals
9740 "prev_insn", "next_insn", "restore".
9741 (remove_inheritance_pseudos): Likewise for local "prev_insn".
9742 (undo_optional_reloads): Likewise for local "insn".
9744 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
9746 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
9748 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
9750 (spill_pseudos): Likewise for local "insn".
9751 (init_elimination): Likewise.
9752 (process_insn_for_elimination): Likewise for param "insn".
9754 * lra-lives.c (curr_insn): Likewise.;
9756 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
9757 (remove_pseudos): Likewise for param "insn".
9758 (spill_pseudos): Likewise for local "insn".
9759 (lra_final_code_change): Likewise for locals "insn", "curr".
9761 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
9762 (lra_set_insn_deleted): Likewise.
9763 (lra_delete_dead_insn): Likewise, and for local "prev".
9764 (new_insn_reg): Likewise for param "insn".
9765 (lra_set_insn_recog_data): Likewise.
9766 (lra_update_insn_recog_data): Likewise.
9767 (lra_set_used_insn_alternative): Likewise.
9768 (get_insn_freq): Likewise.
9769 (invalidate_insn_data_regno_info): Likewise.
9770 (lra_invalidate_insn_regno_info): Likewise.
9771 (lra_update_insn_regno_info): Likewise.
9772 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
9774 (lra_push_insn_1): Strengthen param "insn" from rtx to
9776 (lra_push_insn): Likewise.
9777 (lra_push_insn_and_update_insn_regno_info): Likewise.
9778 (lra_pop_insn): Likewise for return type and local "insn".
9779 (push_insns): Likewise for params "from", "to", and local "insn".
9780 (setup_sp_offset): Likewise for params "from", "last" and locals
9782 (lra_process_new_insns): Likewise for params "insn", "before",
9783 "after" and local "last".
9784 (struct sloc): Likewise for field "insn".
9785 (lra_former_scratch_operand_p): Likewise for param "insn".
9786 (remove_scratches): Likewise for locals "insn", "last".
9787 (check_rtl): Likewise for local "insn".
9788 (add_auto_inc_notes): Likewise for param "insn".
9789 (update_inc_notes): Likewise for local "insn".
9790 (lra): Replace NULL_RTX with NULL when referring to insn.
9792 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9794 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
9796 (resolve_reg_notes): Likewise.
9797 (resolve_simple_move): Likewise for return type, param "insn", and
9798 locals "insns", "minsn".
9799 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
9800 (resolve_use): Likewise.
9801 (resolve_debug): Likewise.
9802 (find_decomposable_shift_zext): Likewise.
9803 (resolve_shift_zext): Likewise for return type, param "insn", and
9804 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
9805 (decompose_multiword_subregs): Likewise for local "insn",
9806 "orig_insn", "decomposed_shift", "end".
9808 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9810 * basic-block.h (basic_block split_edge_and_insert): Strengthen
9811 param "insns" from rtx to rtx_insn *.
9813 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
9815 (struct iv_to_split): Likewise.
9816 (loop_exit_at_end_p): Likewise for local "insn".
9817 (split_edge_and_insert): Likewise for param "insns".
9818 (compare_and_jump_seq): Likewise for return type, param "cinsn",
9819 and locals "seq", "jump".
9820 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
9821 "branch_code"; update invocations of compare_and_jump_seq to
9822 eliminate NULL_RTX in favor of NULL.
9823 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
9825 (reset_debug_uses_in_loop): Likewise.
9826 (analyze_insn_to_expand_var): Likewise for param "insn".
9827 (analyze_iv_to_split_insn): Likewise.
9828 (analyze_insns_in_loop): Likewise for local "insn".
9829 (insert_base_initialization): Likewise for param
9830 "insn" and local "seq".
9831 (split_iv): Likewise for param "insn" and local "seq".
9832 (expand_var_during_unrolling): Likewise for param "insn".
9833 (insert_var_expansion_initialization): Likewise for local "seq".
9834 (combine_var_copies_in_loop_exit): Likewise.
9835 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
9837 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
9838 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
9841 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9843 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
9845 (iv_analyze_result): Likewise.
9846 (iv_analyze_expr): Likewise.
9849 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
9850 local "def_insn" from rtx to rtx_insn *.
9851 (get_biv_step_1): Likewise for local "insn".
9852 (iv_analyze_expr): Likewise for param "insn".
9853 (iv_analyze_def): Likewise for local "insn".
9854 (iv_analyze_op): Likewise for param "insn".
9855 (iv_analyze): Likewise.
9856 (iv_analyze_result): Likewise.
9858 (suitable_set_for_replacement): Likewise.
9859 (simplify_using_initial_values): Likewise for local "insn".
9860 (iv_number_of_iterations): Likewise for param "insn".
9861 (check_simple_exit): Add checked cast to rtx_insn when invoking
9862 iv_number_of_iterations for now (until get_condition is
9865 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
9866 "insn" from rtx to rtx_insn *.
9867 (analyze_insns_in_loop): Likewise for local "insn".
9869 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9871 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
9873 (struct invariant): Likewise.
9874 (hash_invariant_expr_1): Likewise for param "insn".
9875 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
9876 (find_exits): Likewise for local "insn".
9877 (create_new_invariant): Likewise for param "insn".
9878 (check_dependencies): Likewise.
9879 (find_invariant_insn): Likewise.
9880 (record_uses): Likewise.
9881 (find_invariants_insn): Likewise.
9882 (find_invariants_bb): Likewise for local "insn".
9883 (get_pressure_class_and_nregs): Likewise for param "insn".
9884 (calculate_loop_reg_pressure): Likewise for local "insn".
9886 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9888 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
9890 (add_test): Likewise for locals "seq", "jump".
9891 (doloop_modify): Likewise for locals "sequence", "jump_insn".
9893 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9895 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
9897 (rebuild_jump_labels_chain): Likewise for param "chain".
9899 * cfgexpand.c (pass_expand::execute): Add checked cast to
9900 rtx_insn * when calling rebuild_jump_labels_chain in region where
9901 we know e->insns.r is non-NULL.
9903 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
9905 (rebuild_jump_labels): Likewise.
9906 (rebuild_jump_labels_chain): Likewise for param "chain".
9907 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
9908 (init_label_info): Likewise for param "f".
9909 (maybe_propagate_label_ref): Likewise for params "jump_insn",
9910 "prev_nonjump_insn".
9911 (mark_all_labels): Likewise for param "f" and locals "insn",
9912 "prev_nonjump_insn".
9914 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9916 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
9917 from rtx to rtx_insn *insn.
9918 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
9919 (ira_add_allocno_copy): Likewise.
9920 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
9922 (ira_create_copy): Likewise.
9923 (ira_add_allocno_copy): Likewise.
9924 (create_bb_allocnos): Likewise for local "insn".
9925 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
9926 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
9927 process_regs_for_copy for rtx_insn * param.
9928 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
9929 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
9930 process_regs_for_copy for rtx_insn * param.
9931 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
9932 * ira-costs.c (record_reg_classes): Likewise for param "insn".
9933 (record_operand_costs): Likewise.
9934 (scan_one_insn): Likewise for return type, and for param "insn".
9935 (process_bb_for_costs): Likewise for local "insn".
9936 (process_bb_node_for_hard_reg_moves): Likewise.
9937 * ira-emit.c (struct move): Likewise for field "insn".
9938 (create_move): Eliminate use of NULL_RTX when dealing with an
9940 (emit_move_list): Strengthen return type and locals "result",
9941 "insn" from rtx to rtx_insn *insn.
9942 (emit_moves): Likewise for locals "insns", "tmp".
9943 (ira_emit): Likewise for local "insn".
9944 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
9946 (find_call_crossed_cheap_reg): Likewise.
9947 (process_bb_node_lives): Likewise for local "insn".
9948 * ira.c (decrease_live_ranges_number): Likewise.
9949 (compute_regs_asm_clobbered): Likewise.
9950 (build_insn_chain): Likewise.
9951 (find_moveable_pseudos): Likewise, also locals "def_insn",
9952 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
9953 to rtx_insn **. Add a checked cast when assigning from
9954 "closest_use" into closest_uses array in a region where we know
9955 it's a non-NULL insn.
9956 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
9958 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
9959 "last_interesting_insn", "uin".
9960 (move_unallocated_pseudos): Likewise for locals "def_insn",
9961 "move_insn", "newinsn".
9963 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9965 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
9966 Strengthen locals "done_label", "do_error" from rtx to
9968 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
9969 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
9971 (ubsan_expand_si_overflow_neg_check): Likewise for locals
9972 "done_label", "do_error" to rtx_code_label * and local "last" to
9974 (ubsan_expand_si_overflow_mul_check): Likewise for locals
9975 "done_label", "do_error", "large_op0", "small_op0_large_op1",
9976 "one_small_one_large", "both_ops_large", "after_hipart_neg",
9977 "after_lopart_neg", "do_overflow", "hipart_different" to
9978 rtx_code_label * and local "last" to rtx_insn *.
9980 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9982 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
9983 "insn" and "move_insn" from rtx to rtx_insn *.
9985 2014-08-22 David Malcolm <dmalcolm@redhat.com>
9987 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
9989 (cheap_bb_rtx_cost_p): Likewise.
9990 (first_active_insn): Likewise for return type and local "insn".
9991 (last_active_insn): Likewise for return type and locals "insn",
9993 (struct noce_if_info): Likewise for fields "jump", "insn_a",
9995 (end_ifcvt_sequence): Likewise for return type and locals "insn",
9997 (noce_try_move): Likewise for local "seq".
9998 (noce_try_store_flag): Likewise.
9999 (noce_try_store_flag_constants): Likewise.
10000 (noce_try_addcc): Likewise.
10001 (noce_try_store_flag_mask): Likewise.
10002 (noce_try_cmove): Likewise.
10003 (noce_try_minmax): Likewise.
10004 (noce_try_abs): Likewise.
10005 (noce_try_sign_mask): Likewise.
10006 (noce_try_bitop): Likewise.
10007 (noce_can_store_speculate_p): Likewise for local "insn".
10008 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
10010 (check_cond_move_block): Likewise for local "insn".
10011 (cond_move_convert_if_block): Likewise.
10012 (cond_move_process_if_block): Likewise for locals "seq",
10014 (noce_find_if_block): Likewise for local "jump".
10015 (merge_if_block): Likewise for local "last".
10016 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
10017 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
10018 (block_has_only_trap): Likewise for return type and local "trap".
10019 (find_if_case_1): Likewise for local "jump".
10020 (dead_or_predicable): Likewise for locals "head", "end", "jump",
10023 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10025 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
10026 "last_insn", "loop_end" from rtx to rtx_insn *.
10028 * hw-doloop.c (scan_loop): Likewise for local "insn".
10029 (discover_loop): Likewise for param "tail_insn".
10030 (discover_loops): Likewise for local "tail".
10032 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
10033 cast to rtx_insn * when assigning from an rtx local to a
10034 hwloop_info's "last_insn" field.
10036 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10038 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
10039 (add_delay_dependencies): Strengthen local "pro" from rtx to
10041 (recompute_todo_spec): Likewise.
10042 (dep_cost_1): Likewise for locals "insn", "used".
10043 (schedule_insn): Likewise for local "dbg".
10044 (schedule_insn): Likewise for locals "pro", "next".
10045 (unschedule_insns_until): Likewise for local "con".
10046 (restore_pattern): Likewise for local "next".
10047 (estimate_insn_tick): Likewise for local "pro".
10048 (resolve_dependencies): Likewise for local "next".
10049 (fix_inter_tick): Likewise.
10050 (fix_tick_ready): Likewise for local "pro".
10051 (add_to_speculative_block): Likewise for locals "check", "twin",
10053 (sched_extend_bb): Likewise for locals "end", "insn".
10054 (init_before_recovery): Likewise for local "x".
10055 (sched_create_recovery_block): Likewise for local "barrier".
10056 (create_check_block_twin): Likewise for local "pro".
10057 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
10059 (unlink_bb_notes): Update for change to type of bb_header.
10060 Strengthen locals "prev", "label", "note", "next" from rtx to
10062 (clear_priorities): Likewise for local "pro".
10064 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10066 * gcse.c (struct occr): Strengthen field "insn" from rtx to
10068 (test_insn): Likewise for this global.
10069 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
10071 (oprs_anticipatable_p): Likewise.
10072 (oprs_available_p): Likewise.
10073 (insert_expr_in_table): Strengthen param "insn" from rtx to
10075 (hash_scan_set): Likewise.
10076 (hash_scan_clobber): Likewise.
10077 (hash_scan_call): Likewise.
10078 (hash_scan_insn): Likewise.
10079 (compute_hash_table_work): Likewise for local "insn".
10080 (process_insert_insn): Likewise for return type and local "pat".
10081 (insert_insn_end_basic_block): Likewise for locals "new_insn",
10082 "pat", "pat_end", "maybe_cc0_setter".
10083 (pre_edge_insert): Likewise for local "insn".
10084 (pre_insert_copy_insn): Likewise for param "insn".
10085 (pre_insert_copies): Likewise for local "insn".
10086 (struct set_data): Likewise for field "insn".
10087 (single_set_gcse): Likewise for param "insn".
10088 (gcse_emit_move_after): Likewise.
10089 (pre_delete): Likewise for local "insn".
10090 (update_bb_reg_pressure): Likewise for param "from" and local
10092 (should_hoist_expr_to_dom): Likewise for param "from".
10093 (hoist_code): Likewise for local "insn".
10094 (get_pressure_class_and_nregs): Likewise for param "insn".
10095 (calculate_bb_reg_pressure): Likewise for local "insn".
10096 (compute_ld_motion_mems): Likewise.
10098 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10100 * genpeep.c (main): Rename param back from "uncast_ins1" to
10101 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
10104 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
10106 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
10109 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
10110 documentation to state it is only for VSX operations.
10112 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
10113 constraint only active if VSX.
10115 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
10116 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
10117 (lfiwzx): Likewise.
10119 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10121 * fwprop.c (single_def_use_dom_walker::before_dom_children):
10122 Strengthen local "insn" from rtx to rtx_insn *.
10123 (use_killed_between): Likewise for param "target_insn".
10124 (all_uses_available_at): Likewise for param "target_insn" and
10126 (update_df_init): Likewise for params "def_insn", "insn".
10127 (update_df): Likewise for param "insn".
10128 (try_fwprop_subst): Likewise for param "def_insn" and local
10130 (free_load_extend): Likewise for param "insn".
10131 (forward_propagate_subreg): Likewise for param "def_insn" and
10133 (forward_propagate_asm): Likewise for param "def_insn" and local
10135 (forward_propagate_and_simplify): Likewise for param "def_insn"
10136 and local "use_insn".
10137 (forward_propagate_into): Likewise for locals "def_insn" and
10140 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10142 * function.c (emit_initial_value_sets): Strengthen local "seq"
10143 from rtx to rtx_insn *.
10144 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
10146 (instantiate_virtual_regs): Likewise for local "insn".
10147 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
10148 (reorder_blocks_1): Likewise for param "insns" and local "insn".
10149 (expand_function_end): Likewise for locals "insn" and "seq".
10150 (epilogue_done): Likewise for local "insn".
10151 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
10153 (reposition_prologue_and_epilogue_notes): Likewise for locals
10154 "insn", "last", "note", "first".
10155 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
10156 (pass_match_asm_constraints::execute): Likewise for local "insn".
10158 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10160 * output.h (final_scan_insn): Strengthen return type from rtx to
10162 (final_forward_branch_p): Likewise for param.
10163 (current_output_insn): Likewise for this global.
10165 * final.c (rtx debug_insn): Likewise for this variable.
10166 (current_output_insn): Likewise.
10167 (get_attr_length_1): Rename param "insn" to "uncast_insn",
10168 adding "insn" back in as an rtx_insn * with a checked cast, so
10169 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
10171 (compute_alignments): Strengthen local "label" from rtx to
10173 (shorten_branches): Rename param from "first" to "uncast_first",
10174 introducing a new local rtx_insn * "first" using a checked cast to
10175 effectively strengthen "first" from rtx to rtx_insn * without
10176 affecting the type signature. Strengthen locals "insn", "seq",
10177 "next", "label" from rtx to rtx_insn *.
10178 (change_scope): Strengthen param "orig_insn" and local "insn" from
10180 (final_start_function): Rename param from "first" to "uncast_first",
10181 introducing a new local rtx_insn * "first" using a checked cast to
10182 effectively strengthen "first" from rtx to rtx_insn * without
10183 affecting the type signature. Strengthen local "insn" from rtx to
10185 (dump_basic_block_info): Strengthen param "insn" from rtx to
10187 (final): Rename param from "first" to "uncast_first",
10188 introducing a new local rtx_insn * "first" using a checked cast to
10189 effectively strengthen "first" from rtx to rtx_insn * without
10190 affecting the type signature. Strengthen locals "insn", "next"
10191 from rtx to rtx_insn *.
10192 (output_alternate_entry_point): Strengthen param "insn" from rtx to
10194 (call_from_call_insn): Strengthen param "insn" from rtx to
10196 (final_scan_insn): Rename param from "insn" to "uncast_insn",
10197 introducing a new local rtx_insn * "insn" using a checked cast to
10198 effectively strengthen "insn" from rtx to rtx_insn * without
10199 affecting the type signature. Strengthen return type and locals
10200 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
10201 now-redundant checked cast to rtx_insn * from both invocations of
10202 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
10203 introducing a local "call_insn" for use when invoking
10204 call_from_call_insn.
10205 (notice_source_line): Strengthen param "insn" from rtx to
10207 (leaf_function_p): Likewise for local "insn".
10208 (final_forward_branch_p): Likewise.
10209 (leaf_renumber_regs): Likewise for param "first".
10210 (rest_of_clean_state): Likewise for locals "insn" and "next".
10211 (self_recursive_call_p): Likewise for param "insn".
10212 (collect_fn_hard_reg_usage): Likewise for local "insn".
10213 (get_call_fndecl): Likewise for param "insn".
10214 (get_call_cgraph_rtl_info): Likewise.
10215 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
10216 introducing a new local rtx_insn * "insn" using a checked cast to
10217 effectively strengthen "insn" from rtx to rtx_insn * without
10218 affecting the type signature.
10220 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
10221 cast when assigning from param "insn" to current_output_insn.
10222 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
10223 so that we can assign it back to current_output_insn.
10225 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10227 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
10228 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
10229 atmxt540s and atmxt540sreva devices.
10230 * config/avr/avr-tables.opt: Regenerate.
10231 * config/avr/t-multilib: Regenerate.
10232 * doc/avr-mmcu.texi: Regenerate.
10234 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10236 * expr.c (convert_move): Strengthen local "insns" from rtx to
10238 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
10239 "top_label" from rtx to rtx_code_label *.
10240 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
10242 (emit_single_push_insn): Likewise for locals "prev", "last".
10243 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
10244 to rtx_code_label *.
10245 (store_constructor): Likewise for locals "loop_start", "loop_end".
10246 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
10248 (expand_expr_real_2): Likewise.
10249 (expand_expr_real_1): Strengthen local "label" from rtx to
10252 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10254 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
10255 from rtx to rtx_insn *.
10256 (store_bit_field_1): Likewise.
10257 (extract_bit_field_1): Likewise.
10258 (expand_mult_const): Likewise for local "insns".
10259 (expmed_mult_highpart): Strengthen local "label" from rtx to
10261 (expand_smod_pow2): Likewise.
10262 (expand_sdiv_pow2): Likewise.
10263 (expand_divmod): Strengthen locals "last", "insn" from rtx to
10264 rtx_insn *. Strengthen locals "label", "label1", "label2",
10265 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
10266 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
10267 (emit_store_flag): Likewise.
10268 (emit_store_flag_force): Strengthen local "label" from rtx to
10270 (do_cmp_and_jump): Likewise for param "label".
10272 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10274 * explow.c (force_reg): Strengthen local "insn" from rtx to
10276 (adjust_stack_1): Likewise.
10277 (allocate_dynamic_stack_space): Likewise. Strengthen locals
10278 "final_label", "available_label", "space_available" from rtx to
10280 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
10281 (anti_adjust_stack_and_probe): Likewise.
10283 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10285 * except.h (sjlj_emit_function_exit_after): Strengthen param
10286 "after" from rtx to rtx_insn *. This is only called with
10287 result of get_last_insn (in function.c) so type-change should be
10290 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
10291 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
10292 to rtx_insn *. These fields are only used from except.c so this
10293 type-change should be self-contained to this patch.
10295 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
10296 local "last" from rtx to rtx_insn *.
10297 (dw2_build_landing_pads): Likewise for local "seq".
10298 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
10299 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
10300 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
10302 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
10304 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
10305 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
10306 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
10307 referring to an insn. Strengthen local "dispatch_label" from
10308 rtx to rtx_code_label *.
10309 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
10311 (expand_eh_return): Strengthen local "around_label" from
10312 rtx to rtx_code_label *.
10313 (convert_to_eh_region_ranges): Strengthen locals "iter",
10314 "last_action_insn", "first_no_action_insn",
10315 "first_no_action_insn_before_switch",
10316 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
10318 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10320 * dwarf2out.c (last_var_location_insn): Strengthen this variable
10321 from rtx to rtx_insn *.
10322 (cached_next_real_insn): Likewise.
10323 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
10324 working with insns.
10325 (dwarf2out_var_location): Strengthen locals "next_real",
10326 "next_note", "expected_next_loc_note", "last_start", "insn" from
10329 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10331 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
10332 from rtx to rtx_insn *.
10333 (create_pseudo_cfg): Likewise for local "insn".
10335 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10337 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
10338 from rtx to rtx_insn *.
10339 (df_bb_regno_last_def_find): Likewise.
10341 * df-problems.c (df_rd_bb_local_compute): Likewise.
10342 (df_lr_bb_local_compute): Likewise.
10343 (df_live_bb_local_compute): Likewise.
10344 (df_chain_remove_problem): Likewise.
10345 (df_chain_create_bb): Likewise.
10346 (df_word_lr_bb_local_compute): Likewise.
10347 (df_remove_dead_eq_notes): Likewise for param "insn".
10348 (df_note_bb_compute): Likewise for local "insn".
10349 (simulate_backwards_to_point): Likewise.
10350 (df_md_bb_local_compute): Likewise.
10352 * df-scan.c (df_scan_free_bb_info): Likewise.
10353 (df_scan_start_dump): Likewise.
10354 (df_scan_start_block): Likewise.
10355 (df_install_ref_incremental): Likewise for local "insn".
10356 (df_insn_rescan_all): Likewise.
10357 (df_reorganize_refs_by_reg_by_insn): Likewise.
10358 (df_reorganize_refs_by_insn_bb): Likewise.
10359 (df_recompute_luids): Likewise.
10360 (df_bb_refs_record): Likewise.
10361 (df_update_entry_exit_and_calls): Likewise.
10362 (df_bb_verify): Likewise.
10364 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10366 * ddg.h (struct ddg_node): Strengthen fields "insn" and
10367 "first_note" from rtx to rtx_insn *.
10368 (get_node_of_insn): Likewise for param 2 "insn".
10369 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
10371 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
10373 (mem_write_insn_p): Likewise.
10374 (mem_access_insn_p): Likewise.
10375 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
10376 (def_has_ccmode_p): Likewise for param "insn".
10377 (add_cross_iteration_register_deps): Likewise for locals
10378 "def_insn" and "use_insn".
10379 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
10380 (build_intra_loop_deps): Likewise for local "src_insn".
10381 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
10383 (get_node_of_insn): Likewise for param "insn".
10385 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10387 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
10388 (deletable_insn_p): Strengthen param "insn" from rtx to
10389 rtx_insn *. Add checked cast to rtx_call_insn when invoking
10390 find_call_stack_args, since this is guarded by CALL_P (insn).
10391 (marked_insn_p): Strengthen param "insn" from rtx to
10393 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
10394 invoking find_call_stack_args, since this is guarded by
10396 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
10397 rtx_insn *; we know this is an insn since this was called by
10398 mark_nonreg_stores.
10399 (mark_nonreg_stores_2): Likewise.
10400 (mark_nonreg_stores): Strengthen param "insn" from rtx to
10402 (find_call_stack_args): Strengthen param "call_insn" from rtx to
10403 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
10405 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
10406 from rtx to rtx_insn *.
10407 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
10408 "next", "ref_insn".
10409 (delete_unmarked_insns): Likewise for locals "insn", "next".
10410 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
10411 (mark_reg_dependencies): Likewise for param "insn".
10412 (rest_of_handle_ud_dce): Likewise for local "insn".
10413 (word_dce_process_block): Likewise.
10414 (dce_process_block): Likewise.
10416 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10418 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
10419 from rtx to rtx_insn *.
10420 (struct change_cc_mode_args): Likewise for field "insn".
10421 (this_insn): Strengthen from rtx to rtx_insn *.
10422 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
10424 (validate_canon_reg): Strengthen param "insn" from rtx to
10426 (canon_reg): Likewise.
10427 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
10429 (record_jump_equiv): Strengthen param "insn" from rtx to
10431 (try_back_substitute_reg): Likewise, also for locals "prev",
10433 (find_sets_in_insn): Likewise for param "insn".
10434 (canonicalize_insn): Likewise.
10435 (cse_insn): Likewise. Add a checked cast.
10436 (invalidate_from_clobbers): Likewise for param "insn".
10437 (invalidate_from_sets_and_clobbers): Likewise.
10438 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
10440 (cse_prescan_path): Strengthen local "insn" from rtx to
10442 (cse_extended_basic_block): Likewise for locals "insn" and
10444 (cse_main): Likewise for param "f".
10445 (check_for_label_ref): Likewise for local "insn".
10446 (set_live_p): Likewise for second param ("insn").
10447 (insn_live_p): Likewise for first param ("insn") and for local
10449 (cse_change_cc_mode_insn): Likewise for first param "insn".
10450 (cse_change_cc_mode_insns): Likewise for first and second params
10452 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
10454 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
10457 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
10458 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10459 Anna Tikhonova <anna.tikhonova@intel.com>
10460 Ilya Tocar <ilya.tocar@intel.com>
10461 Andrey Turetskiy <andrey.turetskiy@intel.com>
10462 Ilya Verbin <ilya.verbin@intel.com>
10463 Kirill Yukhin <kirill.yukhin@intel.com>
10464 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10466 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
10468 * config/i386/sse.md
10469 (define_mode_iterator VI248_AVX2): Delete.
10470 (define_mode_iterator VI2_AVX2_AVX512BW): New.
10471 (define_mode_iterator VI48_AVX2): Ditto.
10472 (define_insn <shift_insn><mode>3): Delete.
10473 (define_insn "<shift_insn><mode>3<mask_name>" with
10474 VI2_AVX2_AVX512BW): New.
10475 (define_insn "<shift_insn><mode>3<mask_name>" with
10478 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
10479 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10480 Anna Tikhonova <anna.tikhonova@intel.com>
10481 Ilya Tocar <ilya.tocar@intel.com>
10482 Andrey Turetskiy <andrey.turetskiy@intel.com>
10483 Ilya Verbin <ilya.verbin@intel.com>
10484 Kirill Yukhin <kirill.yukhin@intel.com>
10485 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10487 * config/i386/sse.md
10488 (define_mode_iterator VI4F_BRCST32x2): New.
10489 (define_mode_attr 64x2_mode): Ditto.
10490 (define_mode_attr 32x2mode): Ditto.
10491 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
10492 with VI4F_BRCST32x2): Ditto.
10493 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
10494 with V16FI mode iterator): Ditto.
10495 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
10496 with V16FI): Ditto.
10497 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
10498 with VI8F_BRCST64x2): Ditto.
10500 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
10501 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10502 Anna Tikhonova <anna.tikhonova@intel.com>
10503 Ilya Tocar <ilya.tocar@intel.com>
10504 Andrey Turetskiy <andrey.turetskiy@intel.com>
10505 Ilya Verbin <ilya.verbin@intel.com>
10506 Kirill Yukhin <kirill.yukhin@intel.com>
10507 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10509 * config/i386/sse.md
10510 (define_mode_iterator VI8_AVX512VL): New.
10511 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
10513 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
10515 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
10516 (define_mode_iterator V48_AVX512VL): New.
10517 (define_mode_iterator V12_AVX512VL): Ditto.
10518 (define_insn <avx512>_load<mode>_mask): Split into two similar
10519 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
10520 Refactor output template.
10521 (define_insn "<avx512>_store<mode>_mask"): Ditto.
10523 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10525 * cprop.c (struct occr): Strengthen field "insn" from rtx to
10527 (reg_available_p): Likewise for param "insn".
10528 (insert_set_in_table): Likewise.
10529 (hash_scan_set): Likewise.
10530 (hash_scan_insn): Likewise.
10531 (make_set_regs_unavailable): Likewise.
10532 (compute_hash_table_work): Likewise for local "insn".
10533 (reg_not_set_p): Strengthen param "insn" from const_rtx to
10535 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
10536 (try_replace_reg): Likewise.
10537 (find_avail_set): Likewise.
10538 (cprop_jump): Likewise for params "setcc", "jump".
10539 (constprop_register): Likewise for param "insn".
10540 (cprop_insn): Likewise.
10541 (do_local_cprop): Likewise.
10542 (local_cprop_pass): Likewise for local "insn".
10543 (bypass_block): Likewise for params "setcc" and "jump".
10544 (bypass_conditional_jumps): Likewise for locals "setcc" and
10546 (one_cprop_pass): Likewise for local "insn".
10548 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10550 * compare-elim.c (struct comparison_use): Strengthen field "insn"
10551 from rtx to rtx_insn *.
10552 (struct comparison): Likewise, also for field "prev_clobber".
10553 (conforming_compare): Likewise for param "insn".
10554 (arithmetic_flags_clobber_p): Likewise.
10555 (find_flags_uses_in_insn): Likewise.
10556 (find_comparison_dom_walker::before_dom_children): Likewise for
10557 locals "insn", "next", "last_clobber".
10558 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
10560 2014-08-22 David Malcolm <dmalcolm@redhat.com>
10562 * combine-stack-adj.c (struct csa_reflist): Strengthen field
10563 "insn" from rtx to rtx_insn *.
10564 (single_set_for_csa): Likewise for param "insn".
10565 (record_one_stack_ref): Likewise.
10566 (try_apply_stack_adjustment): Likewise.
10567 (struct record_stack_refs_data): Likewise for field "insn".
10568 (maybe_move_args_size_note): Likewise for params "last" and "insn".
10569 (prev_active_insn_bb): Likewise for return type and param "insn".
10570 (next_active_insn_bb): Likewise.
10571 (force_move_args_size_note): Likewise for params "prev" and "last"
10572 and locals "test", "next_candidate", "prev_candidate".
10573 (combine_stack_adjustments_for_block): Strengthen locals
10574 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
10577 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10579 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
10580 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
10581 (subst_insn): Likewise for this variable.
10582 (added_links_insn): Likewise.
10583 (struct insn_link): Likewise for field "insn".
10584 (alloc_insn_link): Likewise for param "insn".
10585 (struct undobuf): Likewise for field "other_insn".
10586 (find_single_use): Likewise for param "insn" and local "next".
10587 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
10588 (delete_noop_moves): Likewise for locals "insn", "next".
10589 (create_log_links): Likewise for locals "insn", "use_insn".
10590 Strengthen local "next_use" from rtx * to rtx_insn **.
10591 (insn_a_feeds_b): Likewise for params "a", "b".
10592 (combine_instructions): Likewise for param "f" and locals "insn",
10593 "next", "prev", "first", "last_combined_insn", "link", "link1",
10594 "temp". Replace use of NULL_RTX with NULL when referring to
10596 (setup_incoming_promotions): Likewise for param "first"
10597 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
10598 (can_combine_p): Likewise for params "insn", "i3", "pred",
10599 "pred2", "succ", "succ2" and for local "p".
10600 (combinable_i3pat): Likewise for param "i3".
10601 (cant_combine_insn_p): Likewise for param "insn".
10602 (likely_spilled_retval_p): Likewise.
10603 (adjust_for_new_dest): Likewise.
10604 (update_cfg_for_uncondjump): Likewise, also for local "insn".
10605 (try_combine): Likewise for return type and for params "i3", "i2",
10606 "i1", "i0", "last_combined_insn", and for locals "insn",
10607 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
10608 "i0_insn". Eliminate local "tem" in favor of new locals
10609 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
10610 checked cast for now to rtx_insn * on the return type of
10611 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
10613 (find_split_point): Strengthen param "insn" from rtx to
10615 (simplify_set): Likewise for local "other_insn".
10616 (recog_for_combine): Likewise for param "insn".
10617 (record_value_for_reg): Likewise.
10618 (record_dead_and_set_regs_1): Likewise for local
10619 "record_dead_insn".
10620 (record_dead_and_set_regs): Likewise for param "insn".
10621 (record_promoted_value): Likewise.
10622 (check_promoted_subreg): Likewise.
10623 (get_last_value_validate): Likewise.
10624 (reg_dead_at_p): Likewise.
10625 (move_deaths): Likewise for param "to_insn".
10626 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
10627 and locals "place", "place2", "cc0_setter". Eliminate local "tem
10628 in favor of new locals "tem_note" and "tem_insn", the latter being
10630 (distribute_links): Strengthen locals "place", "insn" from rtx to
10633 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10635 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
10637 (can_delete_label_p): Require a const rtx_code_label * rather than
10639 (delete_insn): Add checked cast to rtx_code_label * when we know
10640 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
10642 (delete_insn_chain): Strengthen locals "prev" and "current" from
10643 rtx to rtx_insn *. Add a checked cast when assigning from
10644 "finish" (strengthening the params will come later). Add a
10645 checked cast to rtx_note * in region where we know
10647 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
10649 (compute_bb_for_insn): Likewise.
10650 (free_bb_for_insn): Likewise for local "insn".
10651 (compute_bb_for_insn): Likewise.
10652 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
10653 local "insn" from rtx to rtx_insn *
10654 (flow_active_insn_p): Require a const rtx_insn * rather than a
10656 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
10658 (can_fallthru): Likewise for locals "insn" and "insn2".
10659 (bb_note): Likewise for local "note".
10660 (first_insn_after_basic_block_note): Likewise for local "note" and
10662 (rtl_split_block): Likewise for locals "insn" and "next".
10663 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
10665 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
10666 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
10668 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
10669 them), "kill_from", "barrier", "new_insn".
10670 (patch_jump_insn): Likewise for params "insn", "old_label".
10671 (redirect_branch_edge): Likewise for locals "old_label", "insn".
10672 (force_nonfallthru_and_redirect): Likewise for locals "insn",
10673 "old_label", "new_label".
10674 (rtl_tidy_fallthru_edge): Likewise for local "q".
10675 (rtl_split_edge): Likewise for locals "before", "last".
10676 (commit_one_edge_insertion): Likewise for locals "before",
10677 "after", "insns", "tmp", "last", adding a checked cast where
10678 currently necessary.
10679 (commit_edge_insertions): Likewise.
10680 (rtl_dump_bb): Likewise for locals "insn", "last".
10681 (print_rtl_with_bb): Likewise for local "x".
10682 (rtl_verify_bb_insns): Likewise for local "x".
10683 (rtl_verify_bb_pointers): Likewise for local "insn".
10684 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
10686 (rtl_verify_fallthru): Likewise for local "insn".
10687 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
10688 (purge_dead_edges): Likewise for local "insn".
10689 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
10690 (skip_insns_after_block): Likewise for return type and for locals
10691 "insn", "last_insn", "next_head", "prev".
10692 (record_effective_endpoints): Likewise for locals "next_insn",
10694 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
10695 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
10696 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
10697 (duplicate_insn_chain): For now, add checked cast from rtx to
10698 rtx_insn * when returning insn.
10699 (cfg_layout_duplicate_bb): Likewise for local "insn".
10700 (cfg_layout_delete_block): Likewise for locals "insn", "next",
10701 "prev", "remaints".
10702 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
10703 (rtl_block_empty_p): Likewise.
10704 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
10705 "split_point", "last".
10706 (rtl_block_ends_with_call_p): Likewise for local "insn".
10707 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
10709 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
10710 "split_at_insn" from rtx to rtx_insn *.
10711 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
10712 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
10713 to const rtx_insn *.
10714 (rtl_account_profile_record): Likewise.
10716 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10718 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
10720 (average_num_loop_insns): Likewise.
10721 (init_set_costs): Likewise for local "seq".
10722 (seq_cost): Likewise for param "seq", from const_rtx to const
10725 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10727 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
10730 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10732 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
10733 "f1" and "f2" from rtx * to rtx_insn **.
10734 (flow_find_head_matching_sequence): Likewise.
10736 * cfgcleanup.c (try_simplify_condjump): Strengthen local
10737 "cbranch_insn" from rtx to rtx_insn *.
10738 (thread_jump): Likewise for local "insn".
10739 (try_forward_edges): Likewise for local "last".
10740 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
10741 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
10743 (can_replace_by): Likewise for params "i1", "i2".
10744 (old_insns_match_p): Likewise.
10745 (merge_notes): Likewise.
10746 (walk_to_nondebug_insn): Likewise for param "i1".
10747 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
10748 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
10749 "afterlast1", "afterlast2" from rtx to rtx_insn *.
10750 (flow_find_head_matching_sequence): Strengthen params "f1" and
10751 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
10752 "last1", "last2", "beforelast1", "beforelast2" from rtx to
10754 (outgoing_edges_match): Likewise for locals "last1", "last2".
10755 (try_crossjump_to_edge): Likewise for local "insn".
10756 Replace call to for_each_rtx with for_each_rtx_in_insn.
10758 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
10759 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
10760 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
10761 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
10762 (try_optimize_cfg): Strengthen local "last" from rtx to
10764 (delete_dead_jumptables): Likewise for locals "insn", "next",
10767 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
10768 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
10769 "rtx else_first_tail", to reflect the basic-block.h changes above.
10771 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10773 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
10775 (purge_dead_tablejump_edges): Likewise.
10776 (find_bb_boundaries): Likewise for locals "insn", "end",
10777 "flow_transfer_insn".
10779 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10781 * caller-save.c (save_call_clobbered_regs): Strengthen locals
10782 "ins" and "prev" from rtx to rtx_insn *.
10784 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10786 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
10788 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
10789 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
10791 (load_register_parameters): Likewise for local "before_arg".
10792 (check_sibcall_argument_overlap): Likewise for param "insn".
10793 (expand_call): Likewise for locals "normal_call_insns",
10794 "tail_call_insns", "insns", "before_call", "after_args",
10795 "before_arg", "last", "prev". Strengthen one of the "last" from
10796 rtx to rtx_call_insn *.
10797 (fixup_tail_calls): Strengthen local "insn" from rtx to
10799 (emit_library_call_value_1): Likewise for locals "before_call" and
10802 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10804 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
10805 and "last" from rtx to rtx_insn *.
10806 (expand_builtin_nonlocal_goto): Likewise for local "insn".
10807 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
10809 (expand_errno_check): Strengthen local "lab" from rtx to
10811 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
10813 (expand_builtin_mathfn_2): Likewise.
10814 (expand_builtin_mathfn_ternary): Likewise.
10815 (expand_builtin_mathfn_3): Likewise.
10816 (expand_builtin_interclass_mathfn): Likewise for local "last".
10817 (expand_builtin_int_roundingfn): Likewise for local "insns".
10818 (expand_builtin_int_roundingfn_2): Likewise.
10819 (expand_builtin_strlen): Likewise for local "before_strlen".
10820 (expand_builtin_strncmp): Likewise for local "seq".
10821 (expand_builtin_signbit): Likewise for local "last".
10822 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
10823 from rtx to rtx_code_label *.
10824 (expand_stack_restore): Strengthen local "prev" from rtx to
10827 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10829 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
10831 (struct btr_def_s): Likewise.
10832 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
10834 (add_btr_def): Likewise.
10835 (new_btr_user): Likewise.
10836 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
10838 (link_btr_uses): Likewise.
10839 (move_btr_def): Likewise for locals "insp", "old_insn",
10840 "new_insn". Add checked cast to rtx_insn * for now on result of
10842 (can_move_up): Strengthen param "insn" from const_rtx to
10845 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10847 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
10849 (get_uncond_jump_length): Likewise for locals "label", "jump".
10850 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
10852 (add_labels_and_missing_jumps): Likewise for local "new_jump".
10853 (fix_up_fall_thru_edges): Likewise for local "old_jump".
10854 (find_jump_block): Likewise for local "insn".
10855 (fix_crossing_conditional_branches): Likewise for locals
10856 "old_jump", "new_jump".
10857 (fix_crossing_unconditional_branches): Likewise for locals
10858 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
10859 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
10861 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10863 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
10865 (struct mem_insn): Likewise for field "insn".
10866 (reg_next_use): Strengthen from rtx * to rtx_insn **.
10867 (reg_next_inc_use): Likewise.
10868 (reg_next_def): Likewise.
10869 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
10870 from rtx to rtx_insn *.
10871 (move_insn_before): Likewise for param "next_insn" and local "insns".
10872 (attempt_change): Likewise for local "mov_insn".
10873 (try_merge): Likewise for param "last_insn".
10874 (get_next_ref): Likewise for return type and local "insn".
10875 Strengthen param "next_array" from rtx * to rtx_insn **.
10876 (parse_add_or_inc): Strengthen param "insn" from rtx to
10878 (find_inc): Likewise for locals "insn" and "other_insn" (three of
10880 (merge_in_block): Likewise for locals "insn", "curr",
10882 (pass_inc_dec::execute): Update allocations of the arrays to
10883 reflect the stronger types.
10885 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10887 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
10888 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
10889 from rtx to rtx_code_label *.
10891 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10893 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
10896 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10898 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
10899 generated a warning and prevented bootstrapping the compiler.
10901 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10903 * rtl.h (delete_related_insns): Strengthen return type from rtx to
10906 * jump.c (delete_related_insns): Likewise, also for locals "next"
10909 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10911 * genautomata.c (output_internal_insn_latency_func): When writing
10912 the function "internal_insn_latency" to insn-automata.c,
10913 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
10914 allowing the optional guard function of (define_bypass) clauses to
10915 expect a pair of rtx_insn *, rather than a pair of rtx.
10916 (output_insn_latency_func): When writing the function
10917 "insn_latency", add an "uncast_" prefix to params "insn" and
10918 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
10919 using checked casts from the params, thus enabling the above
10920 change to the generated "internal_insn_latency" function.
10922 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
10924 PR tree-optimization/62091
10925 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
10926 handle correctly arrays.
10927 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
10928 inheritance binfos.
10929 (record_known_type): Walk into inner type.
10930 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
10931 condition on no type changes.
10933 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10935 * genattrtab.c (write_attr_get): Within the generated get_attr_
10936 functions, rename param "insn" to "uncast_insn" and reintroduce
10937 "insn" as an local rtx_insn * using a checked cast, so that "insn"
10938 is an rtx_insn * within insn-attrtab.c
10940 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10942 * output.h (peephole): Strengthen return type from rtx to
10944 * rtl.h (delete_for_peephole): Likewise for both params.
10945 * genpeep.c (main): In generated "peephole" function, strengthen
10946 return type and local "insn" from rtx to rtx_insn *. For now,
10947 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
10948 rtx_insn *, with a checked cast.
10949 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
10950 locals "insn", "next", "prev" from rtx to rtx_insn *.
10952 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
10954 PR tree-optimization/62112
10955 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
10956 * gimple-iterator.h (gsi_replace): Return bool.
10957 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
10958 moved from ref_may_alias_global_p.
10959 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
10961 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
10962 (stmt_kills_ref_p_1): Rename...
10963 (stmt_kills_ref_p): ... to this.
10964 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
10965 stmt_kills_ref_p): Declare.
10966 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
10967 Move the self-assignment case...
10968 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
10970 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10972 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
10974 * emit-rtl.c (try_split): Likewise, also for locals "before" and
10975 "after". For now, don't strengthen param "trial", which requires
10976 adding checked casts when returning it.
10978 2014-08-21 David Malcolm <dmalcolm@redhat.com>
10980 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
10981 "label" from rtx to rtx_code_label *. Strengthen param 1 of
10982 "var_location" hook from rtx to rtx_insn *.
10983 (debug_nothing_rtx): Delete in favor of...
10984 (debug_nothing_rtx_code_label): New prototype.
10985 (debug_nothing_rtx_rtx): Delete unused prototype.
10986 (debug_nothing_rtx_insn): New prototype.
10988 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
10989 invoking debug_hooks->var_location (in two places, one in a NOTE
10990 case of a switch statement, the other guarded by a CALL_P
10991 conditional. Add checked cast to rtx_code_label * when invoking
10992 debug_hooks->label (within CODE_LABEL case of switch statement).
10994 * dbxout.c (dbx_debug_hooks): Update "label" hook from
10995 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
10996 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
10997 (xcoff_debug_hooks): Likewise.
10998 * debug.c (do_nothing_debug_hooks): Likewise.
10999 (debug_nothing_rtx): Delete in favor of...
11000 (debug_nothing_rtx_insn): New function.
11001 (debug_nothing_rtx_rtx): Delete unused function.
11002 (debug_nothing_rtx_code_label): New function.
11003 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
11004 debug_nothing_rtx to debug_nothing_rtx_code_label.
11005 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
11007 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
11008 debug_nothing_rtx to debug_nothing_rtx_insn.
11009 (sdbout_label): Strengthen param "insn" from rtx to
11011 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
11012 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
11013 "var_location" hook from debug_nothing_rtx to
11014 debug_nothing_rtx_insn.
11016 2014-08-21 David Malcolm <dmalcolm@redhat.com>
11018 * recog.h (insn_output_fn): Update this function typedef to match
11019 the changes below to the generated output functions, strengthening
11020 the 2nd param from rtx to rtx_insn *.
11022 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
11023 insn when invoking an output function, to match the new signature
11024 of insn_output_fn with a stronger second param.
11026 * genconditions.c (write_header): In the generated code for
11027 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
11028 to match the other changes in this patch.
11030 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
11031 the generated "gen_" functions from rtx to rtx_insn * within their
11034 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
11035 the subfunctions within the generated "recog_", "split", "peephole2"
11036 function trees from rtx to rtx_insn *. For now, the top-level
11037 generated functions ("recog", "split", "peephole2") continue to
11038 take a plain rtx for "insn", to avoid introducing dependencies on
11039 other patches. Rename this 2nd param from "insn" to
11040 "uncast_insn", and reintroduce "insn" as a local variable of type
11041 rtx_insn *, initialized at the top of the generated function with
11042 a checked cast on "uncast_insn".
11043 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
11044 the generated "gen_" functions from rtx to rtx_insn * within their
11047 * genoutput.c (process_template): Strengthen the 2nd param within
11048 the generated "output_" functions "insn" from rtx to rtx_insn *.
11050 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
11052 * tree-profile.c (tree_profiling): Skip external functions
11053 when doing coverage instrumentation.
11054 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
11056 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11058 * config/rs6000/altivec.h (vec_cpsgn): New #define.
11059 (vec_mergee): Likewise.
11060 (vec_mergeo): Likewise.
11061 (vec_cntlz): Likewise.
11062 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
11063 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
11064 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
11065 VMRGEW, and VMRGOW.
11066 * doc/extend.texi: Document various forms of vec_cpsgn,
11067 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
11068 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
11069 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
11070 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
11071 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
11073 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11075 * config/rs6000/rs6000.c (context.h): New include.
11076 (tree-pass.h): Likewise.
11077 (make_pass_analyze_swaps): New decl.
11078 (rs6000_option_override): Register pass_analyze_swaps.
11079 (swap_web_entry): New subsclass of web_entry_base (df.h).
11080 (special_handling_values): New enum.
11081 (union_defs): New function.
11082 (union_uses): Likewise.
11083 (insn_is_load_p): Likewise.
11084 (insn_is_store_p): Likewise.
11085 (insn_is_swap_p): Likewise.
11086 (rtx_is_swappable_p): Likewise.
11087 (insn_is_swappable_p): Likewise.
11088 (chain_purpose): New enum.
11089 (chain_contains_only_swaps): New function.
11090 (mark_swaps_for_removal): Likewise.
11091 (swap_const_vector_halves): Likewise.
11092 (adjust_subreg_index): Likewise.
11093 (permute_load): Likewise.
11094 (permute_store): Likewise.
11095 (handle_special_swappables): Likewise.
11096 (replace_swap_with_copy): Likewise.
11097 (dump_swap_insn_table): Likewise.
11098 (rs6000_analyze_swaps): Likewise.
11099 (pass_data_analyze_swaps): New pass_data.
11100 (pass_analyze_swaps): New rtl_opt_pass.
11101 (make_pass_analyze_swaps): New function.
11102 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
11104 2014-08-21 David Malcolm <dmalcolm@redhat.com>
11106 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
11107 type from rtx to rtx_insn *.
11108 (create_copy_of_insn_rtx): Likewise.
11109 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
11110 (create_copy_of_insn_rtx): Likewise, also for local "res".
11112 2014-08-21 David Malcolm <dmalcolm@redhat.com>
11114 * rtl.h (find_first_parameter_load): Strengthen return type from
11116 * rtlanal.c (find_first_parameter_load): Strengthen return type
11117 from rtx to rtx_insn *. Add checked cast for now, to postpone
11118 strengthening the params.
11120 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
11123 * diagnostic.c: Set default caret.
11124 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
11126 * diagnostic.h (struct diagnostic_context):
11128 2014-08-21 David Malcolm <dmalcolm@redhat.com>
11130 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
11131 (sel_bb_head): Strengthen return type insn_t (currently just an
11132 rtx) to rtx_insn *.
11133 (sel_bb_end): Likewise.
11135 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
11136 (sel_bb_head): Strengthen return type and local "head" from
11137 insn_t (currently just an rtx) to rtx_insn *.
11138 (sel_bb_end): Likewise for return type.
11139 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
11142 2014-08-21 David Malcolm <dmalcolm@redhat.com>
11144 * basic-block.h (get_last_bb_insn): Strengthen return type from
11146 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
11149 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
11152 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
11154 (diagnostic_report_diagnostic): ... from here.
11155 * toplev.c (general_init): Move code to c-family.
11157 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11159 * df.h (web_entry_base): Replace existing struct web_entry with a
11160 new class web_entry_base with only the predecessor member.
11161 (unionfind_root): Remove declaration and move to class member.
11162 (unionfind_union): Remove declaration and move to friend
11164 (union_defs): Remove declaration.
11165 * web.c (web_entry_base::unionfind_root): Modify to be member
11166 function and adjust accessors.
11167 (unionfind_union): Modify to be friend function and adjust
11169 (web_entry): New subclass of web_entry_base containing the reg
11171 (union_match_dups): Modify for struct -> class changes.
11172 (union_defs): Likewise.
11173 (entry_register): Likewise.
11174 (pass_web::execute): Likewise.
11176 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
11178 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
11179 builtin define __VEC_ELEMENT_REG_ORDER__.
11181 2014-08-20 Martin Jambor <mjambor@suse.cz>
11182 Wei Mi <wmi@google.com>
11185 PR middle-end/61776
11186 * tree-ssa-operands.c (update_stmt_operands): Remove
11187 MODIFIED_NORETURN_CALLS.
11188 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
11189 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
11190 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
11191 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
11192 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
11193 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
11194 (gimple_call_set_ctrl_altering): New func.
11195 (gimple_call_ctrl_altering_p): Ditto.
11196 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
11197 (make_blocks): Use gimple_call_initialize_ctrl_altering.
11198 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
11199 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
11200 remove MODIFIED_NORETURN_CALLS.
11202 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
11204 * coverage.c (coverage_compute_profile_id): Return non-0;
11205 also handle symbols with unique name.
11206 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
11208 2014-08-20 Steve Ellcey <sellcey@mips.com>
11210 PR middle-end/49191
11211 * doc/sourcebuild.texi (non_strict_align): New.
11213 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
11215 * cgraphunit.c (ipa_passes, compile): Reshedule
11216 symtab_remove_unreachable_nodes passes; update comments.
11217 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
11218 TODO_remove_functions before the pass; the functions ought to be
11220 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
11221 TODO_remove_functions.
11222 * passes.c (pass_data_early_local_passes): Do not schedule function
11224 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
11226 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
11229 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
11230 before setting the option.
11231 * diagnostic.c (diagnostic_classify_diagnostic): Record
11232 command-line status.
11234 2014-08-20 Richard Biener <rguenther@suse.de>
11237 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
11238 to build uint{16,32,64}_type_node.
11240 2014-08-20 Terry Guo <terry.guo@arm.com>
11242 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
11243 with immediate_operand.
11245 2014-08-20 David Malcolm <dmalcolm@redhat.com>
11247 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
11248 "insn" from an as_a to a safe_as_a, for the case when "insn" is
11251 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
11253 PR preprocessor/51303
11254 * incpath.c (remove_duplicates): Use cpp_warning.
11256 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
11260 * doc/options.texi (CPP): Document it.
11261 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
11262 * optc-gen.awk: Handle CPP.
11263 * opth-gen.awk: Likewise.
11265 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11267 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
11269 (duplicate_insn_chain): Likewise.
11270 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
11271 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
11272 checked cast for now (until we can strengthen the params in the
11274 (duplicate_insn_chain): Likewise.
11276 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11278 * rtl.h (next_cc0_user): Strengthen return type from rtx to
11280 (prev_cc0_setter): Likewise.
11282 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
11283 rtx_insn *, adding checked casts for now as necessary.
11284 (prev_cc0_setter): Likewise.
11286 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11288 * expr.h (emit_move_insn): Strengthen return type from rtx to
11290 (emit_move_insn_1): Likewise.
11291 (emit_move_complex_push): Likewise.
11292 (emit_move_complex_parts): Likewise.
11294 * expr.c (emit_move_via_integer): Strengthen return type from rtx
11295 to rtx_insn *. Replace use of NULL_RTX with NULL when working
11297 (emit_move_complex_push): Strengthen return type from rtx to
11299 (emit_move_complex): Likewise, also for local "ret".
11300 (emit_move_ccmode): Likewise.
11301 (emit_move_multi_word): Likewise for return type and locals
11302 "last_insn", "seq".
11303 (emit_move_insn_1): Likewise for return type and locals "result",
11305 (emit_move_insn): Likewise for return type and local "last_insn".
11306 (compress_float_constant): Likewise.
11308 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11310 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
11311 from rtx to rtx_insn *.
11313 * rtl.h (emit_insn_before): Likewise.
11314 (emit_insn_before_noloc): Likewise.
11315 (emit_insn_before_setloc): Likewise.
11316 (emit_jump_insn_before): Likewise.
11317 (emit_jump_insn_before_noloc): Likewise.
11318 (emit_jump_insn_before_setloc): Likewise.
11319 (emit_call_insn_before): Likewise.
11320 (emit_call_insn_before_noloc): Likewise.
11321 (emit_call_insn_before_setloc): Likewise.
11322 (emit_debug_insn_before): Likewise.
11323 (emit_debug_insn_before_noloc): Likewise.
11324 (emit_debug_insn_before_setloc): Likewise.
11325 (emit_label_before): Likewise.
11326 (emit_insn_after): Likewise.
11327 (emit_insn_after_noloc): Likewise.
11328 (emit_insn_after_setloc): Likewise.
11329 (emit_jump_insn_after): Likewise.
11330 (emit_jump_insn_after_noloc): Likewise.
11331 (emit_jump_insn_after_setloc): Likewise.
11332 (emit_call_insn_after): Likewise.
11333 (emit_call_insn_after_noloc): Likewise.
11334 (emit_call_insn_after_setloc): Likewise.
11335 (emit_debug_insn_after): Likewise.
11336 (emit_debug_insn_after_noloc): Likewise.
11337 (emit_debug_insn_after_setloc): Likewise.
11338 (emit_label_after): Likewise.
11339 (emit_insn): Likewise.
11340 (emit_debug_insn): Likewise.
11341 (emit_jump_insn): Likewise.
11342 (emit_call_insn): Likewise.
11343 (emit_label): Likewise.
11344 (gen_clobber): Likewise.
11345 (emit_clobber): Likewise.
11346 (gen_use): Likewise.
11347 (emit_use): Likewise.
11350 (emit_barrier_before): Strengthen return type from rtx to
11352 (emit_barrier_after): Likewise.
11353 (emit_barrier): Likewise.
11355 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
11356 from rtx to rtx_insn *. Add checked casts for now when converting
11357 "last" from rtx to rtx_insn *.
11358 (emit_insn_before_noloc): Likewise for return type.
11359 (emit_jump_insn_before_noloc): Likewise.
11360 (emit_call_insn_before_noloc): Likewise.
11361 (emit_debug_insn_before_noloc): Likewise.
11362 (emit_barrier_before): Strengthen return type and local "insn"
11363 from rtx to rtx_barrier *.
11364 (emit_label_before): Strengthen return type from rtx to
11365 rtx_insn *. Add checked cast for now when returning param
11366 (emit_pattern_after_noloc): Strengthen return type from rtx to
11367 rtx_insn *. Add checked casts for now when converting "last" from
11369 (emit_insn_after_noloc): Strengthen return type from rtx to
11371 (emit_jump_insn_after_noloc): Likewise.
11372 (emit_call_insn_after_noloc): Likewise.
11373 (emit_debug_insn_after_noloc): Likewise.
11374 (emit_barrier_after): Strengthen return type from rtx to
11376 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
11377 Add checked cast for now when converting "label" from rtx to
11379 (emit_pattern_after_setloc): Strengthen return type from rtx to
11380 rtx_insn *. Add checked casts for now when converting "last" from
11382 (emit_pattern_after): Strengthen return type from rtx to
11384 (emit_insn_after_setloc): Likewise.
11385 (emit_insn_after): Likewise.
11386 (emit_jump_insn_after_setloc): Likewise.
11387 (emit_jump_insn_after): Likewise.
11388 (emit_call_insn_after_setloc): Likewise.
11389 (emit_call_insn_after): Likewise.
11390 (emit_debug_insn_after_setloc): Likewise.
11391 (emit_debug_insn_after): Likewise.
11392 (emit_pattern_before_setloc): Likewise. Add checked casts for now
11393 when converting "last" from rtx to rtx_insn *.
11394 (emit_pattern_before): Strengthen return type from rtx to
11396 (emit_insn_before_setloc): Likewise.
11397 (emit_insn_before): Likewise.
11398 (emit_jump_insn_before_setloc): Likewise.
11399 (emit_jump_insn_before): Likewise.
11400 (emit_call_insn_before_setloc): Likewise.
11401 (emit_call_insn_before): Likewise.
11402 (emit_debug_insn_before_setloc): Likewise.
11403 (emit_debug_insn_before): Likewise.
11404 (emit_insn): Strengthen return type and locals "last", "insn",
11405 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
11406 within cases where we know we have an insn.
11407 (emit_debug_insn): Likewise.
11408 (emit_jump_insn): Likewise.
11409 (emit_call_insn): Strengthen return type and local "insn" from rtx
11411 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
11412 a checked cast to rtx_insn * for now on "label".
11413 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
11414 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
11415 (emit_use): Likewise.
11416 (gen_use): Likewise, also for local "seq".
11417 (emit): Likewise for return type and local "insn".
11418 (rtx_insn): Likewise for return type and local "new_rtx".
11420 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
11421 from rtx to rtx_barrier *.
11423 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
11424 changed return type from rtx to rtx_insn *, we must update
11425 "emit_fn" type, and this in turn means updating...
11426 (frame_insn): ...this. Strengthen return type from rtx to
11427 rtx_insn *. Introduce a new local "insn" of the appropriate type.
11429 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11431 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
11432 rtx to rtx_jump_table_data *. Also for local.
11433 * rtl.h (emit_jump_table_data): Likewise.
11435 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11437 * basic-block.h (create_basic_block_structure): Strengthen third
11438 param "bb_note" from rtx to rtx_note *.
11439 * rtl.h (emit_note_before): Strengthen return type from rtx to
11441 (emit_note_after): Likewise.
11442 (emit_note): Likewise.
11443 (emit_note_copy): Likewise. Also, strengthen param similarly.
11444 * function.h (struct rtl_data): Strengthen field
11445 "x_stack_check_probe_note" from rtx to rtx_note *.
11447 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
11448 from rtx to rtx_note *.
11449 * cfgrtl.c (create_basic_block_structure): Strengthen third param
11450 "bb_note" from rtx to rtx_note *.
11451 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
11452 when calling emit_note_copy.
11453 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
11455 (emit_note_after): Likewise.
11456 (emit_note_before): Likewise.
11457 (emit_note_copy): Likewise. Also, strengthen param similarly.
11458 (emit_note): Likewise.
11459 * except.c (emit_note_eh_region_end): Likewise for return type.
11460 Strengthen local "next" from rtx to rtx_insn *.
11461 (convert_to_eh_region_ranges): Strengthen local "note"
11462 from rtx to rtx_note *.
11463 * final.c (change_scope): Likewise.
11464 (reemit_insn_block_notes): Likewise, for both locals named "note".
11465 Also, strengthen local "insn" from rtx to rtx_insn *.
11466 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
11468 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
11469 strengthen local "seq" from rtx to rtx_insn *.
11470 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
11472 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
11474 (get_bb_note_from_pool): Strengthen return type from rtx to
11476 (sel_create_basic_block): Strengthen local "new_bb_note" from
11477 insn_t to rtx_note *.
11478 * var-tracking.c (emit_note_insn_var_location): Strengthen local
11479 "note" from rtx to rtx_note *.
11480 (emit_notes_in_bb): Likewise.
11482 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11484 * function.h (struct rtl_data): Strengthen field
11485 "x_parm_birth_insn" from rtx to rtx_insn *.
11486 * function.c (struct assign_parm_data_all): Strengthen fields
11487 "first_conversion_insn" and "last_conversion_insn" from rtx to
11490 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11492 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
11493 to rtx_insn *; also for local "var_end_seq".
11494 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
11495 (maybe_cleanup_end_of_block): Likewise for param "last" and local
11497 (expand_gimple_cond): Likewise for locals "last2" and "last".
11498 (mark_transaction_restart_calls): Likewise for local "insn".
11499 (expand_gimple_stmt): Likewise for return type and locals "last"
11501 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
11502 (avoid_complex_debug_insns): Likewise for param "insn".
11503 (expand_debug_locations): Likewise for locals "insn", "last",
11504 "prev_insn" and "insn2".
11505 (expand_gimple_basic_block): Likewise for local "last".
11506 (construct_exit_block): Likewise for locals "head", "end",
11508 (pass_expand::execute): Likewise for locals "var_seq",
11509 "var_ret_seq", "next".
11511 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11513 * asan.h (asan_emit_stack_protection): Strengthen return type from
11515 * asan.c (asan_emit_stack_protection): Likewise. Add local
11516 "insns" to hold the return value.
11518 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11520 * basic-block.h (bb_note): Strengthen return type from rtx to
11522 * sched-int.h (bb_note): Likewise.
11523 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
11525 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11527 * rtl.h (make_insn_raw): Strengthen return type from rtx to
11530 * emit-rtl.c (make_insn_raw): Strengthen return type and local
11531 "insn" from rtx to rtx_insn *.
11532 (make_debug_insn_raw): Strengthen return type from rtx to
11533 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
11534 (make_jump_insn_raw): Strengthen return type from rtx to
11535 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
11536 (make_call_insn_raw): Strengthen return type from rtx to
11537 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
11538 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
11539 callback from rtx to rtx_insn *; likewise for local "insn" and
11540 "next", adding a checked cast to rtx_insn in the relevant cases of
11541 the switch statement.
11542 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
11543 callback from rtx to rtx_insn *.
11544 (emit_pattern_after_setloc): Likewise.
11545 (emit_pattern_after): Likewise.
11546 (emit_pattern_before_setloc): Likewise.
11547 (emit_pattern_before): Likewise.
11549 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11551 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
11553 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
11554 accepting an rtx_insn *.
11555 (last_call_insn): Strengthen return type from rtx to
11558 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11560 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
11561 "insns" from rtx to rtx_insn *.
11562 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
11563 locals "insn" and "prev".
11565 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11567 * rtl.h (tablejump_p): Strengthen third param from rtx * to
11568 rtx_jump_table_data **.
11570 * cfgbuild.c (make_edges): Introduce local "table", using it in
11571 place of "tmp" for jump table data.
11572 (find_bb_boundaries): Strengthen local "table" from rtx to
11573 rtx_jump_table_data *.
11574 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
11575 (outgoing_edges_match): Likewise for locals "table1" and "table2".
11576 (try_crossjump_to_edge): Likewise.
11577 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
11579 (patch_jump_insn): Introduce local "table", using it in place of
11580 "tmp" for jump table data.
11581 (force_nonfallthru_and_redirect): Introduce local "table", so that
11582 call to tablejump_p can receive an rtx_jump_table_data **. Update
11583 logic around the call to overwrite "note" appropriately if
11584 tablejump_p returns non-zero.
11585 (get_last_bb_insn): Introduce local "table", using it in place of
11586 "tmp" for jump table data.
11587 * dwarf2cfi.c (create_trace_edges): Likewise.
11589 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
11590 from rtx to rtx_jump_table_data *.
11591 (create_fix_barrier): Strengthen local "tmp" from rtx to
11592 rtx_jump_table_data *.
11593 (arm_reorg): Likewise for local "table".
11595 * config/s390/s390.c (s390_chunkify_start): Likewise.
11597 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
11599 * jump.c (delete_related_insns): Strengthen local "lab_next" from
11600 rtx to rtx_jump_table_data *.
11602 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
11603 rtx_jump_table_data **. Add a checked cast when writing through
11604 the pointer: we know there that local "table" is non-NULL and that
11605 JUMP_TABLE_DATA_P (table) holds.
11606 (label_is_jump_target_p): Introduce local "table", using it in
11607 place of "tmp" for jump table data.
11609 2014-08-19 Marek Polacek <polacek@redhat.com>
11612 * doc/invoke.texi: Document -Wbool-compare.
11614 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11616 * rtl.h (entry_of_function): Strengthen return type from rtx to
11618 * cfgrtl.c (entry_of_function): Likewise.
11620 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11622 * emit-rtl.h (get_insns): Strengthen return type from rtx to
11623 rtx_insn *, adding a checked cast for now.
11624 (get_last_insn): Likewise.
11626 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11628 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
11631 * emit-rtl.c (gen_label_rtx): Likewise.
11633 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11635 * rtl.h (previous_insn): Strengthen return type from rtx to
11637 (next_insn): Likewise.
11638 (prev_nonnote_insn): Likewise.
11639 (prev_nonnote_insn_bb): Likewise.
11640 (next_nonnote_insn): Likewise.
11641 (next_nonnote_insn_bb): Likewise.
11642 (prev_nondebug_insn): Likewise.
11643 (next_nondebug_insn): Likewise.
11644 (prev_nonnote_nondebug_insn): Likewise.
11645 (next_nonnote_nondebug_insn): Likewise.
11646 (prev_real_insn): Likewise.
11647 (next_real_insn): Likewise.
11648 (prev_active_insn): Likewise.
11649 (next_active_insn): Likewise.
11651 * emit-rtl.c (next_insn): Strengthen return type from rtx to
11652 rtx_insn *, adding a checked cast.
11653 (previous_insn): Likewise.
11654 (next_nonnote_insn): Likewise.
11655 (next_nonnote_insn_bb): Likewise.
11656 (prev_nonnote_insn): Likewise.
11657 (prev_nonnote_insn_bb): Likewise.
11658 (next_nondebug_insn): Likewise.
11659 (prev_nondebug_insn): Likewise.
11660 (next_nonnote_nondebug_insn): Likewise.
11661 (prev_nonnote_nondebug_insn): Likewise.
11662 (next_real_insn): Likewise.
11663 (prev_real_insn): Likewise.
11664 (next_active_insn): Likewise.
11665 (prev_active_insn): Likewise.
11667 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
11668 param "stepfunc" so that it returns an rtx_insn * rather than an
11669 rtx, to track the change to prev_nonnote_insn_bb, which is the
11670 only function this is called with.
11671 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
11673 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
11675 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
11678 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11680 * coretypes.h (class rtx_debug_insn): Add forward declaration.
11681 (class rtx_nonjump_insn): Likewise.
11682 (class rtx_jump_insn): Likewise.
11683 (class rtx_call_insn): Likewise.
11684 (class rtx_jump_table_data): Likewise.
11685 (class rtx_barrier): Likewise.
11686 (class rtx_code_label): Likewise.
11687 (class rtx_note): Likewise.
11689 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
11690 adding the invariant DEBUG_INSN_P (X).
11691 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
11692 the invariant NONJUMP_INSN_P (X).
11693 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
11694 the invariant JUMP_P (X).
11695 (class rtx_call_insn): New, a subclass of rtx_insn, adding
11696 the invariant CALL_P (X).
11697 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
11698 invariant JUMP_TABLE_DATA_P (X).
11699 (class rtx_barrier): New, a subclass of rtx_insn, adding the
11700 invariant BARRIER_P (X).
11701 (class rtx_code_label): New, a subclass of rtx_insn, adding
11702 the invariant LABEL_P (X).
11703 (class rtx_note): New, a subclass of rtx_insn, adding
11704 the invariant NOTE_P(X).
11705 (is_a_helper <rtx_debug_insn *>::test): New.
11706 (is_a_helper <rtx_nonjump_insn *>::test): New.
11707 (is_a_helper <rtx_jump_insn *>::test): New.
11708 (is_a_helper <rtx_call_insn *>::test): New.
11709 (is_a_helper <rtx_jump_table_data *>::test): New functions,
11710 overloaded for both rtx and rtx_insn *.
11711 (is_a_helper <rtx_barrier *>::test): New.
11712 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
11713 for both rtx and rtx_insn *.
11714 (is_a_helper <rtx_note *>::test): New.
11716 2014-08-19 Marek Polacek <polacek@redhat.com>
11718 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
11719 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
11720 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
11721 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
11723 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11725 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
11726 rtx_insn *. To help with transition, for now, convert from an
11727 access macro into a pair of functions: BND_TO, returning an
11729 (SET_BND_TO): New function, for use where BND_TO is used as an
11732 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
11734 (BND_TO): New function, adding a checked cast.
11735 (SET_BND_TO): New function.
11737 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
11739 (compute_av_set_on_boundaries): Likewise.
11741 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
11743 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
11744 destination if it is used in source.
11745 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
11746 (*popcount<mode>2_falsedep_1): Likewise.
11748 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
11751 * configure.ac: Set install_gold_as_default to no first.
11752 * configure: Regenerated.
11754 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11756 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
11757 "note_list" field will eventually be an rtx_insn *. To help with
11758 transition, for now, convert from an access macro into a pair of
11759 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
11760 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
11763 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
11764 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
11766 * sel-sched-ir.c (init_bb): Likewise.
11767 (sel_restore_notes): Likewise.
11768 (move_bb_info): Likewise.
11769 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
11770 (SET_BB_NOTE_LIST): New function.
11772 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11774 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
11775 field will eventually be an rtx_insn *. To help with transition,
11776 for now, convert from an access macro into a pair of functions:
11777 VINSN_INSN_RTX, returning an rtx_insn *, and...
11778 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
11779 is used as an lvalue.
11781 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
11782 SET_VINSN_INSN_RTX where it's used as an lvalue.
11783 (VINSN_INSN_RTX): New function.
11784 (SET_VINSN_INSN_RTX): New function.
11786 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11788 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
11789 eventually be rtx_insn *, but to help with transition, for now,
11790 convert from an access macro into a pair of functions: DEP_PRO
11791 returning an rtx_insn * and...
11792 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
11793 lvalue, returning an rtx&.
11794 (DEP_CON): Analogous changes to DEP_PRO above.
11795 (SET_DEP_CON): Likewise.
11797 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
11798 an lvalue to SET_DEP_CON.
11799 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
11800 (sd_copy_back_deps): Likewise for DEP_CON.
11801 (DEP_PRO): New function, adding a checked cast for now.
11802 (DEP_CON): Likewise.
11803 (SET_DEP_PRO): New function.
11804 (SET_DEP_CON): Likewise.
11806 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
11808 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
11809 (extra_options): Add i386/cygwin.opt.
11810 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
11811 (CPP_SPEC): Accept -pthread.
11812 (LINK_SPEC): Ditto.
11813 (GOMP_SELF_SPECS): Update comment.
11814 * config/i386/cygwin.opt: New file for -pthread flag.
11816 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11818 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
11819 * df.h (DF_REF_INSN): Convert from a macro to a function, so
11820 that we can return an rtx_insn *.
11822 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
11824 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
11825 when building executables, not DLLs. Add --large-address-aware
11826 under the same conditions.
11827 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
11828 when building executables, not DLLs. Add --large-address-aware
11829 under the same conditions when using -m32.
11831 * config/i386/cygwin-stdint.h: Throughout, make type
11832 definitions dependent on target architecture, not host.
11834 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11836 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
11837 the return type from rtx to rtx_insn *, which will enable various
11838 conversions in followup patches. For now this is is done by a
11840 (NEXT_INSN): Likewise.
11841 (SET_PREV_INSN): Convert to an inline function. This is intended
11842 for use as an lvalue, and so returns an rtx& to allow in-place
11844 (SET_NEXT_INSN): Likewise.
11846 2014-07-08 Mark Wielaard <mjw@redhat.com>
11849 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
11851 2014-08-19 Marek Polacek <polacek@redhat.com>
11854 * cgraphunit.c (handle_alias_pairs): Fix condition.
11856 2014-08-19 Richard Biener <rguenther@suse.de>
11858 * gimple-fold.c (fold_gimple_assign): Properly build a
11859 null-pointer constant when devirtualizing addresses.
11861 2014-07-07 Mark Wielaard <mjw@redhat.com>
11863 * dwarf2out.c (decl_quals): New function.
11864 (modified_type_die): Take one cv_quals argument instead of two,
11865 one for const and one for volatile.
11866 (add_type_attribute): Likewise.
11867 (generic_parameter_die): Call add_type_attribute with one modifier
11869 (base_type_for_mode): Likewise.
11870 (add_bounds_info): Likewise.
11871 (add_subscript_info): Likewise.
11872 (gen_array_type_die): Likewise.
11873 (gen_descr_array_type_die): Likewise.
11874 (gen_entry_point_die): Likewise.
11875 (gen_enumeration_type_die): Likewise.
11876 (gen_formal_parameter_die): Likewise.
11877 (gen_subprogram_die): Likewise.
11878 (gen_variable_die): Likewise.
11879 (gen_const_die): Likewise.
11880 (gen_field_die): Likewise.
11881 (gen_pointer_type_die): Likewise.
11882 (gen_reference_type_die): Likewise.
11883 (gen_ptr_to_mbr_type_die): Likewise.
11884 (gen_inheritance_die): Likewise.
11885 (gen_subroutine_type_die): Likewise.
11886 (gen_typedef_die): Likewise.
11887 (force_type_die): Likewise.
11889 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11891 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
11893 * configure: Regenerate.
11895 2014-08-19 Richard Biener <rguenther@suse.de>
11897 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
11898 DECL_EXTERNALs in BLOCKs as non-references.
11899 * tree-streamer-out.c (streamer_write_chain): Likewise.
11901 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
11902 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11903 Anna Tikhonova <anna.tikhonova@intel.com>
11904 Ilya Tocar <ilya.tocar@intel.com>
11905 Andrey Turetskiy <andrey.turetskiy@intel.com>
11906 Ilya Verbin <ilya.verbin@intel.com>
11907 Kirill Yukhin <kirill.yukhin@intel.com>
11908 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11910 * config/i386/sse.md
11911 (define_mode_iterator VI48_AVX512F): Delete.
11912 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
11913 (define_mode_iterator VI2_AVX512VL): Ditto.
11914 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
11917 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
11919 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
11920 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
11921 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
11922 with VI48_AVX512F_AVX512VL): New.
11923 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
11924 with VI2_AVX512VL): Ditto.
11926 2014-08-19 Marek Polacek <polacek@redhat.com>
11928 * doc/invoke.texi: Document -Wc99-c11-compat.
11930 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11932 * rtl.h (PREV_INSN): Split macro in two: the existing one,
11933 for rvalues, and...
11934 (SET_PREV_INSN): New macro, for use as an lvalue.
11935 (NEXT_INSN, SET_NEXT_INSN): Likewise.
11937 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
11938 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
11939 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11940 (fixup_abnormal_edges): Likewise.
11941 (unlink_insn_chain): Likewise.
11942 (fixup_reorder_chain): Likewise.
11943 (cfg_layout_delete_block): Likewise.
11944 (cfg_layout_merge_blocks): Likewise.
11945 * combine.c (update_cfg_for_uncondjump): Likewise.
11946 * emit-rtl.c (link_insn_into_chain): Likewise.
11947 (remove_insn): Likewise.
11948 (delete_insns_since): Likewise.
11949 (reorder_insns_nobb): Likewise.
11950 (emit_insn_after_1): Likewise.
11951 * final.c (rest_of_clean_state): Likewise.
11952 (final_scan_insn): Likewise.
11953 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
11954 * haifa-sched.c (concat_note_lists): Likewise.
11955 (remove_notes): Likewise.
11956 (restore_other_notes): Likewise.
11957 (move_insn): Likewise.
11958 (unlink_bb_notes): Likewise.
11959 (restore_bb_notes): Likewise.
11960 * jump.c (delete_for_peephole): Likewise.
11961 * optabs.c (emit_libcall_block_1): Likewise.
11962 * reorg.c (emit_delay_sequence): Likewise.
11963 (fill_simple_delay_slots): Likewise.
11964 * sel-sched-ir.c (sel_move_insn): Likewise.
11965 (sel_remove_insn): Likewise.
11966 (get_bb_note_from_pool): Likewise.
11967 * sel-sched.c (move_nop_to_previous_block): Likewise.
11969 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
11970 * config/c6x/c6x.c (gen_one_bundle): Likewise.
11971 (c6x_gen_bundles): Likewise.
11972 (hwloop_optimize): Likewise.
11973 * config/frv/frv.c (frv_function_prologue): Likewise.
11974 (frv_register_nop): Likewise.
11975 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
11976 (ia64_reorg): Likewise.
11977 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
11978 (mep_make_bundle): Likewise.
11979 (mep_bundle_insns): Likewise.
11980 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
11981 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
11982 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
11984 2014-08-19 David Malcolm <dmalcolm@redhat.com>
11986 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
11987 return type from rtx to rtx_insn *.
11988 (BB_END): Likewise.
11989 (BB_HEADER): Likewise.
11990 (BB_FOOTER): Likewise.
11991 (SET_BB_HEAD): Convert to a function.
11992 (SET_BB_END): Likewise.
11993 (SET_BB_HEADER): Likewise.
11994 (SET_BB_FOOTER): Likewise.
11996 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
11997 Strengthen the return type from rtx to rtx_insn *. For now, this
11998 is done by adding a checked cast, but this will eventually
11999 become a field lookup.
12000 (BB_END): Likewise.
12001 (BB_HEADER): Likewise.
12002 (BB_FOOTER): Likewise.
12003 (SET_BB_HEAD): New function, from macro of same name. This is
12004 intended for use as an lvalue, and so returns an rtx& to allow
12005 in-place modification.
12006 (SET_BB_END): Likewise.
12007 (SET_BB_HEADER): Likewise.
12008 (SET_BB_FOOTER): Likewise.
12010 2014-08-18 David Malcolm <dmalcolm@redhat.com>
12012 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
12013 for rvalues, and...
12014 (SET_BB_HEAD): New macro, for use as a lvalue.
12015 (BB_END, SET_BB_END): Likewise.
12016 (BB_HEADER, SET_BB_HEADER): Likewise.
12017 (BB_FOOTER, SET_BB_FOOTER): Likewise.
12019 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
12020 of BB_* macros into SET_BB_* macros.
12021 (fix_crossing_unconditional_branches): Likewise.
12022 * caller-save.c (save_call_clobbered_regs): Likewise.
12023 (insert_one_insn): Likewise.
12024 * cfgbuild.c (find_bb_boundaries): Likewise.
12025 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
12026 (outgoing_edges_match): Likewise.
12027 (try_optimize_cfg): Likewise.
12028 * cfgexpand.c (expand_gimple_cond): Likewise.
12029 (expand_gimple_tailcall): Likewise.
12030 (expand_gimple_basic_block): Likewise.
12031 (construct_exit_block): Likewise.
12032 * cfgrtl.c (delete_insn): Likewise.
12033 (create_basic_block_structure): Likewise.
12034 (rtl_delete_block): Likewise.
12035 (rtl_split_block): Likewise.
12036 (emit_nop_for_unique_locus_between): Likewise.
12037 (rtl_merge_blocks): Likewise.
12038 (block_label): Likewise.
12039 (try_redirect_by_replacing_jump): Likewise.
12040 (emit_barrier_after_bb): Likewise.
12041 (fixup_abnormal_edges): Likewise.
12042 (record_effective_endpoints): Likewise.
12043 (relink_block_chain): Likewise.
12044 (fixup_reorder_chain): Likewise.
12045 (fixup_fallthru_exit_predecessor): Likewise.
12046 (cfg_layout_duplicate_bb): Likewise.
12047 (cfg_layout_split_block): Likewise.
12048 (cfg_layout_delete_block): Likewise.
12049 (cfg_layout_merge_blocks): Likewise.
12050 * combine.c (update_cfg_for_uncondjump): Likewise.
12051 * emit-rtl.c (add_insn_after): Likewise.
12052 (remove_insn): Likewise.
12053 (reorder_insns): Likewise.
12054 (emit_insn_after_1): Likewise.
12055 * haifa-sched.c (get_ebb_head_tail): Likewise.
12056 (restore_other_notes): Likewise.
12057 (move_insn): Likewise.
12058 (sched_extend_bb): Likewise.
12059 (fix_jump_move): Likewise.
12060 * ifcvt.c (noce_process_if_block): Likewise.
12061 (dead_or_predicable): Likewise.
12062 * ira.c (update_equiv_regs): Likewise.
12063 * reg-stack.c (change_stack): Likewise.
12064 * sel-sched-ir.c (sel_move_insn): Likewise.
12065 * sel-sched.c (move_nop_to_previous_block): Likewise.
12067 * config/c6x/c6x.c (hwloop_optimize): Likewise.
12068 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
12070 2014-08-18 David Malcolm <dmalcolm@redhat.com>
12072 * rtl.h (for_each_rtx_in_insn): New function.
12073 * rtlanal.c (for_each_rtx_in_insn): Likewise.
12075 2014-08-18 David Malcolm <dmalcolm@redhat.com>
12077 * coretypes.h (class rtx_insn): Add forward declaration.
12079 * rtl.h: Include is-a.h.
12080 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
12081 workaround to ensure gengtype knows inheritance is occurring,
12082 whilst continuing to use the pre-existing special-casing for
12084 (class rtx_insn): New subclass of rtx_def, adding the
12085 invariant that we're dealing with something we can sanely use
12086 INSN_UID, NEXT_INSN, PREV_INSN on.
12087 (is_a_helper <rtx_insn *>::test): New.
12088 (is_a_helper <const rtx_insn *>::test): New.
12090 2014-08-18 David Malcolm <dmalcolm@redhat.com>
12092 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
12094 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
12096 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
12099 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
12101 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
12102 to BUILT_IN_UNREACHABLE.
12104 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
12107 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
12109 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
12110 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
12111 (ffs<mode>2): Do not expand with tzcnt for
12112 TARGET_AVOID_FALSE_DEP_FOR_BMI.
12113 (ffssi2_no_cmove): Ditto.
12114 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
12115 (ctz<mode>2): New expander.
12116 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
12117 (*ctz<mode>2_falsedep): New insn.
12118 (*ctz<mode>2): Rename from ctz<mode>2.
12119 (clz<mode>2_lzcnt): New expander.
12120 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
12121 (*clz<mode>2_lzcnt_falsedep): New insn.
12122 (*clz<mode>2): Rename from ctz<mode>2.
12123 (popcount<mode>2): New expander.
12124 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
12125 (*popcount<mode>2_falsedep): New insn.
12126 (*popcount<mode>2): Rename from ctz<mode>2.
12127 (*popcount<mode>2_cmp): Remove.
12128 (*popcountsi2_cmp_zext): Ditto.
12130 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
12132 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
12133 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
12134 * config/microblaze/microblaze.h
12135 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
12137 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
12140 * configure.ac: Set install_gold_as_default to no for
12142 * configure: Regenerated.
12144 2014-08-18 Roman Gareev <gareevroman@gmail.com>
12146 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
12147 * config.in: Add undef of HAVE_isl.
12148 * configure: Regenerate.
12149 * configure.ac: Add definition of HAVE_isl.
12150 * graphite-blocking.c: Add checking of HAVE_isl.
12151 * graphite-dependences.c: Likewise.
12152 * graphite-interchange.c: Likewise.
12153 * graphite-isl-ast-to-gimple.c: Likewise.
12154 * graphite-optimize-isl.c: Likewise.
12155 * graphite-poly.c: Likewise.
12156 * graphite-scop-detection.c: Likewise.
12157 * graphite-sese-to-poly.c: Likewise.
12158 * graphite.c: Likewise.
12159 * toplev.c: Replace the checking of HAVE_cloog with the checking
12162 2014-08-18 Richard Biener <rguenther@suse.de>
12164 PR tree-optimization/62090
12165 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
12166 (fold_builtin_3): Do not fold snprintf.
12167 (fold_builtin_4): Likewise.
12168 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
12169 moved from builtins.c.
12170 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
12171 (gimple_fold_builtin): Do not fold sprintf here.
12173 2014-08-18 Richard Biener <rguenther@suse.de>
12175 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
12177 (maybe_canonicalize_mem_ref_addr): ... this function.
12178 (fold_stmt_1): Apply it here before all simplification.
12180 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
12183 * cgraph.h (cgraph_node::create_indirect_edge): Add
12184 compute_indirect_info param.
12185 * cgraph.c (cgraph_node::create_indirect_edge): Compute
12186 indirect_info only when it is required.
12187 * cgraphclones.c (cgraph_clone_edge): Do not recompute
12188 indirect_info fore cloned indirect edge.
12190 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12191 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12192 Anna Tikhonova <anna.tikhonova@intel.com>
12193 Ilya Tocar <ilya.tocar@intel.com>
12194 Andrey Turetskiy <andrey.turetskiy@intel.com>
12195 Ilya Verbin <ilya.verbin@intel.com>
12196 Kirill Yukhin <kirill.yukhin@intel.com>
12197 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12199 * config/i386/sse.md
12200 (define_mode_iterator VI8_AVX2_AVX512BW): New.
12201 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
12203 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12204 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12205 Anna Tikhonova <anna.tikhonova@intel.com>
12206 Ilya Tocar <ilya.tocar@intel.com>
12207 Andrey Turetskiy <andrey.turetskiy@intel.com>
12208 Ilya Verbin <ilya.verbin@intel.com>
12209 Kirill Yukhin <kirill.yukhin@intel.com>
12210 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12212 * config/i386/sse.md
12213 (define_mode_iterator VF1_AVX512VL): New.
12214 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
12215 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
12218 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12219 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12220 Anna Tikhonova <anna.tikhonova@intel.com>
12221 Ilya Tocar <ilya.tocar@intel.com>
12222 Andrey Turetskiy <andrey.turetskiy@intel.com>
12223 Ilya Verbin <ilya.verbin@intel.com>
12224 Kirill Yukhin <kirill.yukhin@intel.com>
12225 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12227 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
12228 * config/i386/i386.md
12229 (define_code_iterator any_float): New.
12230 (define_code_attr floatsuffix): New.
12231 * config/i386/sse.md
12232 (define_mode_iterator VF1_128_256VL): New.
12233 (define_mode_iterator VF2_512_256VL): New.
12234 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
12236 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
12237 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
12239 (define_mode_attr qq2pssuff): New.
12240 (define_mode_attr sselongvecmode): New.
12241 (define_mode_attr sselongvecmodelower): New.
12242 (define_mode_attr sseintvecmode3): New.
12243 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
12245 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
12246 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
12247 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
12248 (define_insn "ufloatv2siv2df2<mask_name>"): New.
12250 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12251 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12252 Anna Tikhonova <anna.tikhonova@intel.com>
12253 Ilya Tocar <ilya.tocar@intel.com>
12254 Andrey Turetskiy <andrey.turetskiy@intel.com>
12255 Ilya Verbin <ilya.verbin@intel.com>
12256 Kirill Yukhin <kirill.yukhin@intel.com>
12257 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12259 * config/i386/sse.md
12260 (define_mode_iterator VF2_AVX512VL): New.
12261 (define_mode_attr sseintvecmode2): New.
12262 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
12263 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
12264 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
12266 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
12268 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
12270 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
12273 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12274 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12275 Anna Tikhonova <anna.tikhonova@intel.com>
12276 Ilya Tocar <ilya.tocar@intel.com>
12277 Andrey Turetskiy <andrey.turetskiy@intel.com>
12278 Ilya Verbin <ilya.verbin@intel.com>
12279 Kirill Yukhin <kirill.yukhin@intel.com>
12280 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12282 * config/i386/i386.md
12283 (define_insn "*movoi_internal_avx"): Add evex version.
12284 (define_insn "*movti_internal"): Ditto.
12286 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12287 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12288 Anna Tikhonova <anna.tikhonova@intel.com>
12289 Ilya Tocar <ilya.tocar@intel.com>
12290 Andrey Turetskiy <andrey.turetskiy@intel.com>
12291 Ilya Verbin <ilya.verbin@intel.com>
12292 Kirill Yukhin <kirill.yukhin@intel.com>
12293 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12295 * config/i386/i386.md
12296 (define_attr "isa"): Add avx512dq, noavx512dq.
12297 (define_attr "enabled"): Ditto.
12298 * config/i386/sse.md
12299 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
12301 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
12302 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12303 Anna Tikhonova <anna.tikhonova@intel.com>
12304 Ilya Tocar <ilya.tocar@intel.com>
12305 Andrey Turetskiy <andrey.turetskiy@intel.com>
12306 Ilya Verbin <ilya.verbin@intel.com>
12307 Kirill Yukhin <kirill.yukhin@intel.com>
12308 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12310 * config/i386/i386.c
12311 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
12312 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
12313 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
12314 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
12315 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
12316 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
12317 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
12318 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
12319 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
12320 * config/i386/sse.md
12321 (define_mode_iterator VMOVE): Allow V4TI mode.
12322 (define_mode_iterator V_AVX512VL): New.
12323 (define_mode_iterator V): New handling for AVX512VL.
12324 (define_insn "avx512f_load<mode>_mask"): Delete.
12325 (define_insn "<avx512>_load<mode>_mask"): New.
12326 (define_insn "avx512f_store<mode>_mask"): Delete.
12327 (define_insn "<avx512>_store<mode>_mask"): New.
12330 2014-08-18 Yury Gribov <y.gribov@samsung.com>
12333 * asan.c (instrument_derefs): Fix bitfield check.
12335 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
12337 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
12338 * config/rs6000/htm.md (ttest): Remove clobber.
12339 * config/rs6000/predicates.md (any_mask_operand): New predicate.
12340 (and_operand): Reformat.
12341 (and_2rld_operand): New predicate.
12342 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
12344 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
12345 parameter. Handle AND directly.
12346 (rs6000_split_logical_di): Remove last parameter.
12347 (rs6000_split_logical): Remove last parameter. Remove obsolete
12349 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
12350 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
12351 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
12352 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
12353 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
12354 and 5 anonymous splitters): Delete.
12355 (and<mode>3): New expander.
12356 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
12357 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
12358 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
12359 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
12360 (floatdisf2_internal1): Remove clobbers.
12361 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
12362 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
12363 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
12364 (and<mode>3 for BOOL_128): Remove clobber.
12365 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
12366 rs6000_split_logical.
12367 (*bool<mode>3_internal for BOOL_128): Adjust call of
12368 rs6000_split_logical.
12369 (*boolc<mode>3_internal1 for BOOL_128,
12370 *boolc<mode>3_internal2 for BOOL_128,
12371 *boolcc<mode>3_internal1 for BOOL_128,
12372 *boolcc<mode>3_internal2 for BOOL_128,
12373 *eqv<mode>3_internal1 for BOOL_128,
12374 *eqv<mode>3_internal2 for BOOL_128,
12375 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
12376 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
12378 (*vec_reload_and_reg_<mptrsize>): Delete.
12380 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
12382 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
12383 and split, *boolccsi3_internal3 and split): Delete.
12384 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
12385 *boolccdi3_internal3 and split): Delete.
12386 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
12387 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
12389 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
12391 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
12392 and split, *boolcsi3_internal3 and split): Delete.
12393 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
12394 *boolcdi3_internal3 and split): Delete.
12395 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
12397 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
12399 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
12400 <'u'>: Also support printing the low-order 16 bits.
12401 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
12402 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
12403 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
12404 *booldi3_internal3 and split): Delete.
12405 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
12406 *bool<mode>3_dot2): New.
12407 (two anonymous define_splits for non_logical_cint_operand): Merge.
12409 2014-08-17 Marek Polacek <polacek@redhat.com>
12410 Manuel López-Ibáñez <manu@gcc.gnu.org>
12413 * diagnostic.c (adjust_line): Add gcc_checking_assert.
12414 (diagnostic_show_locus): Don't print caret diagnostic
12415 if a column is larger than the line_width.
12417 2014-08-17 Roman Gareev <gareevroman@gmail.com>
12419 * common.opt: Make the ISL AST generator to be the main code generator
12422 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
12424 * wide-int.h (generic_wide_int): Declare as class instead of struct.
12426 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
12429 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
12431 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
12432 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
12433 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
12435 * config/pa/pa.md (begin_brtab): Delete insn.
12436 (end_brtab): Likewise.
12438 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
12440 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
12442 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
12444 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
12445 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
12446 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
12447 (get_dynamic_type): Remove.
12448 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
12449 (clear_speculation): Bring to ipa-deivrt.h
12450 (get_class_context): Rename to ...
12451 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
12452 (contains_type_p): Update.
12453 (get_dynamic_type): Rename to ...
12454 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
12455 (possible_polymorphic_call_targets): UPdate.
12456 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
12457 * ipa-prop.c (ipa_analyze_call_uses): Update.
12459 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
12461 * doc/invoke.texi (SH options): Document missing processor variant
12462 options. Remove references to Hitachi. Undocument deprecated mspace
12465 2014-08-15 Jason Merrill <jason@redhat.com>
12467 * tree.c (type_hash_canon): Uncomment assert.
12469 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12471 * input.h (in_system_header_at): Add comment.
12473 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12476 * diagnostic.c (build_message_string): Make it extern.
12477 * diagnostic.h (build_message_string): Make it extern.
12479 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
12481 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
12482 load/store from/to non-floating class pseudo.
12484 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12486 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
12488 2014-08-15 Richard Biener <rguenther@suse.de>
12490 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
12491 (get_constraint_for_ssa_var): Remove dead code.
12492 (get_constraint_for_1): Adjust.
12493 (find_what_var_points_to): Likewise.
12494 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
12496 2014-08-15 Ilya Tocar <tocarip@gmail.com>
12499 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
12500 (_mm512_mask_cmpge_epu32_mask): Ditto.
12501 (_mm512_cmpge_epu32_mask): Ditto.
12502 (_mm512_mask_cmpge_epi64_mask): Ditto.
12503 (_mm512_cmpge_epi64_mask): Ditto.
12504 (_mm512_mask_cmpge_epu64_mask): Ditto.
12505 (_mm512_cmpge_epu64_mask): Ditto.
12506 (_mm512_mask_cmple_epi32_mask): Ditto.
12507 (_mm512_cmple_epi32_mask): Ditto.
12508 (_mm512_mask_cmple_epu32_mask): Ditto.
12509 (_mm512_cmple_epu32_mask): Ditto.
12510 (_mm512_mask_cmple_epi64_mask): Ditto.
12511 (_mm512_cmple_epi64_mask): Ditto.
12512 (_mm512_mask_cmple_epu64_mask): Ditto.
12513 (_mm512_cmple_epu64_mask): Ditto.
12514 (_mm512_mask_cmplt_epi32_mask): Ditto.
12515 (_mm512_cmplt_epi32_mask): Ditto.
12516 (_mm512_mask_cmplt_epu32_mask): Ditto.
12517 (_mm512_cmplt_epu32_mask): Ditto.
12518 (_mm512_mask_cmplt_epi64_mask): Ditto.
12519 (_mm512_cmplt_epi64_mask): Ditto.
12520 (_mm512_mask_cmplt_epu64_mask): Ditto.
12521 (_mm512_cmplt_epu64_mask): Ditto.
12522 (_mm512_mask_cmpneq_epi32_mask): Ditto.
12523 (_mm512_mask_cmpneq_epu32_mask): Ditto.
12524 (_mm512_cmpneq_epu32_mask): Ditto.
12525 (_mm512_mask_cmpneq_epi64_mask): Ditto.
12526 (_mm512_cmpneq_epi64_mask): Ditto.
12527 (_mm512_mask_cmpneq_epu64_mask): Ditto.
12528 (_mm512_cmpneq_epu64_mask): Ditto.
12529 (_mm512_castpd_ps): Ditto.
12530 (_mm512_castpd_si512): Ditto.
12531 (_mm512_castps_pd): Ditto.
12532 (_mm512_castps_si512): Ditto.
12533 (_mm512_castsi512_ps): Ditto.
12534 (_mm512_castsi512_pd): Ditto.
12535 (_mm512_castpd512_pd128): Ditto.
12536 (_mm512_castps512_ps128): Ditto.
12537 (_mm512_castsi512_si128): Ditto.
12538 (_mm512_castpd512_pd256): Ditto.
12539 (_mm512_castps512_ps256): Ditto.
12540 (_mm512_castsi512_si256): Ditto.
12541 (_mm512_castpd128_pd512): Ditto.
12542 (_mm512_castps128_ps512): Ditto.
12543 (_mm512_castsi128_si512): Ditto.
12544 (_mm512_castpd256_pd512): Ditto.
12545 (_mm512_castps256_ps512): Ditto.
12546 (_mm512_castsi256_si512): Ditto.
12547 (_mm512_cmpeq_epu32_mask): Ditto.
12548 (_mm512_mask_cmpeq_epu32_mask): Ditto.
12549 (_mm512_mask_cmpeq_epu64_mask): Ditto.
12550 (_mm512_cmpeq_epu64_mask): Ditto.
12551 (_mm512_cmpgt_epu32_mask): Ditto.
12552 (_mm512_mask_cmpgt_epu32_mask): Ditto.
12553 (_mm512_mask_cmpgt_epu64_mask): Ditto.
12554 (_mm512_cmpgt_epu64_mask): Ditto.
12555 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
12556 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
12557 * config/i386/i386.c (enum ix86_builtins): Add
12558 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
12559 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
12560 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
12561 (bdesc_args): Add __builtin_ia32_si512_256si,
12562 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
12563 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
12564 __builtin_ia32_pd512_pd.
12565 (ix86_expand_args_builtin): Handle new FTYPEs.
12566 * config/i386/sse.md (castmode): Add 512-bit modes.
12567 (AVX512MODE2P): New.
12568 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
12569 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
12571 2014-08-15 Richard Biener <rguenther@suse.de>
12573 * fold-const.c (tree_swap_operands_p): Put all constants
12574 last, also strip sign-changing NOPs when considering further
12575 canonicalization. Canonicalize also when optimizing for size.
12577 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12579 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
12580 one_match > zero_match case to just before simple_sequence.
12582 2014-08-15 Richard Biener <rguenther@suse.de>
12584 * data-streamer.h (streamer_string_index, string_for_index):
12586 * data-streamer-out.c (streamer_string_index): Make static.
12587 * data-streamer-in.c (string_for_index): Likewise.
12588 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
12589 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
12591 2014-08-15 Richard Biener <rguenther@suse.de>
12593 PR tree-optimization/62031
12594 * tree-data-ref.c (dr_analyze_indices): Do not set
12595 DR_UNCONSTRAINED_BASE.
12596 (dr_may_alias_p): All indirect accesses have to go the
12597 formerly DR_UNCONSTRAINED_BASE path.
12598 * tree-data-ref.h (struct indices): Remove
12599 unconstrained_base member.
12600 (DR_UNCONSTRAINED_BASE): Remove.
12602 2014-08-15 Jakub Jelinek <jakub@redhat.com>
12604 PR middle-end/62092
12605 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
12606 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
12607 in OMP_CLAUSE_MAP in some outer target region.
12609 2014-08-15 Bin Cheng <bin.cheng@arm.com>
12611 * tree-ssa-loop-ivopts.c (ivopts_data): New field
12612 name_expansion_cache.
12613 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
12614 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
12615 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
12616 (difference_cannot_overflow_p): New parameter. Use affine
12617 expansion for equality check.
12618 (iv_elimination_compare_lt): Pass new argument.
12620 2014-08-14 DJ Delorie <dj@redhat.com>
12622 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
12623 variables to the accumulator.
12625 * config/rl78/predicates.md (rl78_near_mem_operand): New.
12626 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
12627 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
12628 with far-far moves.
12630 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
12631 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
12632 (umulqihi3_virt): Likewise.
12633 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
12634 (umulqihi3_real): Likewise.
12636 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
12638 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
12640 PR tree-optimization/62091
12641 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
12642 function_entry_reached.
12643 (walk_aliased_vdefs): Clear it here.
12644 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
12646 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
12648 * ipa-utils.h (compare_virtual_tables): Declare.
12649 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
12651 2014-08-14 Marek Polacek <polacek@redhat.com>
12654 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
12655 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
12657 2014-08-14 Tom de Vries <tom@codesourcery.com>
12659 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
12661 2014-08-14 Tom de Vries <tom@codesourcery.com>
12663 PR rtl-optimization/62004
12664 PR rtl-optimization/62030
12665 * ifcvt.c (rtx_interchangeable_p): New function.
12666 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
12667 * emit-rtl.h (mem_attrs_eq_p): Declare.
12669 2014-08-14 Roman Gareev <gareevroman@gmail.com>
12671 * graphite-scop-detection.c:
12672 Add inclusion of cp-tree.h.
12673 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
12674 in case they are pointers to object types
12676 2014-08-14 Richard Biener <rguenther@suse.de>
12678 * BASE-VER: Change to 5.0.0
12680 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
12681 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12682 Anna Tikhonova <anna.tikhonova@intel.com>
12683 Ilya Tocar <ilya.tocar@intel.com>
12684 Andrey Turetskiy <andrey.turetskiy@intel.com>
12685 Ilya Verbin <ilya.verbin@intel.com>
12686 Kirill Yukhin <kirill.yukhin@intel.com>
12687 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12689 * config/i386/sse.md (define_mode_attr avx512): New.
12690 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
12692 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
12693 (define_mode_attr ssse3_avx2): Ditto.
12694 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
12695 (define_mode_attr avx2_avx512bw): New.
12696 (define_mode_attr ssedoublemodelower): New.
12697 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
12698 V32HI, V64QI modes.
12699 (define_mode_attr ssebytemode): Allow V8DI modes.
12700 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
12701 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
12702 (define_mode_attr ssePSmode2): New.
12703 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
12704 V16HI, V32HI modes.
12705 (define_mode_attr dbpsadbwmode): New.
12706 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
12707 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
12708 (vi8_sse4_1_avx2_avx512): New.
12709 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
12711 (define_mode_attr blendbits): Move before its immediate use.
12713 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
12714 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12715 Anna Tikhonova <anna.tikhonova@intel.com>
12716 Ilya Tocar <ilya.tocar@intel.com>
12717 Andrey Turetskiy <andrey.turetskiy@intel.com>
12718 Ilya Verbin <ilya.verbin@intel.com>
12719 Kirill Yukhin <kirill.yukhin@intel.com>
12720 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12722 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
12723 * config/i386/subst.md
12724 (define_mode_iterator SUBST_V): Update.
12725 (define_mode_iterator SUBST_A): Ditto.
12726 (define_subst_attr "mask_operand7"): New.
12727 (define_subst_attr "mask_operand10"): New.
12728 (define_subst_attr "mask_operand_arg34") : New.
12729 (define_subst_attr "mask_expand_op3"): New.
12730 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
12731 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
12732 (define_subst_attr "mask_avx512vl_condition"): New.
12733 (define_subst_attr "round_mask_operand4"): Ditto.
12734 (define_subst_attr "round_mask_scalar_op3"): Delete.
12735 (define_subst_attr "round_mask_op4"): New.
12736 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
12738 (define_subst_attr "round_modev8sf_condition"): New.
12739 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
12741 (define_subst_attr "round_saeonly_mask_operand4"): New.
12742 (define_subst_attr "round_saeonly_mask_op4"): New.
12743 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
12744 V8DImode, V16SImode.
12745 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
12746 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
12747 (define_subst_attr "mask_expand4_args"): New.
12748 (define_subst "mask_expand4"): New.
12750 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
12751 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12752 Anna Tikhonova <anna.tikhonova@intel.com>
12753 Ilya Tocar <ilya.tocar@intel.com>
12754 Andrey Turetskiy <andrey.turetskiy@intel.com>
12755 Ilya Verbin <ilya.verbin@intel.com>
12756 Kirill Yukhin <kirill.yukhin@intel.com>
12757 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12759 * config/i386/i386.md
12760 (define_attr "isa"): Add avx512bw,noavx512bw.
12761 (define_attr "enabled"): Ditto.
12762 (define_split): Add 32/64-bit mask logic.
12763 (define_insn "*k<logic>qi"): New.
12764 (define_insn "*k<logic>hi"): New.
12765 (define_insn "*anddi_1"): Add mask version.
12766 (define_insn "*andsi_1"): Ditto.
12767 (define_insn "*<code><mode>_1"): Ditto.
12768 (define_insn "*<code>hi_1"): Ditto.
12769 (define_insn "kxnor<mode>"): New.
12770 (define_insn "kunpcksi"): New.
12771 (define_insn "kunpckdi"): New.
12772 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
12773 (define_insn "*one_cmplhi2_1"): Ditto.
12775 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
12776 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12777 Anna Tikhonova <anna.tikhonova@intel.com>
12778 Ilya Tocar <ilya.tocar@intel.com>
12779 Andrey Turetskiy <andrey.turetskiy@intel.com>
12780 Ilya Verbin <ilya.verbin@intel.com>
12781 Kirill Yukhin <kirill.yukhin@intel.com>
12782 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12784 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
12787 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
12788 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12789 Anna Tikhonova <anna.tikhonova@intel.com>
12790 Ilya Tocar <ilya.tocar@intel.com>
12791 Andrey Turetskiy <andrey.turetskiy@intel.com>
12792 Ilya Verbin <ilya.verbin@intel.com>
12793 Kirill Yukhin <kirill.yukhin@intel.com>
12794 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12796 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
12798 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
12799 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
12800 xmm/ymm16+ when availble.
12801 * config/i386/i386.h
12802 (HARD_REGNO_NREGS): Add mask regs.
12803 (VALID_AVX512F_REG_MODE): Ditto.
12804 (VALID_AVX512F_REG_MODE) : Define.
12805 (VALID_MASK_AVX512BW_MODE): Ditto.
12806 (reg_class) (MASK_REG_P(X)): Define.
12807 * config/i386/i386.md: Do not split long moves with mask register,
12808 use kmovb if avx512bw is availible.
12809 (movdi_internal): Handle mask registers.
12811 2014-08-14 Richard Biener <rguenther@suse.de>
12813 PR tree-optimization/62081
12814 * tree-ssa-loop.c (pass_fix_loops): New pass.
12815 (pass_tree_loop::gate): Do not fixup loops here.
12816 * tree-pass.h (make_pass_fix_loops): Declare.
12817 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
12819 2014-08-14 Richard Biener <rguenther@suse.de>
12821 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
12822 (type_hash_canon): ... this and avoid 2nd lookup for the add.
12824 2014-08-14 Richard Biener <rguenther@suse.de>
12826 PR tree-optimization/62090
12827 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
12828 (fold_builtin_2): Do not fold sprintf.
12829 (fold_builtin_3): Likewise.
12830 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
12831 moved from builtins.c.
12832 (gimple_fold_builtin): Fold sprintf.
12834 2014-08-14 Richard Biener <rguenther@suse.de>
12836 PR rtl-optimization/62079
12837 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
12840 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
12842 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
12843 current_function_decl.
12845 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
12847 * cgraph.c (cgraph_node::function_symbol): Fix wrong
12848 cgraph_function_node to cgraph_node::function_symbol
12851 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
12853 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
12854 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
12856 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
12858 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
12861 2014-08-13 Roman Gareev <gareevroman@gmail.com>
12863 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
12866 2014-08-12 Jakub Jelinek <jakub@redhat.com>
12869 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
12870 any registers that are used in mem_insn.
12872 2014-08-12 Steve Ellcey <sellcey@mips.com>
12874 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
12876 2014-08-12 Steve Ellcey <sellcey@mips.com>
12878 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
12879 (MULTILIB_DIRNAMES): Ditto.
12880 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
12881 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
12882 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
12883 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
12884 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
12885 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
12887 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12890 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
12891 of __ARM_SIZEOF_WCHAR_T.
12893 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12896 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
12897 Remove unnecessary attributes.
12899 2014-08-12 Yury Gribov <y.gribov@samsung.com>
12901 * internal-fn.c (init_internal_fns): Fix off-by-one.
12903 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
12904 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12905 Anna Tikhonova <anna.tikhonova@intel.com>
12906 Ilya Tocar <ilya.tocar@intel.com>
12907 Andrey Turetskiy <andrey.turetskiy@intel.com>
12908 Ilya Verbin <ilya.verbin@intel.com>
12909 Kirill Yukhin <kirill.yukhin@intel.com>
12910 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12912 * config/i386/i386.c (standard_sse_constant_opcode): Use
12913 vpxord/vpternlog if avx512 is availible.
12915 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
12917 PR middle-end/62103
12918 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
12919 bitfields, that is when size doesn't match the size of type or the
12920 size of the constructor.
12922 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12924 * config/rs6000/constraints.md (wh constraint): New constraint,
12925 for FP registers if direct move is available.
12926 (wi constraint): New constraint, for VSX/FP registers that can
12927 handle 64-bit integers.
12928 (wj constraint): New constraint for VSX/FP registers that can
12929 handle 64-bit integers for direct moves.
12930 (wk constraint): New constraint for VSX/FP registers that can
12931 handle 64-bit doubles for direct moves.
12932 (wy constraint): Make documentation match implementation.
12934 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
12935 scalar_in_vmx_p field to simplify tests of whether SFmode or
12936 DFmode can go in the Altivec registers.
12937 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
12938 (rs6000_setup_reg_addr_masks): Likewise.
12939 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
12940 field, and wh/wi/wj/wk constraints.
12941 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
12942 the wh/wi/wj/wk constraints.
12943 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
12944 upper registers, prefer VSX registers unless the operation is a
12945 memory operation with REG+OFFSET addressing.
12947 * config/rs6000/vsx.md (VSr mode attribute): Add support for
12948 DImode. Change SFmode to use ww constraint instead of d to allow
12949 SF registers in the upper registers.
12952 (VSr5): Fix thinko in comment.
12953 (VSa): New mode attribute that is an alternative to wa, that
12954 returns the VSX register class that a mode can go in, but may not
12955 be the preferred register class.
12956 (VS_64dm): New mode attribute for appropriate register classes for
12957 referencing 64-bit elements of vectors for direct moves and normal
12959 (VS_64reg): Likewise.
12960 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
12961 register allocator to only registers the data type can handle.
12962 (vsx_le_perm_load_<mode>): Likewise.
12963 (vsx_le_perm_store_<mode>): Likewise.
12964 (vsx_xxpermdi2_le_<mode>): Likewise.
12965 (vsx_xxpermdi4_le_<mode>): Likewise.
12966 (vsx_lxvd2x2_le_<mode>): Likewise.
12967 (vsx_lxvd2x4_le_<mode>): Likewise.
12968 (vsx_stxvd2x2_le_<mode>): Likewise.
12969 (vsx_add<mode>3): Likewise.
12970 (vsx_sub<mode>3): Likewise.
12971 (vsx_mul<mode>3): Likewise.
12972 (vsx_div<mode>3): Likewise.
12973 (vsx_tdiv<mode>3_internal): Likewise.
12974 (vsx_fre<mode>2): Likewise.
12975 (vsx_neg<mode>2): Likewise.
12976 (vsx_abs<mode>2): Likewise.
12977 (vsx_nabs<mode>2): Likewise.
12978 (vsx_smax<mode>3): Likewise.
12979 (vsx_smin<mode>3): Likewise.
12980 (vsx_sqrt<mode>2): Likewise.
12981 (vsx_rsqrte<mode>2): Likewise.
12982 (vsx_tsqrt<mode>2_internal): Likewise.
12983 (vsx_fms<mode>4): Likewise.
12984 (vsx_nfma<mode>4): Likewise.
12985 (vsx_eq<mode>): Likewise.
12986 (vsx_gt<mode>): Likewise.
12987 (vsx_ge<mode>): Likewise.
12988 (vsx_eq<mode>_p): Likewise.
12989 (vsx_gt<mode>_p): Likewise.
12990 (vsx_ge<mode>_p): Likewise.
12991 (vsx_xxsel<mode>): Likewise.
12992 (vsx_xxsel<mode>_uns): Likewise.
12993 (vsx_copysign<mode>3): Likewise.
12994 (vsx_float<VSi><mode>2): Likewise.
12995 (vsx_floatuns<VSi><mode>2): Likewise.
12996 (vsx_fix_trunc<mode><VSi>2): Likewise.
12997 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
12998 (vsx_x<VSv>r<VSs>i): Likewise.
12999 (vsx_x<VSv>r<VSs>ic): Likewise.
13000 (vsx_btrunc<mode>2): Likewise.
13001 (vsx_b2trunc<mode>2): Likewise.
13002 (vsx_floor<mode>2): Likewise.
13003 (vsx_ceil<mode>2): Likewise.
13004 (vsx_<VS_spdp_insn>): Likewise.
13005 (vsx_xscvspdp): Likewise.
13006 (vsx_xvcvspuxds): Likewise.
13007 (vsx_float_fix_<mode>2): Likewise.
13008 (vsx_set_<mode>): Likewise.
13009 (vsx_extract_<mode>_internal1): Likewise.
13010 (vsx_extract_<mode>_internal2): Likewise.
13011 (vsx_extract_<mode>_load): Likewise.
13012 (vsx_extract_<mode>_store): Likewise.
13013 (vsx_splat_<mode>): Likewise.
13014 (vsx_xxspltw_<mode>): Likewise.
13015 (vsx_xxspltw_<mode>_direct): Likewise.
13016 (vsx_xxmrghw_<mode>): Likewise.
13017 (vsx_xxmrglw_<mode>): Likewise.
13018 (vsx_xxsldwi_<mode>): Likewise.
13019 (vsx_xscvdpspn): Tighten constraints to only use register classes
13021 (vsx_xscvspdpn): Likewise.
13022 (vsx_xscvdpspn_scalar): Likewise.
13024 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
13025 wj, and wk constraints.
13026 (GPR_REG_CLASS_P): New helper macro for register classes targeting
13027 general purpose registers.
13029 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
13031 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
13032 DImode instead of wm. Use wk constraint for direct move of DFmode
13034 (extendsidi2_lfiwax): Likewise.
13035 (lfiwax): Likewise.
13036 (lfiwzx): Likewise.
13037 (movdi_internal64): Likewise.
13039 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
13040 wk constraints. Make the wy constraint documentation match them
13043 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
13045 Replacement of isl_int by isl_val
13046 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
13047 (compute_bounds_for_param): use isl_val instead of isl_int
13048 (compute_bounds_for_loop): likewise
13049 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
13050 (build_linearized_memory_access): use isl_val instead of isl_int
13051 (pdr_stride_in_loop): likewise
13052 * graphite-optimize-isl.c:
13053 (getPrevectorMap): use isl_val instead of isl_int
13055 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
13056 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
13057 (extern the_isl_ctx): declare
13058 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
13059 (extract_affine_gmp): likewise
13061 (build_loop_iteration_domains): likewise
13062 (add_param_constraints): likewise
13064 2014-08-11 Richard Biener <rguenther@suse.de>
13066 PR tree-optimization/62075
13067 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
13068 handle uses in patterns.
13070 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13071 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13072 Anna Tikhonova <anna.tikhonova@intel.com>
13073 Ilya Tocar <ilya.tocar@intel.com>
13074 Andrey Turetskiy <andrey.turetskiy@intel.com>
13075 Ilya Verbin <ilya.verbin@intel.com>
13076 Kirill Yukhin <kirill.yukhin@intel.com>
13077 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13079 * common/config/i386/i386-common.c
13080 (OPTION_MASK_ISA_AVX512VL_SET): Define.
13081 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
13082 (ix86_handle_option): Handle OPT_mavx512vl.
13083 * config/i386/cpuid.h (bit_AVX512VL): Define.
13084 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
13085 set -mavx512vl accordingly.
13086 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13087 OPTION_MASK_ISA_AVX512VL.
13088 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
13089 (ix86_option_override_internal): Define PTA_AVX512VL, handle
13090 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
13091 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
13092 * config/i386/i386.h (TARGET_AVX512VL): Define.
13093 (TARGET_AVX512VL_P(x)): Ditto.
13094 * config/i386/i386.opt: Add mavx512vl.
13096 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
13098 PR tree-optimization/62073
13099 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
13102 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13103 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13104 Anna Tikhonova <anna.tikhonova@intel.com>
13105 Ilya Tocar <ilya.tocar@intel.com>
13106 Andrey Turetskiy <andrey.turetskiy@intel.com>
13107 Ilya Verbin <ilya.verbin@intel.com>
13108 Kirill Yukhin <kirill.yukhin@intel.com>
13109 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13111 * common/config/i386/i386-common.c
13112 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
13113 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
13114 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
13115 (ix86_handle_option): Handle OPT_mavx512bw.
13116 * config/i386/cpuid.h (bit_AVX512BW): Define.
13117 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
13118 set -mavx512bw accordingly.
13119 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13120 OPTION_MASK_ISA_AVX512BW.
13121 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
13122 (ix86_option_override_internal): Define PTA_AVX512BW, handle
13123 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
13124 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
13125 * config/i386/i386.h (TARGET_AVX512BW): Define.
13126 (TARGET_AVX512BW_P(x)): Ditto.
13127 * config/i386/i386.opt: Add mavx512bw.
13129 2014-08-11 Richard Biener <rguenther@suse.de>
13131 PR tree-optimization/62070
13132 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
13133 Remove SSA checking.
13135 2014-08-11 Yury Gribov <y.gribov@samsung.com>
13137 * asan.c (asan_check_flags): New enum.
13138 (build_check_stmt_with_calls): Removed function.
13139 (build_check_stmt): Split inlining logic to
13140 asan_expand_check_ifn.
13141 (instrument_derefs): Rename parameter.
13142 (instrument_mem_region_access): Rename parameter.
13143 (instrument_strlen_call): Likewise.
13144 (asan_expand_check_ifn): New function.
13145 (asan_instrument): Remove old code.
13146 (pass_sanopt::execute): Change handling of
13147 asan-instrumentation-with-call-threshold.
13148 (asan_clear_shadow): Fix formatting.
13149 (asan_function_start): Likewise.
13150 (asan_emit_stack_protection): Likewise.
13151 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
13152 Update description.
13153 * internal-fn.c (expand_ASAN_CHECK): New function.
13154 * internal-fn.def (ASAN_CHECK): New internal function.
13155 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
13156 Update description.
13157 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
13158 * tree.c: Small comment fix.
13160 2014-08-11 Yury Gribov <y.gribov@samsung.com>
13162 * gimple.c (gimple_call_fnspec): Support internal functions.
13163 (gimple_call_return_flags): Use const.
13164 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
13165 * internal-fn.def: Add fnspec information.
13166 * internal-fn.h (internal_fn_fnspec): New function.
13167 (init_internal_fns): Declare new function.
13168 * internal-fn.c (internal_fn_fnspec_array): New global variable.
13169 (init_internal_fns): New function.
13170 * tree-core.h: Update macro call.
13171 * tree.c (build_common_builtin_nodes): Initialize internal fns.
13173 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
13175 * lto-streamer.h (struct output_block::symbol): Change from
13176 struct symtab_node to plain symtab_node.
13177 (referenced_from_this_partition_p): Change first parameter
13178 from struct symtab_node to plain symtab_node.
13180 2014-08-10 Marek Polacek <polacek@redhat.com>
13183 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
13185 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
13187 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
13188 DECL correctly; do not give up on types in static storage.
13190 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
13192 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
13194 2014-08-09 Roman Gareev <gareevroman@gmail.com>
13196 * graphite-isl-ast-to-gimple.c:
13197 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
13199 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
13201 2014-08-08 Guozhi Wei <carrot@google.com>
13203 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
13205 2014-08-08 Cary Coutant <ccoutant@google.com>
13207 * dwarf2out.c (get_skeleton_type_unit): Remove.
13208 (output_skeleton_debug_sections): Remove skeleton type units.
13209 (output_comdat_type_unit): Likewise.
13210 (dwarf2out_finish): Likewise.
13212 2014-08-07 Yi Yang <ahyangyi@google.com>
13214 * predict.c (expr_expected_value_1): Remove the redundant assignment.
13216 2014-08-08 Richard Biener <rguenther@suse.de>
13218 * lto-streamer.h (struct lto_input_block): Make it a class
13219 with a constructor.
13220 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
13221 (struct lto_function_header, struct lto_simple_header,
13222 struct lto_simple_header_with_strings,
13223 struct lto_decl_header, struct lto_function_header): Make
13224 a simple inheritance hieararchy. Remove unused fields.
13225 (struct lto_asm_header): Remove.
13226 * lto-streamer-out.c (produce_asm): Adjust.
13227 (lto_output_toplevel_asms): Likewise.
13228 (produce_asm_for_decls): Likewise.
13229 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
13230 * data-streamer-in.c (string_for_index): Likewise.
13231 * ipa-inline-analysis.c (inline_read_section): Likewise.
13232 * ipa-prop.c (ipa_prop_read_section): Likewise.
13233 (read_replacements_section): Likewise.
13234 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
13235 * lto-section-in.c (lto_create_simple_input_block): Likewise.
13236 (lto_destroy_simple_input_block): Likewise.
13237 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
13238 (lto_input_toplevel_asms): Likewise.
13240 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
13241 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13242 Anna Tikhonova <anna.tikhonova@intel.com>
13243 Ilya Tocar <ilya.tocar@intel.com>
13244 Andrey Turetskiy <andrey.turetskiy@intel.com>
13245 Ilya Verbin <ilya.verbin@intel.com>
13246 Kirill Yukhin <kirill.yukhin@intel.com>
13247 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13249 * common/config/i386/i386-common.c
13250 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
13251 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
13252 (ix86_handle_option): Handle OPT_mavx512dq.
13253 * config/i386/cpuid.h (bit_AVX512DQ): Define.
13254 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
13255 set -mavx512dq accordingly.
13256 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13257 OPTION_MASK_ISA_AVX512DQ.
13258 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
13259 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
13260 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
13261 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
13262 * config/i386/i386.h (TARGET_AVX512DQ): Define.
13263 (TARGET_AVX512DQ_P(x)): Ditto.
13264 * config/i386/i386.opt: Add mavx512dq.
13266 2014-08-08 Richard Biener <rguenther@suse.de>
13268 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
13269 target_percent, target_percent_s): Export.
13270 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
13271 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
13272 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
13273 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
13274 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
13275 Move to gimple-fold.c.
13276 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
13278 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
13279 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
13280 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
13281 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
13282 (rewrite_call_expr_array): Remove.
13283 (fold_builtin_sprintf_chk): Likewise.
13284 (fold_builtin_snprintf_chk): Likewise.
13285 (fold_builtin_varargs): Remove handling of sprintf_chk,
13286 vsprintf_chk, snprintf_chk and vsnprintf_chk.
13287 (gimple_fold_builtin_sprintf_chk): Remove.
13288 (gimple_fold_builtin_snprintf_chk): Likewise.
13289 (gimple_fold_builtin_varargs): Likewise.
13290 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
13291 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
13292 * gimple.c (gimple_seq_add_seq_without_update): New function.
13293 * gimple.h (gimple_seq_add_seq_without_update): Declare.
13294 * gimple-fold.c: Include output.h.
13295 (gsi_replace_with_seq_vops): New function, split out from ...
13296 (gimplify_and_update_call_from_tree): ... here.
13297 (replace_call_with_value): New function.
13298 (replace_call_with_call_and_fold): Likewise.
13299 (var_decl_component_p): Moved from builtins.c.
13300 (gimple_fold_builtin_memory_op): Moved from builtins.c
13301 fold_builtin_memory_op and rewritten to GIMPLE.
13302 (gimple_fold_builtin_memset): Likewise.
13303 (gimple_fold_builtin_strcpy): Likewise.
13304 (gimple_fold_builtin_strncpy): Likewise.
13305 (gimple_fold_builtin_strcat): Likewise.
13306 (gimple_fold_builtin_fputs): Likewise.
13307 (gimple_fold_builtin_memory_chk): Likewise.
13308 (gimple_fold_builtin_stxcpy_chk): Likewise.
13309 (gimple_fold_builtin_stxncpy_chk): Likewise.
13310 (gimple_fold_builtin_snprintf_chk): Likewise.
13311 (gimple_fold_builtin_sprintf_chk): Likewise.
13312 (gimple_fold_builtin_strlen): New function.
13313 (gimple_fold_builtin_with_strlen): New function split out from
13314 gimple_fold_builtin.
13315 (gimple_fold_builtin): Change signature and handle
13316 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
13317 here. Call gimple_fold_builtin_with_strlen.
13318 (gimple_fold_call): Adjust.
13320 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
13322 * calls.c (precompute_arguments): Check
13323 promoted_for_signed_and_unsigned_p and set the promoted mode.
13324 (promoted_for_signed_and_unsigned_p): New function.
13325 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
13326 and set the promoted mode.
13327 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
13328 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
13329 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
13332 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
13334 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
13335 instead of SUBREG_PROMOTED_UNSIGNED_SET.
13336 (expand_call): Likewise.
13337 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
13338 to get promoted mode.
13339 * combine.c (record_promoted_value): Skip > 0 comparison with
13340 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
13341 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
13342 of SUBREG_PROMOTED_UNSIGNED_P.
13343 (convert_modes): Likewise.
13344 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
13345 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
13346 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
13347 SUBREG_PROMOTED_UNSIGNED_SET.
13348 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
13349 instead of SUBREG_PROMOTED_UNSIGNED_SET.
13350 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
13351 SUBREG_PROMOTED_SET.
13352 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
13353 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
13354 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
13355 of SUBREG_PROMOTED_UNSIGNED_P.
13356 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
13357 (SUBREG_PROMOTED_SET): New define.
13358 (SUBREG_PROMOTED_GET): Likewise.
13359 (SUBREG_PROMOTED_SIGN): Likewise.
13360 (SUBREG_PROMOTED_SIGNED_P): Likewise.
13361 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
13362 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
13363 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
13364 instead of SUBREG_PROMOTED_UNSIGNED_GET.
13365 (nonzero_bits1): Skip > 0 comparison with the results as
13366 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
13367 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
13368 of !SUBREG_PROMOTED_UNSIGNED_P.
13369 * simplify-rtx.c (simplify_unary_operation_1): Use new
13370 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
13371 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
13372 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
13373 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
13375 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
13377 * ipa-devirt.c: Include gimple-pretty-print.h
13378 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
13380 (decl_maybe_in_construction_p): Fix conditional on cdtor check
13381 (get_polymorphic_call_info): Fix return value
13382 (type_change_info): New sturcture based on ipa-prop
13384 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
13385 based on ipa-prop variant.
13386 (extr_type_from_vtbl_ptr_store): New function
13387 based on ipa-prop variant.
13388 (record_known_type): New function.
13389 (check_stmt_for_type_change): New function.
13390 (get_dynamic_type): New function.
13391 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
13392 * tree-ssa-pre.c: ipa-utils.h
13393 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
13394 machinery; sanity check with ipa-prop devirtualization.
13395 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
13398 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
13400 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
13401 * alias.c, cfgexpand.c, cgraphbuild.c,
13402 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
13403 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
13404 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
13405 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
13406 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
13407 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
13408 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
13409 dse.c, except.c, gengtype.c, gimple-expr.c,
13410 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
13411 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
13412 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
13413 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
13414 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
13415 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
13417 * pointer-set.c: Remove file.
13418 * pointer-set.h: Remove file.
13420 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13422 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
13423 * config/arm/types.md (f_sels, f_seld): Delete.
13425 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13427 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
13428 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
13429 (aarch64_movdi_<mode>high): Likewise.
13430 (aarch64_mov<mode>high_di): Likewise.
13431 (aarch64_movdi_<mode>low): Likewise.
13432 (aarch64_mov<mode>low_di): Likewise.
13433 (aarch64_movtilow_tilow): Likewise.
13434 Add comment explaining usage of fp,simd attributes and of
13435 TARGET_FLOAT and TARGET_SIMD.
13437 2014-08-07 Ian Bolton <ian.bolton@arm.com>
13438 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13440 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
13441 Use MOVN when one of the half-words is 0xffff.
13443 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
13445 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
13447 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
13449 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
13450 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
13451 (rfs_str): String corresponding to RFS_* constants.
13452 (rank_for_schedule_stats_t): New typedef.
13453 (rank_for_schedule_stats): New static variable.
13454 (rfs_result): New static function.
13455 (rank_for_schedule): Track statistics for deciding heuristics.
13456 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
13458 (ready_sort): Use them for debug printouts.
13459 (schedule_block): Init statistics state. Print statistics on
13460 rank_for_schedule decisions.
13462 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
13464 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
13466 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
13468 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
13471 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
13473 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
13474 function to not conflict.
13475 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
13476 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
13477 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
13478 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
13479 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
13482 2014-08-07 Marek Polacek <polacek@redhat.com>
13484 * fold-const.c (fold_binary_loc): Add folding of
13485 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
13487 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
13489 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
13490 instead of type size.
13491 (ASM_FINISH_DECLARE_OBJECT): Likewise.
13493 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
13495 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
13496 (*thumb1_movqi_insn): Likewise.
13497 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
13499 2014-08-07 Tom de Vries <tom@codesourcery.com>
13501 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
13502 (glibc_2_11_or_earlier): Remove effective-target keywords.
13504 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
13506 * config/arm/arm.c (bdesc_2arg): Fix typo.
13507 (arm_atomic_assign_expand_fenv): Remove The default implementation.
13509 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
13511 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
13513 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
13516 * haifa-sched.c (advance_one_cycle): Fix dump.
13517 (schedule_block): Don't advance cycle if we are already at the
13518 beginning of the cycle.
13520 2014-08-06 Martin Jambor <mjambor@suse.cz>
13523 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
13525 2014-08-06 Richard Biener <rguenther@suse.de>
13528 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
13530 (lto_input_tree): Pop SCCs here.
13532 2014-08-06 Richard Biener <rguenther@suse.de>
13534 PR tree-optimization/61320
13535 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
13536 handle misaligned loads.
13538 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
13540 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
13541 (aarch64_expand_vec_perm_const): Check for dup before zip.
13543 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13545 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
13546 CONST_INT_P instead of GET_CODE and compare.
13547 (aarch64_select_cc_mode): Likewise.
13548 (aarch64_print_operand): Likewise.
13549 (aarch64_rtx_costs): Likewise.
13550 (aarch64_simd_valid_immediate): Likewise.
13551 (aarch64_simd_check_vect_par_cnst_half): Likewise.
13552 (aarch64_simd_emit_pair_result_insn): Likewise.
13554 2014-08-05 David Malcolm <dmalcolm@redhat.com>
13556 * gdbhooks.py (find_gcc_source_dir): New helper function.
13557 (class PassNames): New class, locating and parsing passes.def.
13558 (class BreakOnPass): New command "break-on-pass".
13560 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
13562 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
13565 2014-08-05 Richard Biener <rguenther@suse.de>
13567 PR rtl-optimization/61672
13568 * emit-rtl.h (mem_attrs_eq_p): Declare.
13569 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
13570 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
13571 * cfgcleanup.c (merge_memattrs): Likewise.
13572 Include emit-rtl.h.
13574 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13576 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
13577 rather than singleton vectors.
13578 (vqdmlsls_lane_s32): Likewise.
13580 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13582 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
13583 Use VSDQ_HSI mode iterator.
13584 (aarch64_sqrdmulh_laneq<mode>): Likewise.
13585 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
13586 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
13587 Use BUILTIN_VDQHS macro.
13588 (sqrdmulh_laneq): Likewise.
13589 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
13590 (vqdmlals_laneq_s32): Likewise.
13591 (vqdmlslh_laneq_s16): Likewise.
13592 (vqdmlsls_laneq_s32): Likewise.
13593 (vqdmulhh_laneq_s16): Likewise.
13594 (vqdmulhs_laneq_s32): Likewise.
13595 (vqrdmulhh_laneq_s16): Likewise.
13596 (vqrdmulhs_laneq_s32): Likewise.
13598 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13600 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
13601 (vmuld_laneq_f64): Likewise.
13602 (vmuls_laneq_f32): Likewise.
13603 (vmul_n_f64): Likewise.
13604 (vmuld_lane_f64): Reimplement in C.
13605 (vmuls_lane_f32): Likewise.
13607 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13609 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
13611 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
13613 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13615 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
13616 (rbitsi2): Likewise.
13617 (*arm_rev): Set predicable and predicable_short_it attributes.
13619 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13621 * convert.c (convert_to_integer): Guard transformation to lrint by
13624 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
13626 * config/aarch64/aarch64-builtins.c
13627 (aarch64_simd_builtin_type_mode): Delete.
13628 (v8qi_UP): Remap to V8QImode.
13629 (v4hi_UP): Remap to V4HImode.
13630 (v2si_UP): Remap to V2SImode.
13631 (v2sf_UP): Remap to V2SFmode.
13632 (v1df_UP): Remap to V1DFmode.
13633 (di_UP): Remap to DImode.
13634 (df_UP): Remap to DFmode.
13635 (v16qi_UP):V16QImode.
13636 (v8hi_UP): Remap to V8HImode.
13637 (v4si_UP): Remap to V4SImode.
13638 (v4sf_UP): Remap to V4SFmode.
13639 (v2di_UP): Remap to V2DImode.
13640 (v2df_UP): Remap to V2DFmode.
13641 (ti_UP): Remap to TImode.
13642 (ei_UP): Remap to EImode.
13643 (oi_UP): Remap to OImode.
13644 (ci_UP): Map to CImode.
13645 (xi_UP): Remap to XImode.
13646 (si_UP): Remap to SImode.
13647 (sf_UP): Remap to SFmode.
13648 (hi_UP): Remap to HImode.
13649 (qi_UP): Remap to QImode.
13650 (aarch64_simd_builtin_datum): Make mode a machine_mode.
13651 (VAR1): Build builtin name.
13652 (aarch64_init_simd_builtins): Remove dead code.
13654 2014-08-05 Roman Gareev <gareevroman@gmail.com>
13656 * graphite-isl-ast-to-gimple.c:
13657 (set_options): New function.
13658 (scop_to_isl_ast): Add calling of set_options.
13660 2014-08-05 Jakub Jelinek <jakub@redhat.com>
13662 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
13663 (analyze_iv_to_split_insn): Don't initialize them.
13664 (get_ivts_expr): Removed.
13665 (allocate_basic_variable, insert_base_initialization): Use
13666 SET_SRC instead of *get_ivts_expr.
13667 (split_iv): Use &SET_SRC instead of get_ivts_expr.
13669 2014-08-05 Roman Gareev <gareevroman@gmail.com>
13671 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
13672 (translate_isl_ast_for_loop): Add checking of the
13673 flag_loop_parallelize_all.
13674 (ast_build_before_for): New function.
13675 (scop_to_isl_ast): Add checking of the
13676 flag_loop_parallelize_all.
13677 * graphite-dependences.c: Move the defenition of the
13678 scop_get_dependences from graphite-optimize-isl.c to this file.
13679 (apply_schedule_on_deps): Add checking of the ux's emptiness.
13680 (carries_deps): Add checking of the x's value.
13681 * graphite-optimize-isl.c: Move the defenition of the
13682 scop_get_dependences to graphite-dependences.c.
13683 * graphite-poly.h: Add declarations of scop_get_dependences
13686 2014-08-04 Rohit <rohitarulraj@freescale.com>
13689 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
13691 (alt_reg_names): Likewise.
13692 (rs6000_dwarf_register_span): For SPE high registers, replace
13693 dwarf register numbers with GCC hard register numbers.
13694 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
13695 (rs6000_dbx_register_number): For SPE high registers, return dwarf
13696 register number for the corresponding GCC hard register number.
13697 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
13698 newly added GCC hard register numbers for SPE high registers.
13699 (DWARF_FRAME_REGISTERS): Likewise.
13700 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
13701 (DWARF_FRAME_REGNUM): Likewise.
13702 (FIXED_REGISTERS): Likewise.
13703 (CALL_USED_REGISTERS): Likewise.
13704 (CALL_REALLY_USED_REGISTERS): Likewise.
13705 (REG_ALLOC_ORDER): Likewise.
13706 (enum reg_class): Likewise.
13707 (REG_CLASS_NAMES): Likewise.
13708 (REG_CLASS_CONTENTS): Likewise.
13709 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
13711 2014-08-04 Richard Biener <rguenther@suse.de>
13713 * gimple-fold.h (gimple_fold_builtin): Remove.
13714 * gimple-fold.c (gimple_fold_builtin): Make static.
13715 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
13716 fold_stmt, not gimple_fold_builtin.
13718 2014-08-04 Martin Liska <mliska@suse.cz>
13720 * cgraph.h (csi_end_p): Removed.
13721 (csi_next): Likewise.
13722 (csi_node): Likewise.
13723 (csi_start): Likewise.
13724 (cgraph_node_in_set_p): Likewise.
13725 (cgraph_node_set_size): Likewise.
13726 (vsi_end_p): Likewise.
13727 (vsi_next): Likewise.
13728 (vsi_node): Likewise.
13729 (vsi_start): Likewise.
13730 (varpool_node_set_size): Likewise.
13731 (cgraph_node_set_nonempty_p): Likewise.
13732 (varpool_node_set_nonempty_p): Likewise.
13733 * cgraphunit.c (cgraph_process_new_functions): vec replaces
13735 * ipa-inline-transform.c: Likewise.
13736 * ipa-utils.c (cgraph_node_set_new): Removed.
13737 (cgraph_node_set_add): Likewise.
13738 (cgraph_node_set_remove): Likewise.
13739 (cgraph_node_set_find): Likewise.
13740 (dump_cgraph_node_set): Likewise.
13741 (debug_cgraph_node_set): Likewise.
13742 (free_cgraph_node_set): Likewise.
13743 (varpool_node_set_new): Likewise.
13744 (varpool_node_set_add): Likewise.
13745 (varpool_node_set_remove): Likewise.
13746 (varpool_node_set_find): Likewise.
13747 (dump_varpool_node_set): Likewise.
13748 (free_varpool_node_set): Likewise.
13749 (debug_varpool_node_set): Likewise.
13750 * tree-emutls.c (struct tls_var_data):
13751 (emutls_index): Removed.
13752 (emutls_decl): Likewise.
13753 (gen_emutls_addr): Function implementation uses newly added
13754 hash_map<varpool_node *, tls_var_data>.
13755 (clear_access_vars): Likewise.
13756 (create_emultls_var): Likewise.
13757 (ipa_lower_emutls): Likewise.
13758 (reset_access): New function.
13760 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13762 * config/i386/i386.c (ix86_option_override_internal): Add
13763 PTA_RDRND and PTA_MOVBE for bdver4.
13765 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13766 James Greenhalgh <james.greenhalgh@arm.com>
13768 * doc/md.texi (clrsb): Document.
13769 (clz): Change reference to x into operand 1.
13771 (popcount): Likewise.
13773 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13776 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
13777 move to subtarget in serial version if result is ignored.
13779 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13780 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13782 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
13783 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
13784 (sched_analyze_insn): Update use of try_group_insn to
13785 sched_macro_fuse_insns.
13786 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
13787 arguments that are not conditional jumps.
13789 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
13791 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
13792 family information. Handle BTVER2 cpu with cpuid family value.
13794 2014-08-04 Tom de Vries <tom@codesourcery.com>
13796 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
13797 (glibc_2_11_or_earlier): Document effective-target keywords.
13799 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
13801 * ipa-devirt.c (odr_type_warn_count): Add type.
13802 (possible_polymorphic_call_targets): Set it.
13803 (ipa_devirt): Use it.
13805 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
13807 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
13809 * ipa-devirt.c: Include hash-map.h
13810 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
13811 (clear_speculation): Break out of ...
13812 (get_class_context): ... here; speed up handling obviously useless
13814 (odr_type_warn_count, decl_warn_count): New structures.
13815 (final_warning_record): New structure.
13816 (final_warning_records): New static variable.
13817 (possible_polymorphic_call_targets): Cleanup handling of
13818 speculative info; do not build speculation when user do not care;
13819 record info about warnings when asked for.
13820 (add_decl_warning): New function.
13821 (type_warning_cmp): New function.
13822 (decl_warning_cmp): New function.
13823 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
13824 (gate): Enable pass when warnings are requested.
13825 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
13828 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
13830 * hash-map.h (default_hashmap_traits::mark_key_deleted):
13832 (hash_map::remove): New method.
13833 (hash_map::traverse): New method.
13834 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
13835 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
13836 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
13837 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
13838 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
13839 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
13842 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
13844 * hash-set.h: new File.
13845 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
13846 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
13847 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
13848 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
13849 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
13850 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
13851 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
13852 varpool.c: Use hash_set instead of pointer_set.
13854 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
13856 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
13858 2014-08-01 Jiong Wang <jiong.wang@arm.com>
13860 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
13861 for frame access when strict_p is false.
13863 2014-08-01 Renlin Li <renlin.li@arm.com>
13864 2014-08-01 Jiong Wang <jiong.wang@arm.com>
13866 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
13867 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
13868 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
13870 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
13872 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
13873 aarch64_mem_pair_offset.
13875 2014-08-01 Jiong Wang <jiong.wang@arm.com>
13877 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
13879 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
13880 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
13882 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
13884 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
13886 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
13888 PR regression/61510
13889 * cgraphunit.c (analyze_functions): Use get_create rather than get
13890 for decls which are clones of abstract functions.
13892 2014-08-01 Martin Liska <mliska@suse.cz>
13894 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
13895 * ipa-prop.h (count_formal_params): Global function created from static.
13896 * ipa-prop.c (count_formal_params): Likewise.
13897 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
13898 profiles for semantically equivalent functions.
13899 * passes.c (do_per_function): If we load body of a function
13900 during WPA, this condition should behave same.
13901 * varpool.c (ctor_for_folding): More tolerant assert for variable
13902 aliases created during WPA.
13904 2014-08-01 Martin Liska <mliska@suse.cz>
13906 * doc/invoke.texi (Options That Control Optimization): Documentation
13907 for -foptimize-strlen introduced. Optimization levels default options
13910 2014-08-01 Jakub Jelinek <jakub@redhat.com>
13912 * opts.c (common_handle_option): Handle -fsanitize=alignment.
13913 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
13914 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
13916 * stor-layout.h (min_align_of_type): New prototype.
13917 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
13918 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
13920 * ubsan.c: Include builtins.h.
13921 (ubsan_expand_bounds_ifn): Change return type to bool,
13922 always return true.
13923 (ubsan_expand_null_ifn): Change return type to bool, change
13924 argument to gimple_stmt_iterator *. Handle both null and alignment
13925 sanitization, take type from ckind argument's type rather than
13927 (instrument_member_call): Removed.
13928 (instrument_mem_ref): Remove t argument, add mem and base arguments.
13929 Handle both null and alignment sanitization, don't say whole
13930 struct access is member access. Build 3 argument IFN_UBSAN_NULL
13931 call instead of 2 argument.
13932 (instrument_null): Adjust instrument_mem_ref caller. Don't
13933 instrument calls here.
13934 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
13935 like SANITIZE_NULL.
13936 * stor-layout.c (min_align_of_type): New function.
13937 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
13938 Or it into SANITIZE_UNDEFINED.
13939 * doc/invoke.texi (-fsanitize=alignment): Document.
13941 2014-07-31 Andi Kleen <ak@linux.intel.com>
13943 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
13945 2014-07-31 Andi Kleen <ak@linux.intel.com>
13947 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
13949 (vn_reference_compute_hash): Dito.
13950 (vn_nary_op_compute_hash): Dito.
13951 (vn_phi_compute_hash): Dito.
13952 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
13954 2014-07-31 Andi Kleen <ak@linux.intel.com>
13956 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
13957 Rename to inchash:add_expr_commutative. Convert to inchash.
13958 (iterative_hash_hashable_expr): Rename to
13959 inchash:add_hashable_expr. Convert to inchash.
13960 (avail_expr_hash): Dito.
13962 2014-07-31 Andi Kleen <ak@linux.intel.com>
13964 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
13965 Convert to inchash.
13967 2014-07-31 Andi Kleen <ak@linux.intel.com>
13969 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
13971 2014-07-31 Andi Kleen <ak@linux.intel.com>
13973 * Makefile.in (OBJS): Add rtlhash.o
13974 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
13975 (loc_checksum): Dito.
13976 (loc_checksum_ordered): Dito.
13977 (hash_loc_operands): Dito.
13979 (hash_loc_list): Dito.
13980 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
13981 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
13982 * rtlhash.c: New file.
13983 * rtlhash.h: New file.
13985 2014-07-31 Andi Kleen <ak@linux.intel.com>
13987 * inchash.h (inchash): Change inchash class to namespace.
13988 (class hash): ... Rename from inchash.
13989 (add_object): Move from macro to class template.
13990 * lto-streamer-out.c (hash_tree): Change inchash
13992 * tree.c (build_type_attribute_qual_variant): Dito.
13993 (type_hash_list): Dito.
13994 (attribute_hash_list): Dito.
13995 (iterative_hstate_expr): Rename to inchash::add_expr
13996 (build_range_type_1): Change inchash to inchash::hash
13997 and use hash::add_expr.
13998 (build_array_type_1): Dito.
13999 (build_function_type): Dito
14000 (build_method_type_directly): Dito.
14001 (build_offset_type): Dito.
14002 (build_complex_type): Dito.
14003 (make_vector_type): Dito.
14004 * tree.h (iterative_hash_expr): Dito.
14006 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
14008 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
14010 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
14012 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
14013 correct alphabetical position.
14014 (vpaddd_f64): Rewrite using builtins.
14015 (vpaddd_s64): Move to correct alphabetical position.
14018 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
14021 * config/sh/sh.c (sh_legitimate_address_p,
14022 sh_legitimize_reload_address): Handle reg+reg address modes when
14023 ALLOW_INDEXED_ADDRESS is false.
14024 * config/sh/predicates.md (general_movsrc_operand,
14025 general_movdst_operand): Likewise.
14027 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
14029 * config/aarch64/aarch64-builtins.c
14030 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
14033 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
14035 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
14036 the generated mask based on BYTES_BIG_ENDIAN.
14037 (aarch64_simd_check_vect_par_cnst_half): New.
14038 * config/aarch64/aarch64-protos.h
14039 (aarch64_simd_check_vect_par_cnst_half): New.
14040 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
14041 the check out to aarch64_simd_check_vect_par_cnst_half.
14042 (vect_par_cnst_lo_half): Likewise.
14043 * config/aarch64/aarch64-simd.md
14044 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
14045 (move_hi_quad_<mode>): Always generate a low mask.
14047 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14049 * doc/invoke.texi (AVR Options): Add documentation about
14050 __AVR_DEVICE_NAME__ built-in macro.
14052 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
14055 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
14056 constraints are satisfied.
14057 (<shift>di3_neon): Likewise.
14059 2014-07-31 Richard Biener <rguenther@suse.de>
14061 PR tree-optimization/61964
14062 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
14063 by structural equality.
14065 2014-07-31 Yury Gribov <y.gribov@samsung.com>
14067 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
14068 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
14069 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
14071 * gcc.c (sanitize_spec_function): Support new option.
14072 (SANITIZER_SPEC): Remove now redundant check.
14073 * opts.c (common_handle_option): Support new option.
14074 (finish_options): Check for incompatibilities.
14075 * toplev.c (process_options): Split userspace-specific checks.
14077 2014-07-31 Richard Biener <rguenther@suse.de>
14079 * lto-streamer.h (struct output_block): Remove global.
14080 (struct data_in): Remove labels, num_named_labels and
14081 num_unnamed_labels.
14082 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
14083 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
14085 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
14088 * common.opt (-Wreturn-local-addr): Moved from c.opt.
14089 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
14090 (isolate_path): New argument to avoid inserting a trap.
14091 (find_implicit_erroneous_behaviour): Handle returning the address
14092 of a local variable.
14093 (find_explicit_erroneous_behaviour): Likewise.
14095 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
14098 * toplev.c (init_random_seed): Move piece of code never called to
14100 (set_random_seed): see above.
14102 2014-07-31 Tom de Vries <tom@codesourcery.com>
14104 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
14106 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
14108 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
14109 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
14111 2014-07-31 Richard Biener <rguenther@suse.de>
14113 * data-streamer.h (streamer_write_data_stream): Declare here,
14115 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
14116 * lto-cgraph.c (lto_output_node): Adjust.
14117 (lto_output_varpool_node): Likewise.
14118 * data-streamer-out.c (streamer_string_index): Likewise.
14119 (streamer_write_data_stream, lto_append_block): Move from ...
14120 * lto-section-out.c (lto_output_data_stream,
14121 lto_append_block): ... here.
14123 2014-07-30 Mike Stump <mikestump@comcast.net>
14125 * configure.ac: Also check for popen.
14126 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
14127 * configure: Regenerate.
14128 * config.in: Regenerate.
14130 2014-07-30 Martin Jambor <mjambor@suse.cz>
14132 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
14133 parameter to gimple.
14135 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14137 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
14138 address as second parameter to __tpf_eh_return routine.
14140 2014-07-30 Jiong Wang <jiong.wang@arm.com>
14142 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
14145 2014-07-30 Tom Tromey <tromey@redhat.com>
14148 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
14149 * doc/extend.texi (Type Attributes): Document designated_init
14152 2014-07-30 Roman Gareev <gareevroman@gmail.com>
14154 * graphite-isl-ast-to-gimple.c:
14155 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
14156 (gcc_expression_from_isl_expression): Pass type to
14157 gcc_expression_from_isl_ast_expr_id.
14159 2014-07-30 Richard Biener <rguenther@suse.de>
14161 * lto-streamer.h (lto_write_data): New function.
14162 * langhooks.c (lhd_append_data): Do not free block.
14163 * lto-section-out.c (lto_write_data): New function writing
14164 raw data to the current section.
14165 (lto_write_stream): Adjust for langhook semantic change.
14166 (lto_destroy_simple_output_block): Write header directly.
14167 * lto-opts.c (lto_write_options): Write options directly.
14168 * lto-streamer-out.c (produce_asm): Write heaeder directly.
14169 (lto_output_toplevel_asms): Likewise.
14170 (copy_function_or_variable): Copy data directly.
14171 (write_global_references): Output index table directly.
14172 (lto_output_decl_state_refs): Likewise.
14173 (write_symbol): Write data directly.
14174 (produce_symtab): Adjust.
14175 (produce_asm_for_decls): Output header and refs directly.
14177 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
14179 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
14180 to speculative_targets
14181 (get_class_context): Fix handling of contextes without outer type;
14182 avoid matching non-polymorphic types in LTO.
14183 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
14184 parameter to speculative_targetsp; handle speculation.
14185 (dump_possible_polymorphic_call_targets): Update dumping.
14187 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
14189 * common.opt (Wodr): Enable by default.
14191 2014-07-29 Olivier Hainque <hainque@adacore.com>
14193 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
14195 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
14198 * gengtype.c (strtoken): New function.
14199 (create_user_defined_type): Replace strtok with strtoken.
14201 2014-07-29 Nathan Sidwell <nathan@acm.org>
14203 * gcov-io.c (gcov_var): Make hidden.
14204 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
14205 (gcov_do_dump): Declare.
14206 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
14208 2014-07-29 Martin Jambor <mjambor@suse.cz>
14210 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
14211 parameter to gimple.
14212 (sra_modify_assign): Likewise.
14214 2014-07-29 Richard Biener <rguenther@suse.de>
14216 PR middle-end/52478
14217 * expr.c (expand_expr_real_2): Revert last change.
14219 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
14221 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
14222 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
14223 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
14225 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
14226 (contains_type_p): Forward declare.
14227 (polymorphic_call_target_hasher::hash): Hash speculative info.
14228 (polymorphic_call_target_hasher::equal): Compare speculative info.
14229 (get_class_context): Handle speuclation.
14230 (contains_type_p): Update.
14231 (get_polymorphic_call_info_for_decl): Update.
14232 (walk_ssa_copies): Break out from ...
14233 (get_polymorphic_call_info): ... here; set speculative context
14235 * ipa-prop.c (ipa_write_indirect_edge_info,
14236 ipa_read_indirect_edge_info): Stream speculative context.
14237 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
14238 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
14239 SPECULATIVE_MAYBE_DERIVED_TYPE).
14240 (possible_polymorphic_call_targets overriders): Update.
14241 (dump_possible_polymorphic_call_targets overriders): Update.
14242 (dump_possible_polymorphic_call_target_p overriders): Update.
14244 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
14246 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
14247 ipa-devirt path; fix thinko there.
14249 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
14251 * config/i386/i386.c (ix86_return_in_memory): Replace one
14252 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
14254 2014-07-28 Marek Polacek <polacek@redhat.com>
14256 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
14258 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
14260 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
14261 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
14262 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
14263 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14264 (USE_LD_AS_NEEDED): Likewise.
14265 (ASM_APP_ON): Likewise.
14266 (ASM_APP_OFF): Likewise.
14267 (TARGET_POSIX_IO): Likewise.
14268 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
14269 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
14270 (USE_LD_AS_NEEDED): Likewise.
14271 (ASM_APP_ON): Likewise.
14272 (ASM_APP_OFF): Likewise.
14273 (TARGET_POSIX_IO): Likewise.
14275 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
14277 PR middle-end/61734
14278 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
14279 operators other than the equality operators.
14281 2014-07-28 Richard Biener <rguenther@suse.de>
14283 PR middle-end/52478
14284 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
14285 sure to register SImode ones, not only >= word_mode ones.
14286 * expr.c (expand_expr_real_2): When expanding -ftrapv
14287 binops do not use OPTAB_LIB_WIDEN.
14289 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
14291 PR middle-end/61919
14292 * tree-outof-ssa.c (insert_partition_copy_on_edge)
14293 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
14294 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
14295 inserting them in the insn stream.
14297 2014-07-28 Marek Polacek <polacek@redhat.com>
14299 PR middle-end/61913
14300 * common.opt (Wodr): Add Var.
14302 2014-07-28 Richard Biener <rguenther@suse.de>
14304 PR tree-optimization/61921
14305 * tree-ssa-structalias.c (create_variable_info_for_1): Check
14306 if there is a varpool node before dereferencing it.
14308 2014-07-28 Roman Gareev <gareevroman@gmail.com>
14310 * graphite-sese-to-poly.c:
14311 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
14312 id of the pbb), which contains pointer to the pbb1.
14314 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
14316 2014-07-28 Roman Gareev <gareevroman@gmail.com>
14318 * graphite-isl-ast-to-gimple.c:
14319 (graphite_create_new_guard): New function.
14320 (translate_isl_ast_node_if): New function.
14321 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
14323 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
14325 2014-07-27 Anthony Green <green@moxielogic.com>
14327 * config.gcc: Add moxie-*-moxiebox* configuration.
14328 * config/moxie/moxiebox.h: New file.
14330 2014-07-26 Andrew Pinski <apinski@cavium.com>
14332 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
14333 from the read only register.
14335 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
14337 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
14338 as the allocation class if it isn't likely to be spilled.
14340 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
14342 * rtl.h (tls_referenced_p): Declare.
14343 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
14344 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
14345 (mips_cannot_force_const_mem): Use tls_referenced_p.
14346 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
14347 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
14348 instead of pa_tls_referenced_p.
14349 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
14350 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
14351 (pa_legitimate_constant_p): Likewise.
14352 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
14353 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
14354 (rs6000_cannot_force_const_mem, rs6000_emit_move)
14355 (rs6000_address_for_altivec): Use tls_referenced_p instead of
14356 rs6000_tls_referenced_p.
14357 (rs6000_tls_symbol_ref_1): Delete.
14359 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
14362 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
14363 Optimize inverse of a VEC_CONCAT.
14365 2014-07-25 Xinliang David Li <davidxl@google.com>
14367 * params.def: New parameter.
14368 * coverage.c (get_coverage_counts): Check new flag.
14369 (coverage_compute_profile_id): Check new flag.
14370 (coverage_begin_function): Check new flag.
14371 (coverage_end_function): Check new flag.
14372 * value-prof.c (coverage_node_map_initialized_p): New function.
14373 (init_node_map): Populate map with all functions.
14374 * doc/invoke.texi: Document new parameter.
14376 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
14377 Richard Biener <rguenther@suse.de>
14379 * lto-streamer-out.c (struct sccs): Turn to ...
14380 (class DFS): ... this one; refactor the DFS walk so it can
14381 be re-done on per-SCC basis.
14382 (DFS::DFS): New constructor.
14383 (DFS::~DFS): New destructor.
14384 (hash_tree): Add new MAP argument holding in-SCC hash values;
14385 remove POINTER_TYPE hashing hack.
14386 (scc_entry_compare): Rename to ...
14387 (DFS::scc_entry_compare): ... this one.
14388 (hash_scc): Rename to ...
14389 (DFS::hash_scc): ... this one; pass output_block instead
14390 of streamer_cache; work harder to get unique and stable SCC
14392 (DFS_write_tree): Rename to ...
14393 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
14394 (lto_output_tree): Update.
14396 2014-07-25 Andi Kleen <ak@linux.intel.com>
14398 * lto-streamer-out.c (hash_tree): Convert to inchash.
14400 2014-07-25 Andi Kleen <ak@linux.intel.com>
14402 * tree.c (build_type_attribute_qual_variant): Use inchash.
14403 (type_hash_list): Dito.
14404 (attribute_hash_list): Dito
14405 (iterative_hstate_expr): Dito.
14406 (iterative_hash_expr): Dito.
14407 (build_range_type_1): Dito.
14408 (build_array_type_1): Dito.
14409 (build_function_type): Dito.
14410 (build_method_type_directly): Dito.
14411 (build_offset_type): Dito.
14412 (build_complex_type): Dito.
14413 (make_vector_type): Dito.
14414 * tree.h (iterative_hash_expr): Add compat wrapper.
14415 (iterative_hstate_expr): Add.
14417 2014-07-25 Andi Kleen <ak@linux.intel.com>
14419 * Makefile.in (OBJS): Add inchash.o.
14420 (PLUGIN_HEADERS): Add inchash.h.
14421 * ipa-devirt.c: Include inchash.h.
14422 * lto-streamer-out.c: Dito.
14423 * tree-ssa-dom.c: Dito.
14424 * tree-ssa-pre.c: Dito.
14425 * tree-ssa-sccvn.c: Dito.
14426 * tree-ssa-tail-merge.c: Dito.
14428 * tree.c (iterative_hash_hashval_t): Move to ...
14429 (iterative_hash_host_wide_int): Move to ...
14430 * inchash.c: Here. New file.
14431 * tree.h (iterative_hash_hashval_t): Move to ...
14432 (iterative_hash_host_wide_int): Move to ...
14433 * inchash.h: Here. New file.
14435 2014-07-25 Richard Biener <rguenther@suse.de>
14437 PR middle-end/61762
14438 PR middle-end/61894
14439 * fold-const.c (native_encode_int): Add and handle offset
14440 parameter to do partial encodings of expr.
14441 (native_encode_fixed): Likewise.
14442 (native_encode_real): Likewise.
14443 (native_encode_complex): Likewise.
14444 (native_encode_vector): Likewise.
14445 (native_encode_string): Likewise.
14446 (native_encode_expr): Likewise.
14447 * fold-const.c (native_encode_expr): Add offset parameter
14449 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
14450 (fold_ctor_reference): Handle all reads from tcc_constant
14453 2014-07-25 Richard Biener <rguenther@suse.de>
14455 * tree-inline.c (estimate_move_cost): Mark speed_p argument
14456 as possibly unused.
14458 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14460 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
14462 2014-07-24 Kyle McMartin <kyle@redhat.com>
14464 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
14466 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14468 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
14470 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
14472 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
14473 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
14474 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
14476 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14478 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
14479 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
14480 aggregate types. Instead, *all* aggregate types, except for single-
14481 element or homogeneous float/vector aggregates, are quadword-aligned
14482 if required by their type alignment. Issue -Wpsabi note when a type
14483 is now treated differently than before.
14485 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14487 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
14488 does not fit fully into floating-point registers, and there is still
14489 space in the register parameter area, use GPRs to pass those parts
14490 of the argument. Issue -Wpsabi note if any parameter is now treated
14491 differently than before.
14492 (rs6000_arg_partial_bytes): Update.
14494 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
14496 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
14498 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
14500 * rtl.h (target_rtl): Remove lang_dependent_initialized.
14501 * toplev.c (initialize_rtl): Don't use it. Move previously
14502 "language-dependent" calls to...
14503 (backend_init): ...here.
14504 (lang_dependent_init_target): Don't set lang_dependent_initialized.
14505 Assert that RTL initialization hasn't happend yet.
14507 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
14509 PR rtl-optimization/61629
14510 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
14511 they have already been initialized.
14513 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
14515 PR middle-end/61268
14516 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
14517 DECL_INCOMING_RTL and entry_parm.
14518 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
14519 * calls.c (load_register_parameters): Likewise argument values.
14520 (emit_library_call_value_1, store_one_arg): Likewise argument
14522 * config/i386/i386.c (assign_386_stack_local): Likewise the local
14524 * explow.c (validize_mem): Modify the argument in-place.
14526 2014-07-24 Jiong Wang <jiong.wang@arm.com>
14528 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
14529 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
14531 2014-07-24 Jiong Wang <jiong.wang@arm.com>
14533 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
14534 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
14536 2014-07-24 Jiong Wang <jiong.wang@arm.com>
14538 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
14539 (aarch64_save_callee_saves): New parameter "skip_wb".
14540 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
14542 2014-07-24 Jiong Wang <jiong.wang@arm.com>
14544 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
14546 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
14548 2014-07-24 Roman Gareev <gareevroman@gmail.com>
14550 * graphite-isl-ast-to-gimple.c:
14551 (graphite_create_new_loop): Add calling of isl_id_free to properly
14552 decrement reference counts.
14554 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
14556 2014-07-24 Martin Liska <mliska@suse.cz>
14557 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
14559 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
14560 (rs6000_code_end): Likewise.
14562 2014-07-24 Martin Liska <mliska@suse.cz>
14564 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
14565 symtab_node funtion used.
14566 (rs6000_xcoff_declare_object_name): Likewise.
14568 2014-07-24 Martin Liska <mliska@suse.cz>
14570 * cgraphunit.c (compile): Correct function used.
14572 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
14574 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
14577 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
14580 * varasm.c (bss_initializer_p): Handle offlined ctors.
14581 (align_variable, get_variable_align): Likewise.
14582 (make_decl_one_only): Likewise.
14583 (default_binds_local_p_1): Likewise.
14584 (decl_binds_to_current_def_p): Likewise.
14585 (get_variable_section): Get constructor if it is offlined.
14586 (assemble_variable_contents): Sanity check that the caller
14587 streamed in the ctor in LTO.
14589 2014-07-24 Roman Gareev <gareevroman@gmail.com>
14591 * graphite-isl-ast-to-gimple.c:
14592 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
14593 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
14594 isl_ast_op_pdiv_r to the different case.
14596 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
14598 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14600 PR middle-end/61876
14601 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
14602 when flag_errno_math is on.
14604 2014-07-24 Martin Liska <mliska@suse.cz>
14606 * cgraph.h (varpool_node):
14607 (availability get_availability (void)):
14608 created from cgraph_variable_initializer_availability
14609 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
14610 created from: cgraph_variable_initializer_availability
14611 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
14612 (void finalize_named_section_flags (void)):
14613 created from varpool_finalize_named_section_flags
14614 (bool assemble_decl (void)): created from varpool_assemble_decl
14615 (void analyze (void)): created from varpool_analyze_node
14616 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
14617 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
14618 (void remove_initializer (void)): created from varpool_remove_initializer
14619 (tree get_constructor (void)): created from varpool_get_constructor
14620 (bool externally_visible_p (void)): created from varpool_externally_visible_p
14621 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
14622 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
14623 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
14624 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
14625 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
14626 (static bool output_variables (void)): created from varpool_output_variables
14627 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
14628 created from varpool_extra_name_alias
14629 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
14630 (static void dump_varpool (FILE *f)): created from dump_varpool
14631 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
14632 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
14633 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
14634 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
14635 (void assemble_aliases (void)): created from assemble_aliases
14637 2014-07-24 Martin Liska <mliska@suse.cz>
14639 * cgraph.h (symtab_node):
14640 (void register_symbol (void)): created from symtab_register_node
14641 (void remove (void)): created from symtab_remove_node
14642 (void dump (FILE *f)): created from dump_symtab_node
14643 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
14644 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
14645 (struct ipa_ref *add_reference (symtab_node *referred_node,
14646 enum ipa_ref_use use_type)): created from add_reference
14647 (struct ipa_ref *add_reference (symtab_node *referred_node,
14648 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
14649 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
14650 gimple stmt)): created from maybe_add_reference
14651 (bool semantically_equivalent_p (symtab_node *target)): created from
14652 symtab_semantically_equivalent_p
14653 (void remove_from_same_comdat_group (void)): created from
14654 remove_from_same_comdat_group
14655 (void add_to_same_comdat_group (symtab_node *old_node)): created from
14656 symtab_add_to_same_comdat_group
14657 (void dissolve_same_comdat_group_list (void)): created from
14658 symtab_dissolve_same_comdat_group_list
14659 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
14660 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
14661 created from symtab_alias_ultimate_target
14662 (inline symtab_node *next_defined_symbol (void)): created from
14663 symtab_next_defined_symbol
14664 (bool resolve_alias (symtab_node *target)): created from
14665 symtab_resolve_alias
14666 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
14667 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
14668 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
14669 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
14670 (void set_section (const char *section)): created from set_section_1
14671 (enum availability get_availability (void)): created from symtab_node_availability
14672 (void make_decl_local (void)): created from symtab_make_decl_local
14673 (bool real_symbol_p (void)): created from symtab_read_node
14674 (can_be_discarded_p (void)): created from symtab_can_be_discarded
14675 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
14676 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
14677 symtab_in_same_comdat_p;
14678 (bool address_taken_from_non_vtable_p (void)): created from
14679 address_taken_from_non_vtable_p
14680 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
14681 (static void dump_table (FILE *)): created from dump_symtab
14682 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
14683 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
14684 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
14685 symtab_used_from_object_file_p
14686 (void dump_base (FILE *)): created from dump_symtab_base
14687 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
14688 (void unregister (void)): created from symtab_unregister_node
14689 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
14690 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
14691 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
14692 symtab_nonoverwritable_alias_1
14693 * cgraph.h (cgraph_node):
14694 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
14695 created from cgraph_remove_node_and_inline_clones
14696 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
14697 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
14698 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
14699 (cgraph_node *function_symbol (enum availability *avail = NULL)):
14700 created from cgraph_function_node
14701 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
14702 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
14703 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
14704 created from cgraph_create_clone
14705 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
14706 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
14707 created from cgraph_create_virtual_clone
14708 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
14709 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
14710 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
14711 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
14712 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
14713 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
14714 created from cgraph_function_version_info
14715 (struct cgraph_function_version_info *insert_new_function_version (void)):
14716 created from insert_new_cgraph_node_version
14717 (struct cgraph_function_version_info *function_version (void)): created from
14718 get_cgraph_node_version
14719 (void analyze (void)): created from analyze_function
14720 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
14721 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
14722 tree real_alias) cgraph_add_thunk
14723 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
14724 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
14725 created from cgraph_function_or_thunk_node
14726 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
14727 created from expand_thunk
14728 (void reset (void)): created from cgraph_reset_node
14729 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
14730 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
14731 (void remove (void)): created from cgraph_remove_node
14732 (void dump (FILE *f)): created from dump_cgraph_node
14733 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
14734 (bool get_body (void)): created from cgraph_get_body
14735 (void release_body (void)): created from cgraph_release_function_body
14736 (void unnest (void)): created from cgraph_unnest_node
14737 (void make_local (void)): created from cgraph_make_node_local
14738 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
14739 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
14740 gcov_type count, int freq)): created from cgraph_create_edge
14741 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
14742 gcov_type count, int freq)): created from cgraph_create_indirect_edge
14743 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
14744 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
14745 created from cgraph_create_edge_including_clones
14746 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
14747 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
14748 (void remove_callers (void)): created from cgraph_node_remove_callers
14749 (void remove_callees (void)): created from cgraph_node_remove_callees
14750 (enum availability get_availability (void)): created from cgraph_function_body_availability
14751 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
14752 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
14753 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
14754 (void call_duplication_hooks (cgraph_node *node2)): created from
14755 cgraph_call_node_duplication_hooks
14756 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
14757 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
14758 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
14759 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
14760 (void call_function_insertion_hooks (void)):
14761 created from cgraph_call_function_insertion_hooks
14762 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
14763 (bool local_p (void)): created from cgraph_local_node
14764 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
14765 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
14766 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
14767 (inline bool only_called_directly_or_aliased_p (void)):
14768 created from cgraph_only_called_directly_or_aliased_p
14769 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
14770 created from cgraph_will_be_removed_from_program_if_no_direct_calls
14771 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
14772 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
14773 (bool can_remove_if_no_direct_calls_p (void)):
14774 created from cgraph_can_remove_if_no_direct_calls_p
14775 (inline bool has_gimple_body_p (void)):
14776 created from cgraph_function_with_gimple_body_p
14777 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
14778 (static void dump_cgraph (FILE *f)): created from dump_cgraph
14779 (static inline void debug_cgraph (void)): created from debug_cgraph
14780 (static void record_function_versions (tree decl1, tree decl2)):
14781 created from record_function_versions
14782 (static void delete_function_version (tree decl)):
14783 created from delete_function_version
14784 (static void add_new_function (tree fndecl, bool lowered)):
14785 created from cgraph_add_new_function
14786 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
14787 (static cgraph_node * create (tree decl)): created from cgraph_create_node
14788 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
14789 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
14790 (static cgraph_node *get_for_asmname (tree asmname)):
14791 created from cgraph_node_for_asm
14792 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
14793 created from cgraph_same_body_alias
14794 (static bool used_from_object_file_p_worker (cgraph_node *node,
14795 void *): new function
14796 (static bool non_local_p (cgraph_node *node, void *)):
14797 created from cgraph_non_local_node_p_1
14798 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
14799 created from verify_cgraph
14800 (static bool make_local (cgraph_node *node, void *)):
14801 created from cgraph_make_node_local
14802 (static cgraph_node *create_alias (tree alias, tree target)):
14803 created from cgraph_create_function_alias
14804 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
14805 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
14806 created from cgraph_create_edge_1
14807 * cgraph.h (varpool_node):
14808 (void remove (void)): created from varpool_remove_node
14809 (void dump (FILE *f)): created from dump_varpool_node
14811 2014-07-24 Richard Biener <rguenther@suse.de>
14814 * tree-ssa-structalias.c (create_variable_info_for_1):
14815 Use varpool_get_constructor.
14816 (create_variable_info_for): Likewise.
14818 2014-07-24 Jiong Wang <jiong.wang@arm.com>
14820 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
14821 subtract outgoing area size when restoring stack_pointer_rtx.
14823 2014-07-24 Nick Clifton <nickc@redhat.com>
14825 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
14826 that operations are taking place in parallel.
14827 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
14829 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
14831 * omp-low.c (extract_omp_for_data): Add missing break statement.
14833 2014-07-24 Richard Biener <rguenther@suse.de>
14835 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
14836 * tree-inline.c (estimate_move_cost): Add speed_p parameter
14837 and adjust MOVE_RATIO query accordingly.
14838 (estimate_num_insns): Adjust callers.
14839 * ipa-prop.c (ipa_populate_param_decls): Likewise.
14840 * ipa-cp.c (gather_context_independent_values,
14841 estimate_local_effects): Likewise.
14842 * ipa-split.c (consider_split): Likewise.
14844 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
14846 * config/i386/driver-i386.c: Remove names of unused arguments and
14847 unnecessary unused attributes.
14848 * config/i386/host-mingw32.c: Likewise.
14849 * config/i386/i386.c: Likewise.
14850 * config/i386/winnt-stubs.c: Likewise.
14851 * config/i386/winnt.c: Likewise.
14853 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14855 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
14856 (aarch64_gen_loadwb_pair): New helper function.
14857 (aarch64_expand_epilogue): Simplify code using new helper functions.
14858 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
14860 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14862 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
14863 (aarch64_gen_storewb_pair): New helper function.
14864 (aarch64_expand_prologue): Simplify code using new helper functions.
14865 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
14867 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14869 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
14870 Rename to aarch64_save_callee_saves, remove restore code.
14871 (aarch64_restore_callee_saves): New function.
14873 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14875 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
14876 (aarch64_save_callee_saves): New function to handle reg save
14877 for both core and vectore regs.
14879 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14881 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
14882 (aarch64_gen_store_pair): New helper function.
14883 (aarch64_save_or_restore_callee_save_registers)
14884 (aarch64_save_or_restore_fprs): Use new helper functions.
14886 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14888 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
14889 (aarch64_save_or_restore_callee_save_registers)
14890 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
14892 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14894 * config/aarch64/aarch64.c
14895 (aarch64_save_or_restore_callee_save_registers)
14896 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
14898 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14900 * config/aarch64/aarch64.c
14901 (aarch64_save_or_restore_callee_save_registers)
14902 (aarch64_save_or_restore_fprs): Remove 'increment'.
14904 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14906 * config/aarch64/aarch64.c
14907 (aarch64_save_or_restore_callee_save_registers)
14908 (aarch64_save_or_restore_fprs): Use register offset in
14909 cfun->machine->frame.reg_offset.
14911 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14913 * config/aarch64/aarch64.c
14914 (aarch64_save_or_restore_callee_save_registers)
14915 (aarch64_save_or_restore_fprs): Remove base_rtx.
14917 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14919 * config/aarch64/aarch64.c
14920 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
14921 to 'start_offset'. Remove local variable 'start_offset'.
14923 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14925 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
14926 type to HOST_WIDE_INT.
14928 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14930 * config/aarch64/aarch64.c (aarch64_expand_prologue)
14931 (aarch64_save_or_restore_fprs)
14932 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
14934 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
14936 * config/arm/t-rtems-eabi: Add
14937 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
14938 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
14939 mbig-endian/mthumb/march=armv7-r, and
14940 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
14943 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
14944 Chris Johns <chrisj@rtems.org>
14945 Joel Sherrill <joel.sherrill@oarcorp.com>
14947 * config.gcc: Add nios2-*-rtems*.
14948 * config/nios2/rtems.h: New file.
14949 * gcc/config/nios2/t-rtems: New file.
14951 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
14954 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
14955 constant numbers, not general constants.
14956 (rs6000_expand_vector_init): Ditto.
14958 2014-07-23 Nathan Sidwell <nathan@acm.org>
14960 * gcov-tool.c (gcov_list): Declare here.
14961 (set_gcov_list): Remove.
14962 (gcov_output_files): Set gcov_list directly.
14964 2014-07-23 Host Schirmeier <horst@schirmeier.com>
14966 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
14968 2014-07-23 Jiong Wang <jiong.wang@arm.com>
14970 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
14971 callee-saved registers are available for padding purpose
14972 and r3 is not mandatory, then prefer use those callee-saved
14975 2014-07-23 Richard Biener <rguenther@suse.de>
14977 * params.def (PARAM_MAX_COMBINE_INSNS): New.
14978 * combine.c: Include statistics.h and params.h.
14979 (combine_instructions): Guard three and four insn combines
14980 with max-combine-insns value. Record statistics for combines
14982 * doc/invoke.texi (max-combine-insns): Document new param.
14984 2014-07-23 Roman Gareev <gareevroman@gmail.com>
14986 * graphite-isl-ast-to-gimple.c:
14987 (translate_isl_ast_node_block): New function.
14988 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
14990 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
14991 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
14993 2014-07-23 Roman Gareev <gareevroman@gmail.com>
14995 * graphite-isl-ast-to-gimple.c:
14996 (get_max_schedule_dimensions): New function.
14997 (extend_schedule): Likewise.
14998 (generate_isl_schedule): Add calling of extend_schedule and
14999 get_max_schedule_dimensions.
15001 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15003 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
15004 (case UNSPEC): Handle UNSPEC_RBIT.
15006 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15008 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
15009 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
15011 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15013 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
15015 2014-07-22 Roman Gareev <gareevroman@gmail.com>
15017 * graphite-isl-ast-to-gimple.c:
15018 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
15019 (ivs_params_clear):
15020 (build_iv_mapping): New function.
15021 (translate_isl_ast_node_user): Likewise.
15022 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
15024 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
15025 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
15026 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
15028 2014-07-21 Bin Cheng <bin.cheng@arm.com>
15031 * config/arm/arm.md (setmem): New pattern.
15032 * config/arm/arm-protos.h (struct tune_params): New fields.
15033 (arm_gen_setmem): New prototype.
15034 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
15035 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
15036 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
15037 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
15038 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
15039 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
15040 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
15041 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
15042 (arm_const_inline_cost): New function.
15043 (arm_block_set_max_insns): New function.
15044 (arm_block_set_non_vect_profit_p): New function.
15045 (arm_block_set_vect_profit_p): New function.
15046 (arm_block_set_unaligned_vect): New function.
15047 (arm_block_set_aligned_vect): New function.
15048 (arm_block_set_unaligned_non_vect): New function.
15049 (arm_block_set_aligned_non_vect): New function.
15050 (arm_block_set_vect, arm_gen_setmem): New functions.
15052 2014-07-21 Bin Cheng <bin.cheng@arm.com>
15054 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
15056 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
15059 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
15060 out of #ifdef __OPTIMIZE__.
15062 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
15064 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
15065 different trapping status if -fnon-call-exceptions is enabled.
15067 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
15069 * expr.c (store_field): Handle VOIDmode for calls that return values
15070 in multiple locations.
15072 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15074 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
15075 (altivec_vsldoi_<mode>): Likewise.
15077 2014-07-20 Roman Gareev <gareevroman@gmail.com>
15079 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
15080 to the number of characters in the line.
15082 2014-07-20 Roman Gareev <gareevroman@gmail.com>
15084 * graphite-isl-ast-to-gimple.c: Add using of
15085 build_nonstandard_integer_type instead of int128_integer_type_node.
15087 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
15089 * toplev.c (output_stack_usage): Adjust the location of the warning.
15091 2014-07-19 Daniel Cederman <cederman@gaisler.com>
15093 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
15094 (*membar_storeload): Disable for LEON3.
15096 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
15098 PR rtl-optimization/61461
15099 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
15101 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
15104 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
15105 Fix instruction constraint.
15106 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
15108 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
15110 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
15112 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
15114 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
15115 GNU coding standards.
15116 (nds32_register_move_cost): Likewise.
15117 (nds32_memory_move_cost): Likewise.
15118 (nds32_address_cost): Likewise.
15120 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15122 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
15124 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
15126 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
15127 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
15128 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
15129 (HAVE_sync_compare_and_swapqi): Define.
15130 (HAVE_sync_compare_and_swaphi): Likewise.
15131 (HAVE_sync_compare_and_swapsi): Likewise.
15133 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
15135 * config/mips/p5600.md: Add missing cpu tests.
15137 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15139 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
15140 (vmla_f64): Likewise.
15141 (vfms_f64): Likewise.
15142 (vmls_f64): Likewise.
15144 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15146 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
15147 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
15149 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15151 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
15152 (vmlal_high_lane_s32): Likewise.
15153 (vmlal_high_lane_u16): Likewise.
15154 (vmlal_high_lane_u32): Likewise.
15155 (vmlsl_high_lane_s16): Likewise.
15156 (vmlsl_high_lane_s32): Likewise.
15157 (vmlsl_high_lane_u16): Likewise.
15158 (vmlsl_high_lane_u32): Likewise.
15160 2014-07-17 Terry Guo <terry.guo@arm.com>
15162 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
15163 (alus_reg): Renamed to alus_sreg.
15164 * config/arm/arm-fixed.md: Change type of non-dsp instructions
15165 from alu_reg to alu_sreg. Change type of dsp instructions from
15166 alu_reg to alu_dsp_reg.
15167 * config/arm/thumb1.md: Likewise.
15168 * config/arm/thumb2.md: Likewise.
15169 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
15170 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
15171 with alu_sreg and alus_sreg.
15172 * config/arm/arm1026ejs.md (alu_op): Likewise.
15173 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
15174 * config/arm/arm926ejs.md (9_alu_op): Likewise.
15175 * config/arm/fa526.md (526_alu_op): Likewise.
15176 * config/arm/fa606te.md (606te_alu_op): Likewise.
15177 * config/arm/fa626te.md (626te_alu_op): Likewise.
15178 * config/arm/fa726te.md (726te_alu_op): Likewise.
15179 * config/arm/fmp626.md (mp626_alu_op): Likewise.
15180 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
15181 alu_sreg, alu_dsp_reg and alus_sreg.
15182 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
15183 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
15184 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
15185 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
15186 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
15187 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
15188 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
15189 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
15190 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
15191 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
15192 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
15193 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
15194 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
15195 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
15196 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
15197 alus_reg to alus_sreg.
15199 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
15201 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
15204 2014-07-17 Richard Biener <rguenther@suse.de>
15206 PR rtl-optimization/61801
15207 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
15208 don't set reg_pending_barrier if it appears in a debug-insn.
15210 2014-07-16 DJ Delorie <dj@redhat.com>
15212 * config/rx/rx.c (rx_option_override): Fix alignment values.
15213 (rx_align_for_label): Likewise.
15215 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
15218 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
15219 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
15220 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
15222 (cris_print_index, cris_print_operand, cris_constant_index_p)
15223 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
15224 (cris_address_cost): Ditto last CONSTANT_P.
15225 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
15226 callers changed. Yield cris_offsettable_symbol for non-PIC
15227 constant symbolic expressions including labels. Yield cris_unspec
15229 (cris_expand_pic_call_address): New parameter MARKERP. Set its
15230 target to pic_offset_table_rtx for calls that will likely go
15231 through PLT, const0_rtx when they can't. All callers changed.
15232 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
15233 symbolic expressions to be PICified. Remove second, redundant,
15234 assert on can_create_pseudo_p returning non-zero. Use
15235 replace_equiv_address_nv, not replace_equiv_address, for final
15237 * config/cris/cris.md ("movsi"): Move variable t to pattern
15238 toplevel. Adjust assert for new cris_symbol_type member. Use
15239 CONSTANT_P instead of CONSTANT_ADDRESS_P.
15240 ("*movsi_internal") <case 9>: Make check for valid unspec operands
15242 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
15243 ("call", "call_value"): Use second incoming operand as a marker
15244 for pic-offset-table-register being used.
15245 ("*expanded_call_non_v32", "*expanded_call_v32")
15246 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
15247 second incoming operand to CALL, match cris_call_type_marker.
15248 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
15249 ("*expanded_call_side"): Ditto. Fix typo in comment.
15250 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
15252 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
15253 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
15254 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
15255 users changed. Add members cris_offsettable_symbol and cris_unspec.
15256 (cris_symbol_type): Rename from cris_pic_symbol_type.
15257 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
15259 * config/cris/cris-protos.h (cris_symbol_type_of,
15260 cris_expand_pic_call_address): Adjust prototypes.
15261 (cris_legitimate_constant_p): New prototype.
15263 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
15264 an existing tmake_file. Don't add t-slibgcc and t-linux.
15266 2014-07-17 Jason Merrill <jason@redhat.com>
15269 * symtab.c (symtab_remove_from_same_comdat_group): Also
15270 set_comdat_group to NULL_TREE.
15271 (verify_symtab): Fix diagnostic.
15273 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
15276 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
15278 2014-07-16 Dodji Seketeli <dodji@redhat.com>
15280 Support location tracking for built-in macro tokens
15281 * input.h (is_location_from_builtin_token): New function declaration.
15282 * input.c (is_location_from_builtin_token): New function definition.
15283 * toplev.c (general_init): Tell libcpp what the pre-defined
15284 spelling location for built-in tokens is.
15286 2014-07-16 Jakub Jelinek <jakub@redhat.com>
15288 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
15289 on the FUNCTION_DECL.
15291 2014-07-16 Richard Biener <rguenther@suse.de>
15294 * doc/extend.texi (always_inline): Clarify.
15296 2014-07-15 Eric Christopher <echristo@gmail.com>
15298 * doc/invoke.texi (Link Options): Document -z option.
15300 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
15302 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
15303 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
15305 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
15307 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
15309 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
15311 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
15312 varpool_assemble_decl.
15313 * varpool.c (varpool_assemble_decl): Assert that node->definition is
15316 2014-07-15 Michael Matz <matz@suse.de>
15318 PR rtl-optimization/61772
15319 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
15321 2014-07-15 Richard Biener <rguenther@suse.de>
15323 * opts.c (default_options_table): Disable bit-ccp at -Og.
15325 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
15327 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
15329 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
15331 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
15332 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
15333 call langhook for unknown declaration.
15334 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
15335 * tree.h (DECL_ARGUMENTS): Update.
15336 * print-tree.c (print_node): Update.
15337 * tree-core.h (tree_decl_non_common): Remove arguments.
15338 (tree_function_decl): Add arguments.
15340 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
15342 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
15344 2014-07-14 Richard Biener <rguenther@suse.de>
15346 PR tree-optimization/61779
15347 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
15348 simplifying a condition.
15350 2014-07-14 Richard Biener <rguenther@suse.de>
15352 * builtins.c (c_strlen): Make only_value == 2 really only
15353 affect warning generation.
15355 2014-07-14 Richard Biener <rguenther@suse.de>
15357 PR tree-optimization/61757
15358 PR tree-optimization/61783
15359 PR tree-optimization/61787
15360 * tree-ssa-dom.c (record_equality): Revert canonicalization
15361 change and add comment.
15362 (propagate_rhs_into_lhs): Revert previous fix, removing
15363 loop depth restriction again.
15365 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15367 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
15368 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
15369 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
15370 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
15371 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
15372 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
15373 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
15375 2014-07-14 Richard Biener <rguenther@suse.de>
15377 * cgraph.h (decl_in_symtab_p): Make inline.
15379 2014-07-14 Jakub Jelinek <jakub@redhat.com>
15381 PR middle-end/61294
15382 * doc/invoke.texi (-Wmemset-transposed-args): Document.
15385 * config/i386/i386.c (classify_argument): Don't merge classes above
15388 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
15390 * cgraph.h (symtab_node): Add nonzero_address.
15391 (decl_in_symtab_p): Break out from ...
15392 (symtab_get_node): ... here.
15393 * fold-const.c: Include cgraph.h
15394 (tree_single_nonzero_warnv_p): Use symtab to determine
15395 if symbol is non-zero.
15396 * symtab.c (symtab_node::nonzero_address): New method.
15398 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
15400 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
15401 forgotten in previous commit.
15403 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
15405 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
15407 * ipa-devirt.c: Include stor-layout.h and intl.h
15408 (odr_subtypes_equivalent_p): New function.
15409 (warn_odr): New function.
15410 (warn_type_mismatch): New function.
15411 (odr_types_equivalent_p): New function.
15412 (add_type_duplicate): Use it.
15413 * common.opt (Wodr): New flag.
15414 * doc/invoke.texi (Wodr): Document new warning.
15416 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
15418 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
15419 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
15420 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
15421 (varpool_get_constructor): Push CTORS_IN timevar.
15422 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
15424 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
15426 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
15427 Remove VOID_FTYPE_PUSHORT.
15428 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
15429 Change code to USHORT_FTYPE_VOID.
15430 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
15431 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
15432 (ix86_atomic_assign_expand_fenv): Update for
15433 __builtin_ia32_fnstsw changes.
15434 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
15435 (fnstsw): Change operand 0 to nonimmediate operand.
15437 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
15439 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
15440 (varpool_get_constructor): New function.
15441 (varpool_ctor_useable_for_folding_p): Break out from ...
15442 (ctor_for_folding): ... here; use varpool_get_constructor.
15443 (varpool_assemble_decl): Likewise.
15444 * lto-streamer.h (struct output_block): Turn cgraph_node
15446 (lto_input_variable_constructor): Declare.
15447 * ipa-visibility.c (function_and_variable_visibility): Use
15448 varpool_get_constructor.
15449 * cgraph.h (varpool_get_constructor): Declare.
15450 (varpool_ctor_useable_for_folding_p): New function.
15451 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
15452 parameter; return error_mark_node for non-trivial constructors.
15453 (lto_write_tree_1, DFS_write_tree): Update use of
15454 get_symbol_initial_value.
15455 (output_function): Update initialization of symbol.
15456 (output_constructor): New function.
15457 (copy_function): Rename to ..
15458 (copy_function_or_variable): ... this one; handle vars too.
15459 (lto_output): Output variable sections.
15460 * lto-streamer-in.c (input_constructor): New function.
15461 (lto_read_body): Rename from ...
15462 (lto_read_body_or_constructor): ... this one; handle vars too.
15463 (lto_input_variable_constructor): New function.
15464 * ipa-prop.c (ipa_prop_write_jump_functions,
15465 ipa_prop_write_all_agg_replacement): Update.
15466 * lto-cgraph.c (compute_ltrans_boundary): Use it.
15467 (output_cgraph_opt_summary): Set symbol to NULL.
15469 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
15471 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
15472 non-polymorphic types.
15473 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
15474 * ipa-devirt.c (types_same_for_odr): Do not explode when one
15475 of types is not polymorphic.
15477 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
15479 * lra-constraints.c (remove_inheritance_pseudos): Process
15480 destination pseudo too.
15482 2014-07-11 Rong Xu <xur@google.com>
15484 * gcov-tool.c (gcov_output_files): Fix build error introduced in
15487 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
15489 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
15490 * config/avr/avr-devices.c (AVR_MCU): Same.
15491 (avr_mcu_types): add text start value to end of device list.
15492 * config/avr/avr-mcus.def: Add text section start for all devices.
15493 (ata5782): Add new avr5 device.
15495 * config/avr/avr-tables.opt: Regenerate.
15496 * config/avr/avr.h: Add declaration for text section start handler.
15497 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
15499 (LINK_SPEC): Include text section start handler to linker spec.
15500 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
15501 pass -Ttext option to linker if the text section start for the device
15503 * config/avr/t-multilib: Regenerate.
15504 * doc/avr-mmcu.texi: Regenerate.
15506 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
15508 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
15509 * config/rs6000/aix52.h (LINK_SPEC): Same.
15510 * config/rs6000/aix53.h (LINK_SPEC): Same.
15511 * config/rs6000/aix61.h (LINK_SPEC): Same.
15512 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
15514 2014-07-11 Roman Gareev <gareevroman@gmail.com>
15516 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
15517 (graphite_verify): New function.
15518 (ivs_params_clear): New function.
15519 (gcc_expression_from_isl_ast_expr_id): New function.
15520 (gcc_expression_from_isl_expr_int): New function.
15521 (binary_op_to_tree): New function.
15522 (ternary_op_to_tree): New function.
15523 (unary_op_to_tree): New function.
15524 (nary_op_to_tree): New function.
15525 (gcc_expression_from_isl_expr_op): New function.
15526 (gcc_expression_from_isl_expression): New function.
15527 (graphite_create_new_loop): New function.
15528 (translate_isl_ast_for_loop): New function.
15529 (get_upper_bound): New function.
15530 (graphite_create_new_loop_guard): New function.
15531 (translate_isl_ast_node_for): New function.
15532 (translate_isl_ast): New function.
15533 (add_parameters_to_ivs_params): New function.
15534 (scop_to_isl_ast): New parameter ip.
15535 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
15537 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
15539 * config/xtensa/predicates.md (call expander): Update for
15540 DECL_SECTION_NAME being string.
15542 2014-07-11 Richard Biener <rguenther@suse.de>
15544 PR middle-end/61473
15545 * builtins.c (fold_builtin_memory_op): Inline memory moves that
15546 can be implemented with a single load followed by a single store.
15547 (c_strlen): Only warn when only_value is not 2.
15549 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
15551 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
15553 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
15556 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
15557 (*movhi_bytes): Likewise.
15558 (*arm_movqi_insn): Likewise.
15560 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
15563 * config/alpha/alpha.c: Include tree-pass.h, context.h
15564 and pass_manager.h.
15565 (pass_data_handle_trap_shadows): New pass.
15566 (pass_handle_trap_shadows::gate): New pass gate function.
15567 (make_pass_handle_trap_shadows): New function.
15568 (rest_of_handle_trap_shadows): Ditto.
15570 (alpha_align_insns_1): Rename from alpha_align_insns.
15571 (pass_data_align_insns): New pass.
15572 (pass_align_insns::gate): New pass gate function.
15573 (make_pass_aling_insns): New function.
15574 (rest_of_align_insns): Ditto.
15575 (alpha_align_insns): Ditto.
15577 (alpha_option_override): Declare handle_trap_shadows info
15578 and align_insns_info. Register handle_trap_shadows and align_insns
15580 (alpha_reorg): Do not call alpha_trap_shadows and
15581 alpha_align_insn from here.
15583 (alpha_pad_function_end): Do not skip BARRIERs.
15585 2014-07-10 Rong Xu <xur@google.com>
15587 Add gcov-tool: an offline gcda profile processing tool support.
15588 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
15589 (gcov_is_error): Ditto.
15590 (gcov_read_string): Ditto.
15591 (gcov_read_sync): Ditto.
15592 * gcov-io.h: Move counter defines to gcov-counter.def.
15593 * gcov-dump.c (tag_counters): Use gcov-counter.def.
15594 * coverage.c: Ditto.
15595 * gcov-tool.c: Offline gcda profile processing tool.
15596 (unlink_gcda_file): Remove one gcda file.
15597 (unlink_profile_dir): Remove gcda files from the profile path.
15598 (gcov_output_files): Output gcda files to an output dir.
15599 (profile_merge): Merge two profiles in directory.
15600 (print_merge_usage_message): Print merge usage.
15601 (merge_usage): Print merge usage and exit.
15602 (do_merge): Driver for profile merge sub-command.
15603 (profile_rewrite): Rewrite profile.
15604 (print_rewrite_usage_message): Print rewrite usage.
15605 (rewrite_usage): Print rewrite usage and exit.
15606 (do_rewrite): Driver for profile rewrite sub-command.
15607 (print_usage): Print gcov-info usage and exit.
15608 (print_version): Print gcov-info version.
15609 (process_args): Process arguments.
15610 (main): Main routine for gcov-tool.
15611 * Makefile.in: Build and install gcov-tool.
15612 * gcov-counter.def: New file split from gcov-io.h.
15613 * doc/gcc.texi: Include gcov-tool.texi.
15614 * doc/gcov-tool.texi: Document for gcov-tool.
15616 2014-07-10 Richard Biener <rguenther@suse.de>
15618 PR tree-optimization/61757
15619 * tree-ssa-dom.c (loop_depth_of_name): Restore.
15620 (propagate_rhs_into_lhs): Revert part of last change.
15622 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
15624 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
15627 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
15629 PR middle-end/53590
15630 * function.c (allocate_struct_function): Revert r188667 change.
15632 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
15634 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
15636 * doc/install.texi: Remove links to defunct package providers for
15639 2014-07-09 Tom de Vries <tom@codesourcery.com>
15641 * final.c (get_call_fndecl): Declare.
15642 (self_recursive_call_p): New function.
15643 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
15645 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15647 * ipa-devirt.c (record_node): Walk through aliases.
15649 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15651 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
15653 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15656 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
15658 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15660 * ipa-visibility.c (function_and_variable_visibility): Remove
15661 temporary hack disabling local aliases on AIX.
15663 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15665 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
15666 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
15668 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15670 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
15671 * rs6000/rs6000.c: Inline output of .set instruction.
15672 (declare_alias_data): New struct.
15673 (rs6000_declare_alias): New function.
15674 (rs6000_xcoff_declare_function_name): Use it.
15675 (rs6000_xcoff_declare_object_name): New function.
15676 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
15677 (ASM_OUTPUT_DEF): Turn to empty definition.
15679 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
15682 * hash-table.h: use hash_table::value_type instead of
15683 Descriptor::value_type in the return types of several methods.
15685 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
15687 * tree-pass.h (pass_data): Remove has_execute member.
15688 * passes.c (execute_one_pass): Don't check pass->has_execute.
15689 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
15690 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
15691 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
15692 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
15693 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
15694 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
15695 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
15696 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
15697 gimple-low.c, gimple-ssa-isolate-paths.c,
15698 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
15699 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
15700 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
15701 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
15702 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
15703 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
15704 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
15705 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
15706 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
15707 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
15708 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
15709 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
15710 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
15711 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15712 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
15713 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
15714 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
15715 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
15716 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
15717 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
15718 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
15719 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
15720 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
15721 web.c: Remove initializer for pass_data::has_execute.
15723 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
15725 * graphite-htab.h: Use hash_map instead of hash_table.
15726 * graphite-clast-to-gimple.c: Adjust.
15727 * passes.c: Use hash_map instead of hash_table.
15728 * sese.c: Likewise.
15729 * sese.h: Remove now unused code.
15731 2014-07-08 Sriraman Tallam <tmsriram@google.com>
15734 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
15737 2014-07-08 Jakub Jelinek <jakub@redhat.com>
15739 PR rtl-optimization/61673
15740 * combine.c (simplify_comparison): Test just mode's sign bit
15741 in tmode rather than the sign bit and any bits above it.
15743 2014-07-08 Roman Gareev <gareevroman@gmail.com>
15745 * graphite-isl-ast-to-gimple.c (generate_isl_context):
15746 Add __isl_give to the declaration.
15747 (generate_isl_schedule): Likewise.
15748 (scop_to_isl_ast): Likewise.
15750 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15752 * config/arm/arm.c (cortexa5_extra_costs): New table.
15753 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
15755 2014-07-08 Jakub Jelinek <jakub@redhat.com>
15757 PR tree-optimization/61725
15758 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
15759 range, use range_includes_zerop_p instead of integer_zerop on
15760 vr0->min, only use log2 of max if min is not negative.
15762 2014-07-08 Richard Biener <rguenther@suse.de>
15764 * tree-ssa-dom.h (loop_depth_of_name): Remove.
15765 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
15766 restriction on loop depth difference.
15767 (record_equality): Likewise.
15768 (propagate_rhs_into_lhs): Likewise. Simplify condition.
15769 (loop_depth_of_name): Remove.
15770 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
15771 restriction on loop depth difference.
15772 (init_copy_prop): Likewise.
15774 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
15776 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
15778 (walk_aliased_vdefs): Likewise.
15779 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
15780 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
15781 (detect_type_change_from_memory_writes): Check if entry was reached.
15783 2014-07-08 Richard Biener <rguenther@suse.de>
15785 PR tree-optimization/61681
15786 * tree-ssa-structalias.c (find_what_var_points_to): Expand
15787 NONLOCAL inside ESCAPED.
15789 2014-07-08 Richard Biener <rguenther@suse.de>
15791 PR tree-optimization/61680
15792 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
15793 Handle properly all read-write dependences with group accesses.
15795 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
15797 PR tree-optimization/61576
15798 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
15799 block containing reduction statement is predecessor of phi basi block.
15801 2014-07-08 Marek Polacek <polacek@redhat.com>
15804 * fold-const.c (round_up_loc): Change the parameter type.
15806 * fold-const.h (round_up_loc): Adjust declaration.
15807 * stor-layout.c (finalize_record_size): Check for too large types.
15809 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
15811 * symtab.c: Include calls.h.
15812 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
15814 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
15816 * config/rs6000/rs6000.c (output_vec_const_move): Handle
15817 little-endian code generation.
15818 * config/rs6000/spe.md (spe_evmergehi): Rename to...
15819 (vec_perm00_v2si): ... this. Handle little-endian code generation.
15820 (spe_evmergehilo): Rename to...
15821 (vec_perm01_v2si): ... this. Handle little-endian code generation.
15822 (spe_evmergelo): Rename to...
15823 (vec_perm11_v2si): ... this. Handle little-endian code generation.
15824 (spe_evmergelohi): Rename to...
15825 (vec_perm10_v2si): ... this. Handle little-endian code generation.
15826 (spe_evmergehi, spe_evmergehilo): New expanders.
15827 (spe_evmergelo, spe_evmergelohi): Likewise.
15828 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
15829 (*frob_tf_ti): Likewise.
15830 (*frob_<mode>_di_2): Likewise.
15831 (*frob_tf_di_8_2): Likewise.
15832 (*frob_di_<mode>): Likewise.
15833 (*frob_ti_tf): Likewise.
15834 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
15835 (*frob_ti_<mode>_8_2): Likewise.
15836 (*frob_ti_tf_2): Likewise.
15837 (mov_si<mode>_e500_subreg0): Rename to...
15838 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
15840 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
15841 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
15842 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
15843 the big endianness only.
15844 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
15845 (*mov_si<mode>_e500_subreg0_2): Rename to...
15846 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
15847 big big endianness only.
15848 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
15849 (*mov_si<mode>_e500_subreg4): Rename to...
15850 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
15852 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
15853 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
15854 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
15855 the big endianness only.
15856 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
15858 (*mov_si<mode>_e500_subreg4_2): Rename to...
15859 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
15861 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
15862 (*mov_sitf_e500_subreg8): Rename to...
15863 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
15865 (*mov_sitf_e500_subreg8_le): New instruction pattern.
15866 (*mov_sitf_e500_subreg8_2): Rename to...
15867 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
15869 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
15870 (*mov_sitf_e500_subreg12): Rename to...
15871 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
15873 (*mov_sitf_e500_subreg12_le): New instruction pattern.
15874 (*mov_sitf_e500_subreg12_2): Rename to...
15875 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
15877 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
15879 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
15881 * asan.c (instrument_strlen_call): Do not instrument first byte
15882 in strlen if already instrumented.
15884 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15886 * config/arm/arm.opt (mwords-little-endian): Delete.
15887 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
15888 of TARGET_LITTLE_WORDS.
15889 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
15890 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
15892 * doc/invoke.texi: Remove references to -mwords-little-endian.
15894 2014-07-07 Jakub Jelinek <jakub@redhat.com>
15896 * expmed.c (struct init_expmed_rtl): Change all fields but
15897 pow2 and cint from struct rtx_def to rtx.
15898 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
15899 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
15902 2014-07-06 Marek Polacek <polacek@redhat.com>
15905 * doc/invoke.texi: Document -Wsizeof-array-argument.
15907 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
15909 * wide-int.h (wide_int_storage): Change declaration from struct
15912 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
15914 * cgraph.c (cgraph_create_indirect_edge): Update call of
15915 get_polymorphic_call_info.
15916 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
15917 (possible_polymorphic_call_targets): Add parameter call.
15918 (decl_maybe_in_construction_p): New predicate.
15919 (get_polymorphic_call_info): Add parameter call;
15920 use decl_maybe_in_construction_p.
15921 * gimple-fold.c (fold_gimple_assign): Update use of
15922 possible_polymorphic_call_targets.
15923 (gimple_fold_call): Likewise.
15924 * ipa-prop.c: Inlcude calls.h
15925 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
15926 (param_type_may_change_p): New predicate.
15927 (detect_type_change_from_memory_writes): Break out from ...
15928 (detect_type_change): ... this one; use param_type_may_change_p.
15929 (detect_type_change_ssa): Use param_type_may_change_p.
15930 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
15932 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
15935 * config/arm/arm-protos.h (arm_legitimate_address_p,
15936 arm_is_constant_pool_ref): Add prototypes.
15937 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
15938 (arm_is_constant_pool_ref) New function.
15939 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
15940 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
15941 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
15942 operand. Remove pool_range and neg_pool_range attributes.
15943 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
15944 pool_range and neg_pool_range attributes.
15945 * config/arm/constraints.md (Uh): New constraint.
15946 (Uq): Don't allow constant pool references.
15948 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
15950 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
15951 (move_lo_quad_internal_be_<mode>): Likewise.
15952 (move_lo_quad_<mode>): Convert to define_expand.
15953 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
15954 (aarch64_simd_move_hi_quad_be_<mode>): New.
15955 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
15956 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
15957 (aarch64_combinez_be<mode>): New.
15958 (aarch64_combine<mode>): Convert to define_expand.
15959 (aarch64_combine_internal<mode>): New.
15960 (aarch64_simd_combine<mode>): Remove bogus RTL description.
15962 2014-07-04 Tom de Vries <tom@codesourcery.com>
15964 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
15965 combination of earlyclobber and read/write modifiers.
15967 2014-07-04 Tom de Vries <tom@codesourcery.com>
15969 * config/aarch64/aarch64-simd.md
15970 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
15972 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
15975 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
15977 2014-07-04 Jakub Jelinek <jakub@redhat.com>
15979 PR middle-end/61654
15980 * cgraphunit.c (expand_thunk): Call free_dominance_info.
15982 PR tree-optimization/61684
15983 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
15984 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
15986 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
15987 Kito Cheng <kito@0xlab.org>
15988 Monk Chiang <sh.chiang04@gmail.com>
15990 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
15991 (nds32_symbol_load_store_p): Move to ...
15992 (nds32_fp_as_gp_check_available): Move to ...
15993 * config/nds32/nds32-fp-as-gp.c: ... here.
15994 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
15995 extern declaration.
15997 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
15998 Kito Cheng <kito@0xlab.org>
15999 Monk Chiang <sh.chiang04@gmail.com>
16001 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
16002 (nds32_expand_store_multiple): Move to ...
16003 (nds32_expand_movmemqi): Move to ...
16004 * config/nds32/nds32-memory-manipulation.c: ... here.
16006 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16007 Kito Cheng <kito@0xlab.org>
16008 Monk Chiang <sh.chiang04@gmail.com>
16010 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
16011 (nds32_output_casesi_pc_relative): Move to ...
16012 (nds32_output_casesi): Move to ...
16013 (nds32_mem_format): Move to ...
16014 (nds32_output_16bit_store): Move to ...
16015 (nds32_output_16bit_load): Move to ...
16016 (nds32_output_32bit_store): Move to ...
16017 (nds32_output_32bit_load): Move to ...
16018 (nds32_output_32bit_load_s): Move to ...
16019 (nds32_output_stack_push): Move to ...
16020 (nds32_output_stack_pop): Move to ...
16021 * config/nds32/nds32-md-auxiliary.c: ... here.
16023 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16024 Ling-Hua Tseng <uranus@tinlans.org>
16026 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
16027 the purpose of this file.
16029 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16030 Kito Cheng <kito@0xlab.org>
16031 Monk Chiang <sh.chiang04@gmail.com>
16033 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
16034 (nds32_address_cost): Move implementation to ...
16035 * config/nds32/nds32-cost.c: ... here.
16036 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
16037 (nds32_address_cost_impl): Declare.
16039 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16040 Kito Cheng <kito@0xlab.org>
16041 Monk Chiang <sh.chiang04@gmail.com>
16043 * config/nds32/nds32.c
16044 (nds32_consecutive_registers_load_store_p): Move to ...
16045 (nds32_valid_multiple_load_store): Move to ...
16046 (nds32_valid_stack_push_pop): Move to ...
16047 (nds32_can_use_bclr_p): Move to ...
16048 (nds32_can_use_bset_p): Move to ...
16049 (nds32_can_use_btgl_p): Move to ...
16050 (nds32_can_use_bitci_p): Move to ...
16051 * config/nds32/nds32-predicates.c: ... here.
16053 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16054 Kito Cheng <kito@0xlab.org>
16055 Monk Chiang <sh.chiang04@gmail.com>
16057 * config/nds32/nds32.c
16058 (nds32_expand_builtin_null_ftype_reg): Move to ...
16059 (nds32_expand_builtin_reg_ftype_imm): Move to ...
16060 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
16061 (nds32_init_builtins): Move implementation to ...
16062 (nds32_expand_builtin): Move implementation to ...
16063 * config/nds32/nds32-intrinsic.c: ... here.
16064 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
16065 (nds32_expand_builtin_impl): Declare.
16067 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16068 Kito Cheng <kito@0xlab.org>
16069 Monk Chiang <sh.chiang04@gmail.com>
16071 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
16072 (nds32_emit_section_tail_template): Move to ...
16073 (nds32_emit_isr_jmptbl_section): Move to ...
16074 (nds32_emit_isr_vector_section): Move to ...
16075 (nds32_emit_isr_reset_conten): Move to ...
16076 (nds32_check_isr_attrs_conflict): Move to ...
16077 (nds32_construct_isr_vectors_information): Move to ...
16078 (nds32_asm_file_start): Move implementation to ...
16079 (nds32_asm_file_end): Move implementation to ...
16080 * config/nds32/nds32-isr.c: ... here.
16081 * config/nds32/nds32-protos.h
16082 (nds32_check_isr_attrs_conflict): Declare.
16083 (nds32_construct_isr_vectors_information): Declare.
16084 (nds32_asm_file_start_for_isr): Declare.
16085 (nds32_asm_file_end_for_isr): Declare.
16087 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
16088 Kito Cheng <kito@0xlab.org>
16089 Monk Chiang <sh.chiang04@gmail.com>
16091 * config.gcc (nds32*): Add new modules to extra_objs.
16092 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
16093 (nds32be-*-*): Likewise.
16094 * config/nds32/nds32-cost.c: New file.
16095 * config/nds32/nds32-fp-as-gp.c: New file.
16096 * config/nds32/nds32-intrinsic.c: New file.
16097 * config/nds32/nds32-isr.c: New file.
16098 * config/nds32/nds32-md-auxiliary.c: New file.
16099 * config/nds32/nds32-memory-manipulation.c: New file.
16100 * config/nds32/nds32-pipelines-auxiliary.c: New file.
16101 * config/nds32/nds32-predicates.c: New file.
16102 * config/nds32/t-nds32: New file.
16104 2014-07-03 Jakub Jelinek <jakub@redhat.com>
16106 PR tree-optimization/61682
16107 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
16108 using cases and when one of the operands is equal to 1.
16110 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
16112 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
16113 ashr<mode>3): Correct mode of operands[2].
16114 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
16115 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
16116 Correct mode of operands[2]. Fix split condition.
16118 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
16120 * arm.md (arch): Add armv6_or_vfpv3.
16121 (arch_enabled): Add test for the above.
16122 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
16124 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
16126 2014-07-03 Jakub Jelinek <jakub@redhat.com>
16128 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
16129 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
16130 HWI 1 and negate the unsigned value.
16131 * expmed.c (expand_sdiv_pow2): For modes wider than word always
16132 use AND instead of shift.
16133 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
16135 2014-07-03 Marek Polacek <polacek@redhat.com>
16137 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
16138 (-fsanitize=float-divide-by-zero): Move to the table with
16139 -fsanitize=undefined suboptions.
16140 (-fsanitize=float-cast-overflow): Likewise.
16142 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
16144 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
16145 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
16148 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
16150 * loop-invariant.c (struct invariant): Add a new member: eqno;
16151 (find_identical_invariants): Update eqno;
16152 (create_new_invariant): Init eqno;
16153 (get_inv_cost): Compute comp_cost with eqno;
16155 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
16157 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
16158 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
16159 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
16160 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
16161 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
16163 2014-07-02 Christian Bruel <christian.bruel@st.com>
16167 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
16168 (make_preds_opaque): Delete.
16169 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
16170 (commit_mode_sets): New function.
16171 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
16172 Process all modes at once.
16173 * basic-block.h (pre_edge_lcm_avs): Declare.
16174 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
16175 Call clear_aux_for_edges. Fix comments.
16176 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
16177 (pre_edge_rev_lcm): Idem.
16178 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
16180 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
16181 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
16183 * config/i386/i386.c (x96_emit_mode_set): Idem.
16184 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
16185 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
16186 (fpscr_toggle) Disallow from delay slot.
16187 * target.def (emit_mode_set): Add prev_mode parameter.
16188 * doc/tm.texi: Regenerate.
16190 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16192 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
16195 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
16197 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
16198 vtable_pointer_value_to_vtable): Constify.
16199 (contains_polymorphic_type_p): Declare.
16200 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
16201 vtable_pointer_value_to_vtable): Constify.
16202 (contains_polymorphic_type_p): New predicate.
16203 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
16205 (ipa_set_ancestor_jf): Likewise.
16206 (detect_type_change): Return false in easy cases.
16207 (compute_complex_assign_jump_func): Require type to contain
16209 (compute_known_type_jump_func): Likewise.
16211 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
16213 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
16215 (type_in_anonymous_namespace_p): Constify argument.
16216 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
16217 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
16218 (main_odr_variant): New function.
16219 (hash_type_name): Make static; update assert; do not ICE on
16221 (types_same_for_odr): Bring here from tree.c; simplify and remove
16222 old structural comparing code that doesn't work for templates.
16223 (odr_hasher::equal): Update assert.
16224 (add_type_duplicate): Return true when bases should be computed;
16225 replace incomplete loader by complete; do not output duplicated
16226 warnings; do not ICE on non-records; set odr_violated flag.
16227 (get_odr_type): Be ready to replace incomplete type by complete
16228 one; work on ODR variants instead of main variants; reorder item
16229 in array so bases have still smaller indexes.
16230 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
16231 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
16233 2014-07-01 Cary Coutant <ccoutant@google.com>
16235 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
16237 (resolve_addr_in_expr): When replacing the rtx in a location list
16238 entry, get a new address table entry.
16239 (dwarf2out_finish): Call index_location_lists even if there are no
16240 addr_index_table entries yet.
16242 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
16244 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
16245 change for not being obvious.
16247 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
16249 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
16252 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16254 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
16255 (vcagt_f64): Likewise.
16256 (vcale_f64): Likewise.
16257 (vcaled_f64): Likewise.
16258 (vcales_f32): Likewise.
16259 (vcalt_f64): Likewise.
16260 (vcaltd_f64): Likewise.
16261 (vcalts_f32): Likewise.
16263 2014-07-01 Marek Polacek <polacek@redhat.com>
16265 * doc/invoke.texi: Document -Wint-conversion.
16267 2014-07-01 Marek Polacek <polacek@redhat.com>
16270 * doc/invoke.texi: Document -Wincompatible-pointer-types.
16272 2014-07-01 Martin Liska <mliska@suse.cz>
16274 IPA REF alias refactoring
16275 * cgraph.h (iterate_direct_aliases): New function.
16276 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
16277 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
16278 FOR_EACH_ALIAS added.
16279 (cgraph_for_node_and_aliases): Likewise.
16280 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
16281 * ipa-inline.c (reset_edge_caches): Likewise.
16282 (update_caller_keys): Likewise.
16283 * trans-mem.c (ipa_tm_execute): Likewise.
16284 *varpool.c (varpool_analyze_node): Likewise.
16285 (varpool_for_node_and_aliases): Likewise.
16286 * ipa-ref.h (first_alias): New function.
16287 (last_alias): Likewise.
16288 (has_aliases_p): Likewise.
16289 * ipa-ref.c (ipa_ref::remove_reference): Removal function
16290 is sensitive to IPA_REF_ALIASes.
16291 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
16292 are put at the beginning of the list.
16293 (symtab_node::iterate_direct_aliases): New function.
16295 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16298 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
16300 (write_ts_type_common_tree_pointers): Do not stream fields not set
16301 for incomplete types; do not stream duplicated fields for variants;
16302 sanity check that variant and type match.
16303 (write_ts_type_non_common_tree_pointers): Likewise.
16304 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
16305 TYPE_SIZE whether type is complete.
16306 (lto_input_ts_type_common_tree_pointers): Do same changes as in
16307 write_ts_type_common_tree_pointers
16308 (lto_input_ts_type_non_common_tree_pointers): Likewise.
16310 2014-06-30 Joseph Myers <joseph@codesourcery.com>
16312 * var-tracking.c (add_stores): Return instead of asserting if old
16313 and new values for conditional store are the same.
16315 2014-06-30 Richard Henderson <rth@redhat.com>
16319 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
16320 the cfg if there were any changes.
16321 * passes.def: Revert move of peephole2 after reorder_blocks;
16322 move duplicate_computed_gotos before peephole2.
16324 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
16326 * except.c (emit_note_eh_region_end): New helper function.
16327 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
16328 emit EH_REGION_END note.
16329 * jump.c (cleanup_barriers): Do not split a call and its
16330 corresponding CALL_ARG_LOCATION note.
16332 2014-06-30 Jeff Law <law@redhat.com>
16334 PR tree-optimization/61607
16335 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
16336 deeper into the SSA_NAME_VALUE chain.
16338 2014-06-30 Marek Polacek <polacek@redhat.com>
16340 * convert.c (convert_to_integer): Don't instrument conversions if the
16341 function has no_sanitize_undefined attribute.
16342 * ubsan.c: Don't run the ubsan pass if the function has
16343 no_sanitize_undefined attribute.
16345 2014-06-30 Jakub Jelinek <jakub@redhat.com>
16347 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
16348 -fsanitize=undefined suboptions.
16350 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
16352 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
16353 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
16354 against bigendian and adjust indices.
16356 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
16358 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
16360 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
16363 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
16364 Add alternative; make early clobber. Adjust both split patterns
16365 to use operand 0 as the working register.
16367 2014-06-30 Jakub Jelinek <jakub@redhat.com>
16369 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
16370 as ira_object_id_map might be NULL, or 1.
16372 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
16374 * loop-invariant.c (get_inv_cost): Handle register class.
16375 (gain_for_invariant): Check the register pressure of the inv
16376 and its overlapped register class, other than all.
16378 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
16380 * doc/invoke.texi (Optimize Options): Fix descriptions of
16381 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
16383 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
16385 * doc/extend.texi (Function Attributes): Update 'naked' attribute
16388 2014-06-29 Tobias Grosser <tobias@grosser.es>
16391 * graphite-isl-ast-to-gimple.c: Add missing guards.
16393 2014-06-29 Roman Gareev <gareevroman@gmail.com>
16395 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
16396 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
16397 * flag-types.h: Add new enum fgraphite_generator.
16398 * graphite-isl-ast-to-gimple.c: New.
16399 * graphite-isl-ast-to-gimple.h: New.
16400 * graphite.c (graphite_transform_loops): Add choice of Graphite
16401 code generator, which depends on flag_graphite_code_gen.
16403 2014-06-29 Roman Gareev <gareevroman@gmail.com>
16405 * graphite-dependences.c (subtract_commutative_associative_deps):
16406 Add NULL checking of the following variables: must_raw_no_source,
16407 may_raw_no_source, must_war_no_source, may_war_no_source,
16408 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
16409 must_war, may_war, must_waw, may_waw.
16411 2014-06-29 Roman Gareev <gareevroman@gmail.com>
16413 * graphite-clast-to-gimple.c: gloog is renamed to
16414 graphite_regenerate_ast_cloog. gloog_error is renamed to
16415 graphite_regenerate_error.
16416 * graphite-clast-to-gimple.h: The definition of the struct
16417 bb_pbb_def is moved to graphite-htab.h.
16418 Add inclusion of the hash-table.h.
16419 * graphite-htab.h: The declaration of the function gloog is moved
16420 to graphite-clast-to-gimple.h and renamed to
16421 graphite_regenerate_ast_cloog.
16422 * graphite.c (graphite_transform_loops): gloog is renamed
16423 to graphite_regenerate_ast_cloog.
16425 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16427 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
16429 (write_ts_type_common_tree_pointers): Do not stream fields not set
16430 for incomplete types; do not stream duplicated fields for variants;
16431 sanity check that variant and type match.
16432 (write_ts_type_non_common_tree_pointers): Likewise.
16433 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
16434 TYPE_SIZE whether type is complete.
16435 (lto_input_ts_type_common_tree_pointers): Do same changes as in
16436 write_ts_type_common_tree_pointers
16437 (lto_input_ts_type_non_common_tree_pointers): Likewise.
16439 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16441 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
16443 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16445 * tree-inline.c (remap_type_1): Do not duplicate fields
16446 that are shared in between type and its main variant.
16448 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16450 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
16452 (ipa_set_ancestor_jf) Likewise.
16453 (check_stmt_for_type_change): Check that we work on main variant.
16454 (detect_type_change): Look into main variant.
16455 (compute_known_type_jump_func): Check that main variant has BINFO.
16457 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16459 * ipa-devirt.c (set_type_binfo): New function.
16460 (add_type_duplicate): Use it.
16461 (get_odr_type): Sanity check that binfos points to main variants.
16462 (get_class_context): Be sure the context's outer_type is main variant.
16463 (contains_type_p): Walk main variant.
16464 (get_polymorphic_call_info_for_decl): Set outer_type to be
16466 (get_polymorphic_call_info): Likewise.
16467 (possible_polymorphic_call_targets): Sanity check that we operate
16470 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
16472 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
16474 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16476 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
16477 accidental change due to wide-int branch merge.
16479 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16481 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
16482 compressed debug support.
16483 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
16484 * configure: Regenerate.
16485 * config.in: Regenerate.
16486 * common.opt (compressed_debug_sections): New enum.
16487 (gz, gz=): New options.
16488 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
16489 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
16490 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
16491 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
16492 LINK_COMPRESS_DEBUG_SPEC.
16493 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
16494 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
16495 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
16496 (Debugging Options): Document -gz[=type].
16498 2014-06-27 Martin Jambor <mjambor@suse.cz>
16501 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
16502 args_to_skip, use those from node instead. Copy args_to_skip and
16503 combined_args_to_skip from node to the new thunk.
16504 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
16505 (cgraph_create_virtual_clone): Moved computation of
16506 combined_args_to_skip...
16507 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
16509 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
16511 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
16512 redundant diagnostic machinary.
16514 2014-06-27 Richard Biener <rguenther@suse.de>
16516 * tree-ssa-math-opts.c (bswap_replace): Fix
16517 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
16519 2014-06-27 Martin Liska <mliska@suse.cz>
16521 * gimple.h (gimple_location_safe): New function introduced.
16522 * cgraphunit.c (walk_polymorphic_call_targets): Usage
16523 of gimple_location_safe replaces gimple_location.
16524 (gimple_fold_call): Likewise.
16525 * ipa-devirt.c (ipa_devirt): Likewise.
16526 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16527 * ipa.c (walk_polymorphic_call_targets): Likewise.
16528 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
16530 2014-06-27 Jakub Jelinek <jakub@redhat.com>
16532 PR tree-optimization/57233
16533 PR tree-optimization/61299
16534 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
16536 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
16537 would be lowered to scalar shifts, check if corresponding
16538 shifts and vector BIT_IOR_EXPR are supported and don't lower
16539 or lower just to narrower vector type in that case.
16540 * expmed.c (expand_shift_1): Fix up handling of vector
16541 shifts and rotates.
16543 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
16546 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
16548 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
16550 * doc/invoke.texi (-fsemantic-interposition): Document.
16551 * common.opt (fsemantic-interposition): New flag.
16552 * varasm.c (decl_replaceable_p): Use it.
16554 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16557 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
16558 extraction other than index 3.
16560 2014-06-26 Teresa Johnson <tejohnson@google.com>
16562 * doc/invoke.texi: Fix typo.
16563 * dumpfile.c: Add support for documented -fdump-* options
16564 optimized/missed/note/optall.
16566 2014-06-26 Martin Jambor <mjambor@suse.cz>
16568 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
16569 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
16570 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
16571 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
16572 * opts.c (default_options_optimization): Set
16573 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
16574 * doc/invoke.texi (allow-load-data-races)
16575 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
16576 (allow-store-data-races): Document the new default.
16578 2014-06-26 Martin Jambor <mjambor@suse.cz>
16580 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
16581 renamed to ipa_impossible_devirt_target. Fix typo.
16582 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
16583 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
16584 ipa_impossible_devirt_target.
16586 2014-06-26 Richard Biener <rguenther@suse.de>
16588 PR tree-optimization/61607
16589 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
16590 explaining why we restrict copies on loop depth.
16591 * tree-ssa-dom.c (cprop_operand): Remove restriction on
16593 (record_equivalences_from_phis): Instead add it here.
16595 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
16597 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
16598 (LTO_WRAPPER_OBJS): New variable.
16599 (lto-wrapper$(exeext)): Use it.
16600 * collect2.c: Include "collect-utils.h".
16601 (verbose, debug): Remove variables.
16602 (at_file_supplied): No longer static.
16603 (tool_name): New variable.
16604 (do_wait, fork_execute, maybe_unlink): Don't declare.
16605 (tool_cleanup): No longer static.
16606 (notice): Remove function.
16607 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
16608 fork_execute calls.
16609 (collect_wait, do_wait, collect_execute): Remove functions.
16610 (maybe_unlink): No longer static.
16611 * collect2.h (verbose, debug): Don't declare.
16612 (at_file_supplied): Declare.
16613 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
16615 (collect_execute): Replace with implementation from collect2, plus a
16616 new arg use_atfile. All callers changed.
16617 (collect_wait): Replace with implementation from collect2.
16618 (maybe_unlink_file): Remove function.
16619 (fork_execute): Replace with implementation from collect2, plus a
16620 new arg use_atfile. All callers changed.
16621 (do_wait): Add call to utils_cleanup to the error path.
16622 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
16623 (tool_cleanup): Adjust declarations.
16624 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
16625 * tlink.c: Include "collect-utils.h".
16626 (tlink_execute): New arg use_atfile. All callers changed.
16627 (tlink_init, tlink_execute): Remove declarations.
16629 * collect-utils.c (save_temps): New variable.
16630 (do_wait): Use it instead of debug. Use fatal_error.
16631 * collect-utils.h (save_temps): Declare.
16632 * collect2.c (verbose): Rename from vflag. All uses changed.
16633 (tool_cleanup): New function, copied from collect_atexit.
16634 (collect_atexit, handler): Just call it.
16635 * collect2.h (verbose): Declaration renamed from vflag.
16636 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
16639 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
16640 (lto-wrapper$(exeext)): Link with collect-utils.o.
16641 * collect-utils.c: New file.
16642 * collect-utils.h: New file.
16643 * lto-wrapper.c: Include "collect-utils.h".
16644 (args_name): Delete variable.
16645 (tool_name): New variable.
16646 (tool_cleanup): New function.
16647 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
16648 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
16649 (fork_execute): Remove functions.
16651 2014-06-26 Nick Clifton <nickc@redhat.com>
16653 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
16655 * doc/extend.texi (Function Attributes): Fix typo in description
16656 of RX vector attribute.
16658 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
16660 * config.gcc (supported_defaults): Error when passing either
16661 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
16663 2014-06-26 Richard Biener <rguenther@suse.de>
16665 * tree-ssa-dom.c (cprop_operand): Remove restriction on
16666 propagating volatile pointers.
16668 2014-06-26 Richard Biener <rguenther@suse.de>
16670 PR tree-optimization/61607
16671 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
16672 loop if we redirected its latch edge.
16673 (thread_block_1): Do not cancel loops prematurely.
16675 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
16677 * toplev.c (backend_init_target): Move init_emit_regs and
16679 (backend_init) ... here; skip ira_init_once and backend_init_target.
16680 (target_reinit) ... and here; clear
16681 this_target_rtl->lang_dependent_initialized.
16682 (lang_dependent_init_target): Clear
16683 this_target_rtl->lang_dependent_initialized;
16684 break out rtl initialization to ...
16685 (initialize_rtl): ... here; call also backend_init_target
16687 * toplev.h (initialize_rtl): New function.
16688 * function.c: Include toplev.h
16689 (init_function_start): Call initialize_rtl.
16690 * rtl.h (target_rtl): Add target_specific_initialized,
16691 lang_dependent_initialized.
16693 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
16694 Jakub Jelinek <jakub@redhat.com>
16696 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
16698 2014-06-25 Tom de Vries <tom@codesourcery.com>
16700 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
16702 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
16704 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
16705 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
16706 Issue a strict overflow warning if appropriate.
16708 2014-06-25 Martin Liska <mliska@suse.cz>
16710 IPA REF refactoring
16711 * Makefile.in: Removed header file (ipa-ref-inline.h).
16712 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
16714 (cgraph_speculative_call_info): Likewise.
16715 (cgraph_for_node_thunks_and_aliases): Likewise.
16716 (cgraph_for_node_and_aliases): Likewise.
16717 (verify_cgraph_node): Likewise.
16718 * cgraph.h: Batch of IPA REF functions become member functions of
16719 symtab_node: add_reference, maybe_add_reference, clone_references,
16720 clone_referring, clone_reference, find_reference,
16721 remove_stmt_references, remove_all_references,
16722 remove_all_referring, dump_references, dump_referring,
16723 has_alias_p, iterate_reference, iterate_referring.
16724 * cgraphbuild.c (record_reference): New IPA REF function used.
16725 (record_type_list): Likewise.
16726 (record_eh_tables): Likewise.
16727 (mark_address): Likewise.
16728 (mark_load): Likewise.
16729 (mark_store): Likewise.
16730 (pass_build_cgraph_edges): Likewise.
16731 (rebuild_cgraph_edge): Likewise.
16732 (cgraph_rebuild_references): Likewise.
16733 (pass_remove_cgraph_callee_edges): Likewise.
16734 * cgraphclones.c (cgraph_clone_node): Likewise.
16735 (cgraph_create_virtual_clone): Likewise.
16736 (cgraph_materialize_clone): Likewise.
16737 (cgraph_materialize_all_clones): Likewise.
16738 * cgraphunit.c (cgraph_reset_node): Likewise.
16739 (cgraph_reset_node): Likewise.
16740 (analyze_function): Likewise.
16741 (assemble_thunks_and_aliases): Likewise.
16742 (expand_function): Likewise.
16743 * ipa-comdats.c (propagate_comdat_group): Likewise.
16744 (enqueue_references): Likewise.
16745 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
16746 (create_specialized_node): Likewise.
16747 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
16748 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
16749 * ipa-inline.c (reset_edge_caches): Likewise.
16750 (update_caller_keys): Likewise.
16751 (execute): Likewise.
16752 * ipa-prop.c (remove_described_reference): Likewise.
16753 (propagate_controlled_uses): Likewise.
16754 (ipa_edge_duplication_hook): Likewise.
16755 (ipa_modify_call_arguments): Likewise.
16756 * ipa-pure-const.c (propagate_pure_const): Likewise.
16757 * ipa-ref-inline.h: Header file removed, functions moved
16758 to symtab_node class.
16759 * ipa-ref.c (remove_reference): New class member function.
16760 (cannot_lead_to_return): New class member function.
16761 (referring_ref_list): Likewise.
16762 (referred_ref_list): Likewise.
16763 Rest of functions moved to symtab_node class.
16764 * ipa-ref.h: New member functions remove_reference,
16765 cannot_lead_to_return, referring_ref_list, referred_ref_list added
16767 ipa_ref_list class has new member functions: first_reference,
16768 first_referring, clear, nreferences.
16769 * ipa-reference.c (analyze_function): New IPA REF function used.
16770 (write_node_summary_p): Likewise.
16771 (ipa_reference_write_optimization_summary): Likewise.
16772 * ipa-split.c (split_function): Likewise.
16773 * ipa-utils.c (ipa_reverse_postorder): Likewise.
16774 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
16775 (function_and_variable_visibility): Likewise.
16776 * ipa.c (has_addr_references_p): Likewise.
16777 (process_references): Argument type changed.
16778 (symtab_remove_unreachable_nodes): New IPA REF function used.
16779 (process_references): Likewise.
16780 (set_writeonly_bit): Likewise.
16781 * lto-cgraph.c: Implementation of new symtab_node member functions
16782 that uses new IPA REF functions.
16783 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
16785 * lto-streamer-out.c (output_symbol_p): Likewise.
16786 * lto-streamer.h (referenced_from_this_partition_p): Argument type
16788 * symtab.c: Implementation of new IPA REF API.
16789 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
16790 (ipa_tm_create_version): Likewise.
16791 (ipa_tm_execute): Likewise.
16792 * tree-emutls.c (gen_emutls_addr): Likewise.
16793 * tree-inline.c (copy_bb): Likewise.
16794 (delete_unreachable_blocks_update_callgraph): Likewise.
16795 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
16796 (varpool_for_node_and_aliases): Likewise.
16798 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
16800 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
16802 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
16805 * fold-const.c (fold_checksum_tree): Use a hash_table of const
16806 tree_node * instead of tree_node *.
16808 (print_fold_checksum): Likewise.
16809 (fold_check_failed): Likewise.
16810 (debug_fold_checksum): Likewise.
16811 (fold_build1_stat_loc): Likewise.
16812 (fold_build2_stat_loc): Likewise.
16813 (fold_build3_stat_loc): Likewise.
16814 (fold_build_call_array_loc): Likewise.
16816 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
16818 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
16819 implementation with call to...
16820 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
16822 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
16825 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
16827 PR tree-optimization/57742
16828 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
16829 after replacing the statement.
16831 2014-06-25 Nick Clifton <nickc@redhat.com>
16833 * config/v850/v850.c (GHS_default_section_names): Change to const
16835 (GHS_current_section_names): Likewise.
16836 (v850_insert_attributes): Do not build strings, just assign the
16837 names directly. Change the type of 'chosen_section' to const
16839 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
16840 directly to the array entry.
16841 * config/v850/v850.h (GHS_default_section_names): Change to const
16843 (GHS_current_section_names): Likewise.
16845 2014-06-25 Jakub Jelinek <jakub@redhat.com>
16847 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
16848 (LANG_HOOKS_DECLS): Add it.
16849 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
16851 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
16852 * langhooks.h (struct lang_hooks_for_decls): Add
16853 omp_clause_linear_ctor hook.
16854 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
16855 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
16856 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
16857 combined simd loop use omp_clause_linear_ctor hook.
16859 2014-06-24 Cong Hou <congh@google.com>
16861 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
16862 pattern recognition.
16863 (type_conversion_p): PROMOTION is true if it's a type promotion
16864 conversion, and false otherwise. Return true if the given expression
16865 is a type conversion one.
16866 * tree-vectorizer.h: Adjust the number of patterns.
16867 * tree.def: Add SAD_EXPR.
16868 * optabs.def: Add sad_optab.
16869 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
16870 * expr.c (expand_expr_real_2): Likewise.
16871 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
16872 * gimple.c (get_gimple_rhs_num_ops): Likewise.
16873 * optabs.c (optab_for_tree_code): Likewise.
16874 * tree-cfg.c (estimate_operator_cost): Likewise.
16875 * tree-ssa-operands.c (get_expr_operands): Likewise.
16876 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
16877 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
16878 * doc/generic.texi: Add document for SAD_EXPR.
16879 * doc/md.texi: Add document for ssad and usad.
16881 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
16883 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
16884 qualification in cast.
16886 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
16888 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
16889 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
16890 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
16891 (tree_function_decl): ... here.
16892 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
16893 streaming of vindex to ...
16894 (write_ts_function_decl_tree_pointers): ... here.
16895 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
16896 Do not stream DECL_VINDEX.
16897 (lto_input_ts_function_decl_tree_pointers): Stream it here.
16899 2014-06-24 Catherine Moore <clm@codesourcery.com>
16900 Sandra Loosemore <sandra@codesourcery.com>
16902 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
16903 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
16904 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
16906 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
16908 * doc/invoke.texi (Warning Options): Remove duplicated
16909 -Wmaybe-uninitialized.
16911 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
16913 PR tree-optimization/57742
16914 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
16915 (handle_builtin_malloc, handle_builtin_memset): New functions.
16916 (strlen_optimize_stmt): Call them.
16917 * passes.def: Move strlen after loop+dom but before vrp.
16919 2014-06-24 Jakub Jelinek <jakub@redhat.com>
16922 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
16923 model family 6 CPU with has_longmode never use a CPU without
16926 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
16929 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
16932 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
16934 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
16935 * dominance.c (iterate_fix_dominators): Use hash_map instead of
16937 * hash-map.h: New file.
16938 * ipa-comdats.c: Use hash_map instead of pointer_map.
16940 * lto-section-out.c: Adjust.
16941 * lto-streamer.h: Replace pointer_map with hash_map.
16942 * symtab.c (verify_symtab): Likewise.
16943 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
16944 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
16945 * tree-streamer.h: Likewise.
16946 * tree-streamer.c: Adjust.
16947 * pointer-set.h: Remove pointer_map.
16949 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
16951 * hash-table.h: Add a template arg to choose between storing values
16952 and storing pointers to values, and then provide partial
16953 specializations for both.
16954 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
16955 should store, not the type values should point to.
16956 * tree-into-ssa.c (var_info_hasher): Likewise.
16957 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
16958 * tree-complex.c: Adjust.
16959 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
16960 table instead of int_tree_map *.
16961 * tree-parloops.c: Adjust.
16962 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
16963 type is being stored.
16964 * tree-vectorizer.c: Adjust.
16966 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
16968 * hash-table.h: Remove a layer of indirection from hash_table so that
16969 it contains the hash table's data instead of a pointer to the data.
16970 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
16971 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
16972 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
16973 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
16974 fold-const.c, gcse.c, ggc-common.c,
16975 gimple-ssa-strength-reduction.c, gimplify.c,
16976 graphite-clast-to-gimple.c, graphite-dependences.c,
16977 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
16978 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
16979 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
16980 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
16981 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
16982 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
16983 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
16984 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
16985 tree-ssa-live.c, tree-ssa-loop-im.c,
16986 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
16987 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
16988 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
16989 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
16990 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
16991 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
16992 vtable-verify.c, vtable-verify.h: Adjust.
16994 2014-06-24 Richard Biener <rguenther@suse.de>
16996 PR tree-optimization/61572
16997 * tree-ssa-sink.c (statement_sink_location): Do not sink
16998 loads from hard registers.
17000 2014-06-24 Jakub Jelinek <jakub@redhat.com>
17002 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
17003 not mentioned in clauses use private clause if the iterator is
17004 declared in #pragma omp for simd, and when adding lastprivate
17005 instead, add it to the outer #pragma omp for too. Diagnose
17006 if the variable is private in outer context. For simd collapse > 1
17007 loops, replace all iterators with temporaries.
17008 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
17009 same even in collapse > 1 loops.
17011 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
17012 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
17014 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
17015 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
17017 (gimplify_adjust_omp_clauses): Likewise.
17018 * omp-low.c (lower_rec_simd_input_clauses,
17019 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
17020 safelen the same as safelen(1).
17021 * tree-nested.c (convert_nonlocal_omp_clauses,
17022 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
17023 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
17024 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
17025 Fixup handling of GIMPLE_OMP_TARGET.
17026 (convert_tramp_reference_stmt, convert_gimple_call): Handle
17029 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
17031 PR tree-optimization/61554
17032 * tree-ssa-propagate.c: Include "bitmap.h".
17033 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
17034 properly update constructor/destructor.
17035 (substitute_and_fold_dom_walker::before_dom_children):
17036 Remove call to gimple_purge_dead_eh_edges, add bb->index to
17037 need_eh_cleaup instead.
17038 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
17041 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
17043 * varpool.c (dump_varpool_node): Dump used_by_single_function.
17044 * tree-pass.h (make_pass_ipa_single_use): New pass.
17045 * cgraph.h (used_by_single_function): New flag.
17046 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
17048 * passes.def (pass_ipa_single_use): Scedule.
17049 * ipa.c (BOTTOM): New macro.
17050 (meet): New function
17051 (propagate_single_user): New function.
17052 (ipa_single_use): New function.
17053 (pass_data_ipa_single_use): New pass.
17054 (pass_ipa_single_use): New pass.
17055 (pass_ipa_single_use::gate): New gate.
17056 (make_pass_ipa_single_use): New function.
17058 2014-06-23 Kai Tietz <ktietz@redhat.com>
17061 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
17062 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
17064 2014-06-23 Richard Biener <rguenther@suse.de>
17066 * tree-ssa-loop.c (gate_loop): New function.
17067 (pass_tree_loop::gate): Call it.
17068 (pass_data_tree_no_loop, pass_tree_no_loop,
17069 make_pass_tree_no_loop): New.
17070 * tree-vectorizer.c: Include tree-scalar-evolution.c
17071 (pass_slp_vectorize::execute): Initialize loops and SCEV if
17073 (pass_slp_vectorize::clone): New method.
17074 * timevar.def (TV_TREE_NOLOOP): New.
17075 * tree-pass.h (make_pass_tree_no_loop): Declare.
17076 * passes.def (pass_tree_no_loop): New pass group with
17079 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
17082 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
17083 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
17085 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
17087 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
17088 "yes" where needed.
17090 2014-06-23 Alan Modra <amodra@gmail.com>
17093 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
17094 to zero on debug statements.
17096 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
17099 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
17100 Ignore third operand if present by marking qualifier_internal.
17102 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
17104 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
17106 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
17107 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
17108 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
17109 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
17110 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
17111 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
17112 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
17113 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
17114 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
17115 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
17116 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
17117 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
17118 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
17119 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
17120 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
17121 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
17122 logic in GCC vector extensions
17124 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
17125 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
17126 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
17127 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
17128 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
17129 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
17130 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
17131 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
17132 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
17133 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
17135 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
17137 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
17140 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
17141 (vget_low_s64): Use __GET_LOW macro.
17142 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
17143 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
17144 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
17145 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
17146 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
17148 (vcombine_s64): Use GCC vector extensions; remove cast.
17149 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
17150 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
17151 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
17152 Fix type signature; remove cast.
17154 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
17157 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
17159 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
17161 (BUILTIN_VD1): New.
17162 (BUILTIN_VD_RE): Remove.
17163 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
17164 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
17165 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
17166 variant but not df.
17167 (vreinterpretv1df*, vreinterpret*v1df): New.
17168 (vreinterpretdf*, vreinterpret*df): Remove.
17169 * config/aarch64/aarch64-simd.md (aarch64_create,
17170 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
17171 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
17173 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
17174 (vcreate_f64): Remove cast, use v1df builtin.
17175 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
17176 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
17177 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
17178 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
17179 vmov_n_f64, vst1_f64): Use gcc vector extensions.
17180 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
17181 add range check using __builtin_aarch64_im_lane_boundsi.
17182 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
17183 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
17184 type signature, use gcc vector extensions.
17185 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
17186 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
17187 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
17188 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
17189 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
17190 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
17191 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
17192 vreinterpret_u64_f64): Use v1df builtin not df.
17194 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
17196 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
17199 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
17201 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
17204 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
17206 * loop-invariant.c (pre_check_invariant_p): New function.
17207 (find_invariant_insn): Call pre_check_invariant_p.
17209 2014-06-22 Richard Henderson <rth@redhat.com>
17212 * compare-elim.c (struct comparison): Add eh_note.
17213 (find_comparison_dom_walker::before_dom_children): Don't eliminate
17214 a redundant comparison in a different EH region. Purge EH edges if
17217 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
17219 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
17220 (var_shift): Use it.
17221 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
17222 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
17223 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
17224 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
17225 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
17226 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
17227 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
17228 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
17229 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
17230 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
17231 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
17232 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
17233 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
17234 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
17235 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
17236 *rotldi3_internal15be): Use the new attribute. Merge register and
17237 integer alternatives.
17239 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
17241 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
17242 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
17243 split, *ashrdi3_internal3 and split): Delete, merge into...
17244 (ashr<mode>3): New expander.
17245 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
17246 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
17248 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
17250 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
17251 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
17252 *rotldi3_internal3 and split): Delete, merge into...
17253 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
17254 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
17255 Use "rotlw" extended mnemonic.
17257 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
17259 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
17260 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
17261 and split, *ashldi3_internal3 and split): Delete, merge into...
17262 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
17263 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
17265 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
17267 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
17268 (lshrsi3, two anonymous define_insns and define_splits,
17269 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
17270 *lshrdi3_internal3 and split): Delete, merge into...
17271 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
17272 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
17274 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
17276 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
17277 Remove "O" alternative.
17279 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
17281 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
17282 (mips_move_from_gpr_cost): Likewise.
17283 (mips_register_move_cost): Update accordingly.
17284 (mips_secondary_reload_class): Remove name of in_p.
17286 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
17289 * config/i386/i386.md (x86_64_shrd, x86_shrd,
17290 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
17292 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17294 * config/nios2/nios2.c: Include "builtins.h".
17296 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
17298 * cgraph.h (tls_model_names): New variable.
17299 * print-tree.c (print_node): Simplify.
17300 * varpool.c (tls_model_names): New variable.
17301 (dump_varpool_node): Output tls model.
17303 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
17305 * ipa-visibility.c (function_and_variable_visibility): Disable
17306 temporarily local aliases for some targets.
17308 2014-06-20 Marek Polacek <polacek@redhat.com>
17310 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
17311 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
17312 into SANITIZE_UNDEFINED.
17313 * doc/invoke.texi: Describe -fsanitize=bounds.
17314 * gimplify.c (gimplify_call_expr): Add gimplification of internal
17315 functions created in the FEs.
17316 * internal-fn.c: Move "internal-fn.h" after "tree.h".
17317 (expand_UBSAN_BOUNDS): New function.
17318 * internal-fn.def (UBSAN_BOUNDS): New internal function.
17319 * internal-fn.h: Don't define internal functions here.
17320 * opts.c (common_handle_option): Add -fsanitize=bounds.
17321 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
17322 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
17323 * tree-core.h: Define internal functions here.
17324 (struct tree_base): Add ifn field.
17325 * tree-pretty-print.c: Include "internal-fn.h".
17326 (dump_generic_node): Handle functions without CALL_EXPR_FN.
17327 * tree.c (get_callee_fndecl): Likewise.
17328 (build_call_expr_internal_loc): New function.
17329 * tree.def (CALL_EXPR): Update description.
17330 * tree.h (CALL_EXPR_IFN): Define.
17331 (build_call_expr_internal_loc): Declare.
17332 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
17334 (ubsan_type_descriptor): Change bool parameter to enum
17335 ubsan_print_style. Adjust the code. Add handling of
17337 (ubsan_expand_bounds_ifn): New function.
17338 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
17339 (ubsan_build_overflow_builtin): Likewise.
17340 (instrument_bool_enum_load): Likewise.
17341 (ubsan_instrument_float_cast): Likewise.
17342 * ubsan.h (enum ubsan_print_style): New enum.
17343 (ubsan_expand_bounds_ifn): Declare.
17344 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
17346 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
17348 * config/rs6000/rs6000.md: Append `DONE' to preparation
17349 statements of `bswap' pattern splitters.
17351 2014-06-20 Tom de Vries <tom@codesourcery.com>
17353 * target.def (call_fusage_contains_non_callee_clobbers): Update
17355 * doc/tm.texi: Regenerate.
17357 2014-06-20 Yury Gribov <y.gribov@samsung.com>
17358 Max Ostapenko <m.ostapenko@partner.samsung.com>
17361 * asan.c (instrument_strlen_call): Fixed instrumentation of
17364 2014-06-20 Martin Jambor <mjambor@suse.cz>
17367 * ipa-prop.c (impossible_devirt_target): New function.
17368 (try_make_edge_direct_virtual_call): Use it, also instead of
17371 2014-06-20 Yury Gribov <y.gribov@samsung.com>
17372 Max Ostapenko <m.ostapenko@partner.samsung.com>
17375 * asan.c (build_check_stmt): Add condition.
17377 2014-06-20 Martin Jambor <mjambor@suse.cz>
17380 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
17383 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17385 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
17387 (VCONQ): Make comment more helpful.
17389 * config/aarch64/aarch64-simd.md
17390 (aarch64_sqdmulh_lane<mode>):
17391 Use VCOND for operands 2. Update lane checking and flipping logic.
17392 (aarch64_sqrdmulh_lane<mode>): Likewise.
17393 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
17394 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
17395 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
17396 attribute of operand 3 to VCOND.
17397 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
17398 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
17399 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
17400 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
17401 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
17402 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
17404 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
17405 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
17406 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
17407 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
17408 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
17409 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
17410 operand to VCOND. Update lane flipping and bounds checking logic.
17411 (aarch64_sqdmlal2_lane<mode>): Likewise.
17412 (aarch64_sqdmlsl_lane<mode>): Likewise.
17413 (aarch64_sqdmull_lane<mode>): Likewise.
17414 (aarch64_sqdmull2_lane<mode>): Likewise.
17415 (aarch64_sqdmlal_laneq<mode>):
17416 Replace VCON usage with VCONQ.
17417 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
17418 (aarch64_sqdmlal2_laneq<mode>): Emit
17419 aarch64_sqdmlal2_laneq<mode>_internal insn.
17420 Replace VCON with VCONQ.
17421 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
17422 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
17423 (aarch64_sqdmull_laneq<mode>): Emit
17424 aarch64_sqdmull_laneq<mode>_internal insn.
17425 Replace VCON with VCONQ.
17426 (aarch64_sqdmull2_laneq<mode>): Emit
17427 aarch64_sqdmull2_laneq<mode>_internal insn.
17428 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
17429 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
17430 of 3rd argument to int16x4_t.
17431 (vqdmlalh_lane_s16): Likewise.
17432 (vqdmlslh_lane_s16): Likewise.
17433 (vqdmull_high_lane_s16): Likewise.
17434 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
17435 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
17436 (vqdmlsl_lane_s16): Likewise.
17437 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
17438 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
17439 (vqdmlals_lane_s32): Likewise.
17440 (vqdmlsls_lane_s32): Likewise.
17441 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
17442 (vqdmulls_lane_s32): Likewise.
17443 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
17444 (vqdmlsl_lane_s32): Likewise.
17445 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
17446 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
17447 (vqrdmulhh_lane_s16): Likewise.
17448 (vqdmlsl_high_lane_s16): Likewise.
17449 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
17450 (vqdmlsl_high_lane_s32): Likewise.
17451 (vqrdmulhs_lane_s32): Likewise.
17453 2014-06-20 Tom de Vries <tom@codesourcery.com>
17455 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
17456 get_call_reg_set_usage.
17458 2014-06-20 Tom de Vries <tom@codesourcery.com>
17460 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
17461 it contains all call_used_regs.
17463 2014-06-20 Tom de Vries <tom@codesourcery.com>
17465 * final.c (collect_fn_hard_reg_usage): Add and use variable
17466 function_used_regs.
17468 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
17470 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
17471 (set_init_priority, get_init_priority, set_fini_priority,
17472 get_fini_priority): New methods.
17473 * tree.c (init_priority_for_decl): Remove.
17474 (init_ttree): Do not initialize init priority.
17475 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
17476 (decl_priority_info): Remove.
17477 (decl_init_priority_insert): Rewrite.
17478 (decl_fini_priority_insert): Rewrite.
17479 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
17480 tree_priority_map_marked_p): Remove.
17481 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
17482 * lto-streamer-out.c (hash_tree): Do not hash priorities.
17483 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
17484 not output priorities.
17485 (pack_ts_function_decl_value_fields): Likewise.
17486 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
17487 not input priorities.
17488 (unpack_ts_function_decl_value_fields): Likewise.
17489 * symtab.c (symbol_priority_map): Declare.
17490 (init_priority_hash): Declare.
17491 (symtab_unregister_node): Unregister from priority hash, too.
17492 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
17494 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
17495 (symbol_priority_info): New function.
17496 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
17498 * tree-core.h (tree_priority_map): Remove.
17500 2014-06-20 Jakub Jelinek <jakub@redhat.com>
17502 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
17503 0xff to uint64_t before shifting it up.
17505 2014-06-20 Julian Brown <julian@codesourcery.com>
17506 Chung-Lin Tang <cltang@codesourcery.com>
17508 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
17509 TARGET_THUMB1_ONLY. Add comments.
17511 2014-06-19 Tom de Vries <tom@codesourcery.com>
17513 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
17514 return type to void.
17515 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
17517 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
17519 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
17520 as "move", from depends_on.
17522 2014-06-19 Terry Guo <terry.guo@arm.com>
17524 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
17527 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
17529 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
17531 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
17533 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
17536 * config/sh/sh.c (prepare_move_operands): Don't process TLS
17537 addresses here if reload in progress or completed.
17539 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
17541 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
17542 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
17543 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
17544 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
17545 (mips_register_priority): New function that implements the target
17546 hook TARGET_REGISTER_PRIORITY.
17547 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
17548 (mips_lra_p): Likewise for TARGET_LRA_P.
17549 (TARGET_REGISTER_PRIORITY): Define macro.
17550 (TARGET_SPILL_CLASS): Likewise.
17551 (TARGET_LRA_P): Likewise.
17552 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
17554 (REG_CLASS_NAMES): Likewise.
17555 (REG_CLASS_CONTENTS): Likewise.
17556 (BASE_REG_CLASS): Use M16_SP_REGS.
17557 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
17558 New set attribute to enable alternatives depending on the register
17560 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
17561 (*lea64): Disable pattern for MIPS16.
17562 * config/mips/mips.opt (mlra): New option.
17564 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
17566 * lra-constraints.c (base_to_reg): New function.
17567 (process_address): Use new function.
17569 2014-06-18 Tom de Vries <tom@codesourcery.com>
17571 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
17572 * config/aarch64/aarch64.c
17573 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
17574 (aarch64_emit_call_insn): New function.
17575 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
17577 * config/aarch64/aarch64.md (define_expand "call_internal")
17578 (define_expand "call_value_internal", define_expand "sibcall_internal")
17579 (define_expand "sibcall_value_internal"): New.
17580 (define_expand "call", define_expand "call_value")
17581 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
17582 expand variant and aarch64_emit_call_insn.
17584 2014-06-18 Radovan Obradovic <robradovic@mips.com>
17585 Tom de Vries <tom@codesourcery.com>
17587 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
17588 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
17590 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
17591 clobbers to CALL_INSN_FUNCTION_USAGE.
17592 (define_expand "sibcall_internal")
17593 (define_expand "sibcall_value_internal"): New.
17594 (define_expand "call", define_expand "call_value"): Add argument to
17595 arm_emit_call_insn.
17596 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
17597 (define_expand "sibcall_value"): Use sibcall_value_internal and
17598 arm_emit_call_insn.
17600 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17602 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
17604 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17606 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
17609 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17611 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
17612 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
17613 annotations. Fix DWARF information.
17615 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17617 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
17618 __udivmoddi4, and fixups for negative operands.
17620 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17622 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
17624 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17626 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
17629 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17631 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
17634 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17636 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
17637 describing register usage on function entry and exit.
17639 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17641 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
17642 (__aeabi_ldivmod): Fix whitespace.
17644 2014-06-18 Andreas Schwab <schwab@suse.de>
17646 * doc/md.texi (Standard Names): Use @itemx for grouped items.
17647 Remove blank line after @item.
17649 2014-06-18 Richard Henderson <rth@redhat.com>
17652 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
17654 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
17656 * config/arm/arm.c (neon_vector_mem_operand): Allow register
17657 POST_MODIFY for neon loads and stores.
17658 (arm_print_operand): Output post-index register for neon loads and
17661 2014-06-18 Richard Biener <rguenther@suse.de>
17663 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
17665 2014-06-18 Richard Biener <rguenther@suse.de>
17667 * tree-pass.h (make_pass_dce_loop): Remove.
17668 * passes.def: Replace pass_dce_loop with pass_dce.
17669 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
17670 changed free niter estimates and reset the scev cache.
17671 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
17672 make_pass_dce_loop): Remove.
17673 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
17674 (fini_copy_prop): Return whether something changed. Always
17675 let substitute_and_fold perform DCE and free niter estimates
17676 and reset the scev cache if so.
17677 (execute_copy_prop): If sth changed schedule cleanup-cfg.
17678 (pass_data_copy_prop): Do not unconditionally schedule
17679 cleanup-cfg or update-ssa.
17681 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
17683 PR tree-optimization/61518
17684 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
17685 reduction var is used in reduction stmt or phi-function only.
17687 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17689 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
17691 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
17693 PR tree-optimization/61517
17694 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
17695 whose rhs's first tree is the source expression instead of the
17697 (find_bswap_or_nop): Likewise.
17698 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
17699 gimple stmt whose rhs's first tree is the source. In the memory source
17700 case, move the stmt to be replaced close to one of the original load to
17701 avoid the problem of a store between the load and the stmt's original
17703 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
17706 2014-06-18 Andreas Schwab <schwab@suse.de>
17708 PR rtl-optimization/54555
17709 * postreload.c (move2add_use_add2_insn): Substitute
17710 STRICT_LOW_PART only if it is cheaper.
17712 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
17714 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
17715 Do not use unspec as call operand. Use memory_operand instead of
17716 memory_nox32_operand and add "m" operand constraint. Disable
17717 pattern for TARGET_X32.
17718 (*sibcall_pop_memory): Ditto.
17719 (*sibcall_value_memory): Ditto.
17720 (*sibcall_value_pop_memory): Ditto.
17721 (sibcall peepholes): Merge SImode and DImode patterns using
17722 W mode iterator. Use memory_operand instead of memory_nox32_operand.
17723 Disable pattern for TARGET_X32. Check if eliminated register is
17724 really dead after call insn. Generate call RTX without unspec operand.
17725 (sibcall_value peepholes): Ditto.
17726 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
17727 instead of memory_nox32_operand. Check if eliminated register is
17728 really dead after call insn. Generate call RTX without unspec operand.
17729 (sibcall_value_pop peepholes): Ditto.
17730 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
17732 2014-06-18 Terry Guo <terry.guo@arm.com>
17735 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
17738 2014-06-18 Olivier Hainque <hainque@adacore.com>
17740 * tree-core.h (tree_block): Add an "end_locus" field, allowing
17741 memorization of the end of block source location.
17742 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
17743 * gimplify.c (gimplify_bind_expr): Propagate the block start and
17744 end source location info we have on the block entry/exit code we
17747 2014-06-18 Richard Biener <rguenther@suse.de>
17749 * common.opt (fssa-phiopt): New option.
17750 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
17752 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
17753 * doc/invoke.texi (-fssa-phiopt): Document.
17755 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17757 * genattrtab.c (n_bypassed): New variable.
17758 (process_bypasses): Initialise n_bypassed.
17759 Count number of bypassed reservations.
17760 (make_automaton_attrs): Allocate space for bypassed reservations
17761 rather than number of bypasses.
17763 2014-06-18 Richard Biener <rguenther@suse.de>
17765 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
17766 we propagated anything.
17767 (substitute_and_fold_dom_walker::before_dom_children): Something
17768 changed if we propagated into PHI arguments.
17769 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
17772 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
17774 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
17776 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
17777 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
17778 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
17779 Introduces alternative way of loads group permutaions.
17780 (vect_transform_grouped_load): Try alternative way of permutations.
17782 2014-06-18 Jakub Jelinek <jakub@redhat.com>
17784 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
17785 changed in ORT_TARGET region, don't jump to do_outer.
17786 (struct gimplify_adjust_omp_clauses_data): New type.
17787 (gimplify_adjust_omp_clauses_1): Adjust for data being
17788 a struct gimplify_adjust_omp_clauses_data pointer instead
17789 of tree *. Pass pre_p as a new argument to
17790 lang_hooks.decls.omp_finish_clause hook.
17791 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
17792 splay_tree_foreach to pass both list_p and pre_p.
17793 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
17794 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
17795 gimplify_adjust_omp_clauses callers.
17796 * langhooks.c (lhd_omp_finish_clause): New function.
17797 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
17798 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
17799 * langhooks.h (struct lang_hooks_for_decls): Add a new
17800 gimple_seq * argument to omp_finish_clause hook.
17801 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
17802 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
17803 (scan_omp_parallel, lower_omp_for): When adding
17804 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
17805 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
17806 * tree-nested.c (convert_nonlocal_omp_clauses,
17807 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
17808 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
17810 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
17812 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
17813 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
17815 2014-06-17 Xinliang David Li <davidxl@google.com>
17817 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
17818 * passes.c (pass_init_dump_file): Do not set initialize
17819 flag to false unconditionally.
17821 2014-06-17 Richard Biener <rguenther@suse.de>
17823 * genopinit.c (main): Use vec<>::qsort method.
17824 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
17826 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
17828 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
17830 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
17831 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
17832 (mips_move_to_gpr_cost): Remove ST_REGS case.
17833 (mips_move_from_gpr_cost): Likewise.
17834 (mips_register_move_cost): Likewise.
17835 (mips_secondary_reload_class): Likewise.
17837 2014-06-17 Richard Biener <rguenther@suse.de>
17839 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
17840 (pass_all_optimizations): Move 3rd copy-prop pass from after
17841 fre to before ifcombine/phiopt.
17843 2014-06-17 Richard Biener <rguenther@suse.de>
17845 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
17846 and allow all blocks to be forwarders.
17848 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
17851 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
17852 variable 'size'; calculate 'size' right in the front; use
17853 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
17854 pcum->aapcs_stack_words.
17856 2014-06-17 Nick Clifton <nickc@redhat.com>
17858 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
17859 (umulhi3, mulsidi3, umulsidi3): Likewise.
17861 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
17863 PR middle-end/61508
17864 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
17865 check for section name.
17867 2014-06-17 Richard Biener <rguenther@suse.de>
17869 * tree-ssa-propagate.c: Include domwalk.h.
17870 (substitute_and_fold): Outline main worker into a domwalker ...
17871 (substitute_and_fold_dom_walker::before_dom_children): ... here.
17872 Schedule stmts we can fully propagate for removal. Remove
17874 (substitute_and_fold): Apply a dominator walk to perform
17875 substitution. Process stmts scheduled for removal here.
17877 2014-06-17 Richard Biener <rguenther@suse.de>
17879 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
17880 of PHI node moving.
17882 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
17884 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
17885 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
17886 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
17887 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
17888 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
17890 (get_fpscr) : Likewise.
17892 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
17894 PR rtl-optimization/61325
17895 * lra-constraints.c (valid_address_p): Add forward declaration.
17896 (simplify_operand_subreg): Check address validity before and after
17897 alter_reg of memory subreg.
17899 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
17901 * config/i386/i386.c (decide_alg): Correctly handle
17902 maximum size of stringop algorithm.
17904 2014-06-16 Yury Gribov <y.gribov@samsung.com>
17906 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
17908 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
17910 PR rtl-optimization/61522
17911 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
17913 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
17916 * symtab.c (symtab_node::reset_section): New method.
17917 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
17919 * cgraph.h (reset_section): Declare.
17920 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
17921 do not consider comdat locals.
17922 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
17924 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
17925 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
17926 reset sections of symbols dragged out of the comdats.
17927 (function_and_variable_visibility): Reset sections of
17930 2014-06-16 Richard Biener <rguenther@suse.de>
17932 PR tree-optimization/61482
17933 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
17934 [-INF(OVF), +INF(OVF)] range.
17936 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
17938 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
17939 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
17940 handling 32-bit multiplication.
17942 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
17944 PR middle-end/61430
17945 * lra-lives.c (process_bb_lives): Skip creating copy during
17946 insn scan when src/dest has constrained to same regno.
17948 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
17950 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
17951 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
17953 2014-06-16 Yury Gribov <y.gribov@samsung.com>
17955 * asan.c (check_func): New function.
17956 (maybe_create_ssa_name): Likewise.
17957 (build_check_stmt_with_calls): Likewise.
17958 (use_calls_p): Likewise.
17959 (report_error_func): Change interface.
17960 (build_check_stmt): Allow non-integer lengths; add support
17962 (asan_instrument): Likewise.
17963 (instrument_mem_region_access): Moved code to build_check_stmt.
17964 (instrument_derefs): Likewise.
17965 (instrument_strlen_call): Likewise.
17966 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
17967 * doc/invoke.texi: Describe new parameter.
17968 * params.def: Define new parameter.
17969 * params.h: Likewise.
17970 * sanitizer.def: Describe new builtins.
17972 2014-06-16 Richard Biener <rguenther@suse.de>
17974 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
17975 Make all defs available at the end.
17976 (eliminate): If we remove a PHI node schedule cfg-cleanup.
17978 2014-06-18 Jakub Jelinek <jakub@redhat.com>
17981 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
17983 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
17986 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
17987 initialization. Replace remaining use of uid.
17989 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
17991 * c-family/c-common.c (handle_tls_model_attribute): Use
17992 set_decl_tls_model.
17993 * c-family/c-common.c (handle_tls_model_attribute): Use
17994 set_decl_tls_model.
17995 * cgraph.h (struct varpool_node): Add tls_model.
17996 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
17997 * tree.h (DECL_TLS_MODEL): Update.
17998 (DECL_THREAD_LOCAL_P): Check that variable is static.
17999 (decl_tls_model): Declare.
18000 (set_decl_tls_model): Declare.
18001 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
18002 set symbol prorperties.
18003 (get_emutls_init_templ_addr): Cleanup.
18004 (new_emutls_decl): Update.
18005 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
18006 (lto_input_varpool_node): Likewise.
18007 * lto-streamer-out.c (hash_tree): Likewise.
18008 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
18009 not stream DECL_TLS_MODEL.
18010 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
18011 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
18013 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18015 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
18017 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18019 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
18020 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
18022 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
18023 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
18024 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
18025 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
18026 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
18027 (df_get_artificial_defs, df_get_artificial_uses)
18028 (df_single_def, df_single_use): Update accordingly.
18029 (df_refs_chain_dump): Take the first element in a linked list as
18030 parameter, rather than a pointer to an array of pointers.
18031 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
18032 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
18033 (df_chain_create_bb_process_use): Likewise.
18034 (df_md_bb_local_compute_process_def): Likewise.
18035 * fwprop.c (process_defs, process_uses): Likewise.
18036 (register_active_defs, update_uses): Likewise.
18037 (forward_propagate_asm): Update for new df_ref linking.
18038 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
18039 (df_null_ref_rec, df_null_mw_rec): Likewise.
18040 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
18042 (df_scan_free_bb_info): Remove check for null artificial_defs.
18043 (df_install_ref_incremental): Adjust for new df_ref linking.
18044 Use a single-element insertion rather than a full sort.
18045 (df_ref_chain_delete_du_chain): Take the first element
18046 in a linked list as parameter, rather than a pointer to an array of
18048 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
18049 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
18050 (df_insn_info_delete): Remove check for null defs and call to
18051 df_scan_free_mws_vec.
18052 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
18053 null rather than df_null_*_rec.
18054 (df_insn_rescan_debug_internal): Likewise, and update null
18055 checks in the same way. Remove check for null defs.
18056 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
18057 Move a single element rather doing a full sort.
18058 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
18060 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
18061 Initialize df_ref and df_mw_hardreg lists to null rather than
18063 (df_ref_compare): Take df_refs as parameter, transferring the
18064 old interface to...
18065 (df_ref_ptr_compare): ...this new function.
18066 (df_sort_and_compress_refs): Update accordingly.
18067 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
18068 old interface to...
18069 (df_mw_ptr_compare): ...this new function.
18070 (df_sort_and_compress_mws): Update accordingly.
18071 (df_install_refs, df_install_mws): Return a linked list rather than
18072 an array of pointers.
18073 (df_refs_add_to_chains): Assert that old lists are empty rather
18075 (df_insn_refs_verify): Don't handle null defs speciailly.
18076 * web.c (union_match_dups): Update for new df_ref linking.
18078 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18080 * df.h (df_ref_create, df_ref_remove): Delete.
18081 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
18082 (df_ref_remove): Likewise.
18084 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18086 * df.h (df_single_def, df_single_use): New functions.
18087 * ira.c (find_moveable_pseudos): Use them.
18089 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18091 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
18092 * df-problems.c (df_note_bb_compute): Use it.
18093 * regstat.c (regstat_bb_compute_ri): Likewise.
18095 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18097 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
18098 * cse.c (cse_extended_basic_block): Use them.
18099 * dce.c (mark_artificial_use): Likewise.
18100 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
18101 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
18102 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
18103 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
18104 (df_simulate_initialize_backwards): Likewise.
18105 (df_simulate_finalize_backwards): Likewise.
18106 (df_simulate_initialize_forwards): Likewise.
18107 (df_md_simulate_artificial_defs_at_top): Likewise.
18108 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
18109 * regrename.c (init_rename_info): Likewise.
18110 * regstat.c (regstat_bb_compute_ri): Likewise.
18111 (regstat_bb_compute_calls_crossed): Likewise.
18113 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
18115 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
18116 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
18117 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
18118 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
18119 * combine.c (create_log_links): Likewise.
18120 * compare-elim.c (find_flags_uses_in_insn): Likewise.
18121 (try_eliminate_compare): Likewise.
18122 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
18123 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
18124 (remove_reg_equal_equiv_notes_for_defs): Likewise.
18125 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
18126 (word_dce_process_block, dce_process_block): Likewise.
18127 * ddg.c (def_has_ccmode_p): Likewise.
18128 * df-core.c (df_bb_regno_first_def_find): Likewise.
18129 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
18130 * df-problems.c (df_rd_simulate_one_insn): Likewise.
18131 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
18132 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
18133 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
18134 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
18135 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
18136 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
18137 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
18138 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
18139 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
18140 * fwprop.c (local_ref_killed_between_p): Likewise.
18141 (all_uses_available_at, free_load_extend): Likewise.
18142 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
18143 * hw-doloop.c (scan_loop): Likewise.
18144 * ifcvt.c (dead_or_predicable): Likewise.
18145 * init-regs.c (initialize_uninitialized_regs): Likewise.
18146 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
18147 (process_bb_node_lives): Likewise.
18148 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
18149 (find_moveable_pseudos): Likewise.
18150 * loop-invariant.c (check_dependencies, record_uses): Likewise.
18151 * recog.c (peep2_find_free_register): Likewise.
18152 * ree.c (get_defs): Likewise.
18153 * regstat.c (regstat_bb_compute_ri): Likewise.
18154 (regstat_bb_compute_calls_crossed): Likewise.
18155 * sched-deps.c (find_inc, find_mem): Likewise.
18156 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
18157 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
18158 * shrink-wrap.c (requires_stack_frame_p): Likewise.
18159 (prepare_shrink_wrap): Likewise.
18160 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
18161 * web.c (union_defs, pass_web::execute): Likewise.
18162 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
18163 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
18165 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
18167 * lra-assign.c (assign_by_spills): Add code to assign vector regs
18168 to inheritance pseudos.
18169 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
18171 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
18174 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
18175 (BU_MISC_2): Rename to ...
18176 (BU_LDBL128_2): ... this.
18177 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
18178 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
18179 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
18180 RS6000_BTM_LDBL128.
18181 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
18182 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
18183 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
18184 (unpacktf_1): Likewise.
18185 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
18186 (__builtin_longdouble_dw1): Likewise.
18187 * doc/sourcebuild.texi (longdouble128): Document.
18189 2014-06-13 Jeff Law <law@redhat.com>
18191 PR rtl-optimization/61094
18192 PR rtl-optimization/61446
18193 * ree.c (combine_reaching_defs): Get the mode for the copy from
18194 the extension insn rather than the defining insn.
18196 2014-06-13 Dehao Chen <dehao@google.com>
18198 * dwarf2out.c (add_linkage_name): Emit more linkage name.
18200 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
18202 * doc/install.texi (--enable-linker-plugin-configure-flags)
18203 (--enable-linker-plugin-flags): Document new flags.
18205 2014-06-13 Martin Jambor <mjambor@suse.cz>
18208 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
18209 cache_token if returning early.
18211 2014-06-13 Nick Clifton <nickc@redhat.com>
18213 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
18214 requested alignment is active.
18215 (LABEL_ALIGN): Likewise.
18216 (LOOP_ALIGN): Likewise.
18218 2014-06-13 Richard Biener <rguenther@suse.de>
18220 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
18221 Rewrite to propagate the VN result into all uses where
18222 possible and to remove stmts becoming dead because of that.
18223 (eliminate): Generalize stmt removal handling, remove in
18224 reverse dominator order to support proper debug stmt
18225 generation. Update stmts before removing stmts.
18226 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
18228 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
18230 PR tree-optimization/61375
18231 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
18232 symbolic number cannot be represented in an uint64_t.
18233 (find_bswap_or_nop_1): Likewise.
18235 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
18237 * symtab.c (symtab_node::reset_section): New method.
18238 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
18240 * cgraph.h (reset_section): Declare.
18241 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
18242 do not consider comdat locals.
18243 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
18245 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
18246 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
18247 reset sections of symbols dragged out of the comdats.
18248 (function_and_variable_visibility): Reset sections of
18251 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
18253 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
18254 to use symtab and decl_binds_to_current_def_p
18255 * tree-vectorizer.c (increase_alignment): Increase alignment
18256 of alias target, too.
18258 2014-06-12 Jakub Jelinek <jakub@redhat.com>
18260 PR middle-end/61486
18261 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
18262 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
18263 if outer combined construct is distribute.
18264 (gimplify_omp_for): For OMP_DISTRIBUTE set
18265 gimplify_omp_ctxp->distribute.
18266 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
18267 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
18268 mapping into decl map.
18270 2014-06-12 Jason Merrill <jason@redhat.com>
18272 * common.opt (fabi-version): Change default to 0.
18274 2014-06-12 Jason Merrill <jason@redhat.com>
18276 * toplev.c (process_options): Reject -fabi-version=1.
18278 2014-06-12 Jeff Law <law@redhat.com>
18280 PR tree-optimization/61009
18281 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
18282 value when we stop processing a block due to problematic PHIs.
18284 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
18286 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
18287 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
18288 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
18289 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
18290 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
18291 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
18292 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
18293 are not in the spec.
18295 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
18298 * config/aarch64/aarch64-modes.def: Add V1DFmode.
18299 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
18302 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
18304 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
18306 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
18309 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
18310 loading from address spaces.
18312 2014-06-12 Martin Liska <mliska@suse.cz>
18315 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
18316 statement is reachable.
18318 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
18320 * symtab.c (section_hash): New hash.
18321 (symtab_unregister_node): Clear section before freeing.
18322 (hash_section_hash_entry): New haser.
18323 (eq_sections): New function.
18324 (symtab_node::set_section_for_node): New method.
18325 (set_section_1): Update.
18326 (symtab_node::set_section): Take string instead of tree as parameter.
18327 (symtab_resolve_alias): Update.
18328 * cgraph.h (section_hash_entry_d): New structure.
18329 (section_hash_entry): New typedef.
18330 (cgraph_node): Change comdat_group_ to x_comdat_group,
18331 change section_ to x_section and turn into section_hash_entry;
18332 update accestors; put set_section_for_node offline.
18333 * tree.c (decl_section_name): Turn into string.
18334 (set_decl_section_name): Change parameter to be string.
18335 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
18336 * sdbout.c (sdbout_one_type): Update.
18337 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
18338 * varasm.c (IN_NAMED_SECTION, get_named_section,
18339 resolve_unique_section, hot_function_section, get_named_text_section,
18340 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
18341 make_decl_rtl, default_unique_section): Update.
18342 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
18343 (c6x_elf_unique_section): Update.
18344 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
18345 * config/pa/pa.c (pa_function_section): Update.
18346 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
18347 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
18348 * config/arc/arc.c (arc_in_small_data_p): Update.
18349 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
18350 * config/mcore/mcore.c (mcore_unique_section): Update.
18351 * config/mips/mips.c (mips16_build_function_stub): Update.
18352 (mips16_build_call_stub): Update.
18353 (mips_function_rodata_section): Update.
18354 (mips_in_small_data_p): Update.
18355 * config/score/score.c (score_in_small_data_p): Update.
18356 * config/rx/rx.c (rx_in_small_data): Update.
18357 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
18358 (rs6000_xcoff_asm_named_section): Update.
18359 (rs6000_xcoff_unique_section): Update.
18360 * config/frv/frv.c (frv_string_begins_with): Update.
18361 (frv_in_small_data_p): Update.
18362 * config/v850/v850.c (v850_encode_data_area): Update.
18363 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
18364 (bfin_handle_l1_data_attribute): Update.
18365 (bfin_handle_l2_attribute): Update.
18366 * config/mep/mep.c (mep_unique_section): Update.
18367 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
18369 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
18370 (h8300_handle_tiny_data_attribute): Update.
18371 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
18372 (m32r_in_small_data_p): Update.
18373 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
18374 * config/i386/i386.c (ix86_in_large_data_p): Update.
18375 * config/i386/winnt.c (i386_pe_unique_section): Update.
18376 * config/darwin.c (darwin_function_section): Update.
18377 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
18378 * tree-emutls.c (get_emutls_init_templ_addr): Update.
18379 (new_emutls_decl): Update.
18380 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
18381 input_varpool_node): Update.
18382 (ead_string_cst): Turn to ...
18383 (read_string): ... this one.
18384 * dwarf2out.c (secname_for_decl): Update.
18385 * asan.c (asan_protect_global): Update.
18387 2014-06-11 DJ Delorie <dj@redhat.com>
18389 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
18391 * config/rx/rx.c (rx_option_override): Likewise.
18392 (rx_align_for_label): Likewise.
18394 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
18396 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
18398 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
18401 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18403 * common.md: New file.
18404 * doc/md.texi: Update description of generic, machine-independent
18406 * config/s390/constraints.md (e): Delete.
18407 * Makefile.in (md_file): Include common.md.
18408 * config/m32c/t-m32c (md_file): Likewise.
18409 * genpreds.c (general_mem): New array.
18410 (generic_constraint_letters): Remove constraints now defined by
18412 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
18413 Allow the first character to be '<' or '>' as well.
18414 * genoutput.c (general_mem): New array.
18415 (indep_constraints): Remove constraints now defined by common.md.
18416 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
18417 Remove special handling of 'm'.
18418 * ira-costs.c (record_reg_classes): Remove special handling of
18419 constraints now defined by common.md.
18420 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
18421 * ira-lives.c (single_reg_class): Likewise.
18422 (ira_implicitly_set_insn_hard_regs): Likewise.
18423 * lra-constraints.c (reg_class_from_constraints): Likewise.
18424 (process_alt_operands, process_address, curr_insn_transform): Likewise.
18425 * postreload.c (reload_cse_simplify_operands): Likewise.
18426 * reload.c (push_secondary_reload, scratch_reload_class)
18427 (find_reloads, alternative_allows_const_pool_ref): Likewise.
18428 * reload1.c (maybe_fix_stack_asms): Likewise.
18429 * targhooks.c (default_secondary_reload): Likewise.
18430 * stmt.c (parse_output_constraint): Likewise.
18431 * recog.c (preprocess_constraints): Likewise.
18432 (constrain_operands, peep2_find_free_register): Likewise.
18433 (asm_operand_ok): Likewise, but add a comment saying why 'o'
18434 must be handled specially.
18436 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18438 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
18439 * genpreds.c (have_const_dbl_constraints): Delete.
18440 (add_constraint): Don't set it.
18441 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
18442 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
18443 constraints using the lookup_constraint logic.
18444 * ira-lives.c (single_reg_class): Likewise.
18445 * ira.c (ira_setup_alts): Likewise.
18446 * lra-constraints.c (process_alt_operands): Likewise.
18447 * recog.c (asm_operand_ok, constrain_operands): Likewise.
18448 * reload.c (find_reloads): Likewise.
18450 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18452 * genpreds.c (const_int_start, const_int_end): New variables.
18453 (choose_enum_order): Output CONST_INT constraints before memory
18455 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
18457 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
18458 * ira.c (ira_setup_alts): Likewise.
18459 * lra-constraints.c (process_alt_operands): Likewise.
18460 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
18461 * reload.c (find_reloads): Likewise.
18463 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18465 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
18466 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
18467 * recog.c (preprocess_constraints): Update accordingly.
18469 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18471 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
18472 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
18473 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
18474 * genpreds.c (print_type_tree): New function.
18475 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
18476 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
18477 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
18478 Write out enum constraint_type and get_constraint_type.
18479 * lra-constraints.c (satisfies_memory_constraint_p): Take a
18480 constraint_num rather than a constraint string.
18481 (satisfies_address_constraint_p): Likewise.
18482 (reg_class_from_constraints): Avoid old constraint macros.
18483 (process_alt_operands, process_address_1): Likewise.
18484 (curr_insn_transform): Likewise.
18485 * ira-costs.c (record_reg_classes): Likewise.
18486 (record_operand_costs): Likewise.
18487 * ira-lives.c (single_reg_class): Likewise.
18488 (ira_implicitly_set_insn_hard_regs): Likewise.
18489 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
18490 * postreload.c (reload_cse_simplify_operands): Likewise.
18491 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
18492 (constrain_operands, peep2_find_free_register): Likewise.
18493 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
18494 (find_reloads, alternative_allows_const_pool_ref): Likewise.
18495 * reload1.c (maybe_fix_stack_asms): Likewise.
18496 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
18497 * targhooks.c (default_secondary_reload): Likewise.
18498 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
18499 to EXTRA_CONSTRAINT_STR.
18500 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
18502 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18504 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
18505 (write_constraint_satisfied_p_array): ...this new function.
18506 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
18508 (write_insn_preds_c): Update accordingly.
18510 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18512 * genpreds.c (write_lookup_constraint): Rename to...
18513 (write_lookup_constraint_1): ...this.
18514 (write_lookup_constraint_array): New function.
18515 (write_tm_preds_h): Define lookup_constraint as an inline function
18516 that uses write_lookup_constraint_array where possible.
18517 (write_insn_preds_c): Update for the changes above.
18519 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
18521 * doc/md.texi (regclass_for_constraint): Rename to...
18522 (reg_class_for_constraint): ...this.
18523 * genpreds.c (num_constraints, enum_order, register_start)
18524 (register_end, satisfied_start, memory_start, memory_end)
18525 (address_start, address_end): New variables.
18526 (add_constraint): Count the number of constraints.
18527 (choose_enum_order): New function.
18528 (write_enum_constraint_num): Iterate over enum_order.
18529 (write_regclass_for_constraint): Rename to...
18530 (write_reg_class_for_constraint_1): ...this and update output
18532 (write_constraint_satisfied_p): Rename to...
18533 (write_constraint_satisfied_p_1): ...this and update output
18534 accordingly. Do nothing if all extra constraints are register
18536 (write_insn_extra_memory_constraint): Delete.
18537 (write_insn_extra_address_constraint): Delete.
18538 (write_range_function): New function.
18539 (write_tm_preds_h): Define constraint_satisfied_p and
18540 reg_class_for_constraint as inline functions that do a range check
18541 before calling the out-of-line function. Use write_range_function
18542 to implement insn_extra_{register,memory,address}_constraint,
18543 the first of which is new.
18544 (write_insn_preds_c): Update after above changes to write_* functions.
18545 (main): Call choose_enum_order.
18547 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
18549 PR tree-optimization/61306
18550 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
18551 expression instead of its size.
18552 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
18553 false to prevent optimization when the result is unpredictable due to
18554 arithmetic right shift of signed type with highest byte is set.
18555 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
18556 (init_symbolic_number): Likewise.
18557 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
18558 when the result is unpredictable due to sign extension.
18560 2014-06-11 Terry Guo <terry.guo@arm.com>
18562 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
18563 (*thumb1_addsi3): Ditto.
18564 (*thumb_subdi3): Ditto.
18565 (thumb1_subsi3_insn): Ditto.
18566 (*thumb_mulsi3): Ditto.
18567 (*thumb_mulsi3_v6): Ditto.
18568 (*thumb1_andsi3_insn): Ditto.
18569 (thumb1_bicsi3): Ditto.
18570 (*thumb1_iorsi3_insn): Ditto.
18571 (*thumb1_xorsi3_insn): Ditto.
18572 (*thumb1_ashlsi3): Ditto.
18573 (*thumb1_ashrsi3): Ditto.
18574 (*thumb1_lshrsi3): Ditto.
18575 (*thumb1_rotrsi3): Ditto.
18576 (*thumb1_negdi2): Ditto.
18577 (*thumb1_negsi2): Ditto.
18578 (*thumb1_abssi2): Ditto.
18579 (*thumb1_neg_abssi2): Ditto.
18580 (*thumb1_one_cmplsi2): Ditto.
18581 (*thumb1_zero_extendhisi2): Ditto.
18582 (*thumb1_zero_extendqisi2): Ditto.
18583 (*thumb1_zero_extendqisi2_v6): Ditto.
18584 (thumb1_extendhisi2): Ditto.
18585 (thumb1_extendqisi2): Ditto.
18586 (*thumb1_movdi_insn): Ditto.
18587 (*thumb1_movsi_insn): Ditto.
18588 (*thumb1_movhi_insn): Ditto.
18589 (thumb_movhi_clobber): Ditto.
18590 (*thumb1_movqi_insn): Ditto.
18591 (*thumb1_movhf): Ditto.
18592 (*thumb1_movsf_insn): Ditto.
18593 (*thumb_movdf_insn): Ditto.
18594 (movmem12b): Ditto.
18596 (cbranchqi4): Ditto.
18597 (cbranchsi4_insn): Ditto.
18598 (cbranchsi4_scratch): Ditto.
18599 (*negated_cbranchsi4): Ditto.
18600 (*tbit_cbranch): Ditto.
18601 (*tlobits_cbranch): Ditto.
18602 (*tstsi3_cbranch): Ditto.
18603 (*cbranchne_decr1): Ditto.
18604 (*addsi3_cbranch): Ditto.
18605 (*addsi3_cbranch_scratch): Ditto.
18606 (*thumb_cmpdi_zero): Ditto.
18607 (cstoresi_eq0_thumb1): Ditto.
18608 (cstoresi_ne0_thumb1): Ditto.
18609 (*cstoresi_eq0_thumb1_insn): Ditto.
18610 (*cstoresi_ne0_thumb1_insn): Ditto.
18611 (cstoresi_nltu_thumb1): Ditto.
18612 (cstoresi_ltu_thumb1): Ditto.
18613 (thumb1_addsi3_addgeu): Ditto.
18614 (*thumb_jump): Ditto.
18615 (*call_reg_thumb1_v5): Ditto.
18616 (*call_reg_thumb1): Ditto.
18617 (*call_value_reg_thumb1_v5): Ditto.
18618 (*call_value_reg_thumb1): Ditto.
18619 (*call_insn): Ditto.
18620 (*call_value_insn): Ditto.
18621 (thumb1_casesi_internal_pic): Ditto.
18622 (thumb1_casesi_dispatch): Ditto.
18623 (*thumb1_indirect_jump): Ditto.
18624 (prologue_thumb1_interwork): Ditto.
18625 (*epilogue_insns): Ditto.
18626 (consttable_1): Ditto.
18627 (consttable_2): Ditto.
18628 (tablejump): Ditto.
18629 (*thumb1_tablejump): Ditto.
18630 (thumb_eh_return): Ditto.
18631 (define_peephole2): Two of them are thumb1 only and got moved into
18632 new file thumb1.md.
18633 (define_split): Six of them are thumb1 only and got moved into new
18635 * config/arm/thumb1.md: New file comprised of above thumb1 only
18638 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18640 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
18641 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
18643 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
18644 (aarch64_crc_builtin_datum): New struct.
18645 (aarch64_crc_builtin_data): New.
18646 (aarch64_init_crc32_builtins): New function.
18647 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
18648 (aarch64_crc32_expand_builtin): New.
18649 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
18650 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
18651 __ARM_FEATURE_CRC32 when appropriate.
18652 (TARGET_CRC32): Define.
18653 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
18654 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
18655 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
18656 (aarch64_<crc_variant>): New pattern.
18657 * config/aarch64/arm_acle.h: New file.
18658 * config/aarch64/iterators.md (CRC): New int iterator.
18659 (crc_variant, crc_mode): New int attributes.
18660 * doc/aarch64-acle-intrinsics.texi: New file.
18661 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
18662 Include aarch64-acle-intrinsics.texi.
18664 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
18666 * tree-vect-data-refs.c (vect_grouped_store_supported): New
18667 check for stores group of length 3.
18668 (vect_permute_store_chain): New permutations for stores group of
18670 * tree-vect-stmts.c (vect_model_store_cost): Change cost
18671 of vec_perm_shuffle for the new permutations.
18673 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
18675 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
18676 table rewriting temporarily on targets not supporting ONE_ONLY.
18678 2014-06-11 Richard Biener <rguenther@suse.de>
18680 PR middle-end/61437
18682 2014-06-04 Richard Biener <rguenther@suse.de>
18684 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
18685 TREE_PUBLIC and DECL_EXTERNAL decls.
18687 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
18689 * varasm.c (set_implicit_section): New function.
18690 (resolve_unique_section): Use it to set implicit section
18692 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
18693 (default_function_section): Likewise.
18694 (decl_binds_to_current_def_p): Constify argument.
18695 * varasm.h (decl_binds_to_current_def_p): Update prototype.
18696 * asan.c (asan_protect_global): Use
18697 symtab_get_node (decl)->implicit_section.
18698 * symtab.c (dump_symtab_base): Dump implicit sections.
18699 (verify_symtab_base): Verify sanity of sectoins and comdats.
18700 (symtab_resolve_alias): Alias share the section of its target.
18701 (set_section_1): New function.
18702 (symtab_node::set_section): Move here, recurse to aliases.
18703 (verify_symtab): Check for duplicated symtab lists.
18704 * tree-core.h (implicit_section_name_p): Remove.
18705 * tree-vect-data-refs.c: Include varasm.h.
18706 (vect_can_force_dr_alignment_p): Fix conditional on when
18707 decl bints to current definition; use
18708 symtab_get_node (decl)->implicit_section.
18709 * cgraph.c (cgraph_make_node_local_1): Fix section set.
18710 * cgraph.h (struct symtab_node): Add implicit_section.
18711 (set_section): Rename to ...
18712 (set_section_for_node): ... this one.
18713 (set_section): Declare.
18714 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
18715 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
18716 input_overwrite_node, input_varpool_node): Stream implicit_section.
18717 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
18718 removal; it will fail in LTO.
18720 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18722 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
18723 Change second alternative type to f_mcr.
18724 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
18725 and 12th alternatives' types to f_mcr and f_mrc.
18726 (*movdi_aarch64): Same for 12th and 13th alternatives.
18727 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
18728 (aarch64_movtilow_tilow): Change type to fmov.
18730 2014-06-10 Jiong Wang <jiong.wang@arm.com>
18732 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
18733 (aarch64_save_or_restore_callee_save_registers): Fix layout.
18735 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18737 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
18739 (aarch64_sqrdmulh_lane<mode>): Likewise.
18740 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
18741 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
18742 (aarch64_sqdmulh_laneq<mode>): New expander.
18743 (aarch64_sqrdmulh_laneq<mode>): Likewise.
18744 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
18745 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
18746 (aarch64_sqdmulh_lane<mode>): New expander.
18747 (aarch64_sqrdmulh_lane<mode>): Likewise.
18748 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
18749 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
18750 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
18751 (aarch64_sqdmlal_laneq<mode>): Likewise.
18752 (aarch64_sqdmlsl_lane<mode>): Likewise.
18753 (aarch64_sqdmlsl_laneq<mode>): Likewise.
18754 (aarch64_sqdmlal2_lane<mode>): Likewise.
18755 (aarch64_sqdmlal2_laneq<mode>): Likewise.
18756 (aarch64_sqdmlsl2_lane<mode>): Likewise.
18757 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
18758 (aarch64_sqdmull_lane<mode>): Likewise.
18759 (aarch64_sqdmull_laneq<mode>): Likewise.
18760 (aarch64_sqdmull2_lane<mode>): Likewise.
18761 (aarch64_sqdmull2_laneq<mode>): Likewise.
18763 2014-06-10 Richard Biener <rguenther@suse.de>
18765 PR tree-optimization/61438
18766 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
18767 (eliminate_dom_walker::before_dom_children): Only try to inhibit
18768 insertion of IVs if running PRE.
18769 (eliminate): Adjust.
18770 (pass_pre::execute): Likewise.
18771 (pass_fre::execute): Likewise.
18773 2014-06-10 Richard Biener <rguenther@suse.de>
18775 PR middle-end/61456
18776 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
18777 Do not use the main variant for the type comparison.
18778 (ncr_compar): Likewise.
18779 (nonoverlapping_component_refs_p): Likewise.
18781 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
18783 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
18784 REG_CFA_RESTORE mode.
18786 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
18788 * config/i386/i386.c (expand_vec_perm_pblendv): New.
18789 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
18790 expand_vec_perm_pblendv.
18792 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18794 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
18796 Simplify description of __crc32d and __crc32cd intrinsics.
18797 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
18800 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
18803 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
18804 * config.in: Regenerate.
18805 * configure: Likewise.
18807 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
18809 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
18811 (intersect_static_var_sets): Remove.
18812 (propagate): Do not prune local statics.
18814 2014-06-10 Jakub Jelinek <jakub@redhat.com>
18817 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
18818 Set lastprivate_firstprivate even if omp_private_outer_ref
18819 langhook returns true.
18820 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
18821 langhook, call unshare_expr on new_var and call
18822 build_outer_var_ref to get the last argument.
18824 2014-06-10 Marek Polacek <polacek@redhat.com>
18827 * doc/extend.texi: Add cindex for transparent_union.
18829 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
18831 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
18832 init_symbolic_number ().
18834 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
18836 PR middle-end/61141
18837 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
18838 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
18839 (verify_rtl_sharing): Likewise.
18841 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
18844 * tree.c (build_qualified_type): Use a canonical type for
18847 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18849 * config/arm/arm-modes.def: Remove XFmode.
18851 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
18854 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
18855 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
18856 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
18857 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
18858 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
18859 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
18860 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
18861 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
18862 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
18864 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
18866 * tree-core.h (tree_decl_with_vis): Remove section_name.
18868 2014-06-09 Kito Cheng <kito@0xlab.org>
18870 * ira.c (ira): Don't call init_caller_save if LRA enabled
18871 since LRA use its own infrastructure to handle that.
18873 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
18875 * symtab.c (dump_symtab_base): Update dumping.
18876 (symtab_make_decl_local): Clear only DECL_COMDAT.
18877 * tree-vect-data-refs.c (Check that variable is static before
18878 tampering with sections.
18879 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
18880 (cgraph_create_virtual_clone): Likewise.
18881 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
18882 (decl_section_name, set_decl_section_name): New accessors.
18883 (find_decls_types_r): Do not walk section name
18884 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
18885 (decl_comdat_group, decl_comdat_group_id): Constify.
18886 (decl_section_name, set_decl_section_name): Update.
18887 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
18888 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
18889 (cgraph_make_node_local_1): Clear section and comdat group.
18890 * cgraph.h (set_comdat_group): Sanity check.
18891 (get_section, set_section): New.
18892 * ipa-comdats.c (ipa_comdats): Use get_section.
18893 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
18894 * lto-streamer-out.c: Do not follow section names.
18895 * c-family/c-common.c (handle_section_attribute): Update.
18896 * lto-cgraph.c (lto_output_node): Output section.
18897 (lto_output_varpool_node): Likewise.
18898 (read_comdat_group): Rename to ...
18899 (read_identifier): ... this one.
18900 (read_string_cst): New function.
18901 (input_node, input_varpool_node): Input section names.
18902 * tree-emutls.c (get_emutls_init_templ_addr): Update.
18903 (new_emutls_decl): Update.
18904 (secname_for_decl): Check section names only of static vars.
18905 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
18906 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
18907 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
18908 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
18909 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
18910 * config/mcore/mcore.c (mcore_unique_section): Likewise.
18911 * config/mips/mips.c (mips16_build_function_stub): Likewise.
18912 * config/v850/v850.c (v850_insert_attributes): Likewise.
18913 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
18915 (h8300_handle_tiny_data_attribute): Likewise.
18916 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
18917 (bfin_handle_l2_attribute): Likewise.
18919 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
18921 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
18922 remove static initializer.
18924 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
18926 * varasm.c (use_blocks_for_decl_p): Check symbol table
18927 instead of alias attribute.
18928 (place_block_symbol): Recurse on aliases.
18930 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
18932 * ipa-visibility.c: Include varasm.h
18933 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
18935 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
18937 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
18938 outputting aliases.
18940 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
18942 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
18943 from test_insn into GGC space escape via SET_SRC.
18945 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
18947 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
18948 call statement, if any.
18949 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
18950 statements, if any. Tidy up.
18952 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
18955 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
18956 iterators, VSX_D that handles 64-bit types, and VSX_LE that
18957 handles swapping the two 64-bit double words on little endian
18958 systems. Include V1TImode and optionally TImode in VSX_LE so that
18959 these types are properly swapped. Change all of the insns and
18960 splits that do the 64-bit swaps to use VSX_LE.
18961 (vsx_le_perm_load_<mode>): Likewise.
18962 (vsx_le_perm_store_<mode>): Likewise.
18963 (splitters for little endian memory operations): Likewise.
18964 (vsx_xxpermdi2_le_<mode>): Likewise.
18965 (vsx_lxvd2x2_le_<mode>): Likewise.
18966 (vsx_stxvd2x2_le_<mode>): Likewise.
18968 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
18971 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
18972 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
18973 and corresponding splitters. Zero extend general register
18974 or memory input operand to XMM temporary. Enable for
18975 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
18976 (floatunssi<mode>2): Update expander predicate.
18978 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
18980 PR rtl-optimization/61325
18981 * lra-constraints.c (process_address_1): Check scale equal to one
18982 to prevent transformation: base + scale * index => base + new_reg.
18984 2014-06-06 Richard Biener <rguenther@suse.de>
18986 PR tree-optimization/59299
18987 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
18989 (nearest_common_dominator_of_uses): Likewise.
18990 (statement_sink_location): Adjust. Support sinking loads.
18992 2014-06-06 Martin Jambor <mjambor@suse.cz>
18994 * ipa-prop.c (get_place_in_agg_contents_list): New function.
18995 (build_agg_jump_func_from_list): Likewise.
18996 (determine_known_aggregate_parts): Renamed to
18997 determine_locally_known_aggregate_parts. Moved some functionality
18998 to the two functions above, removed bound checks.
19000 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
19002 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
19003 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
19004 (aarch64_progress_pointer): Likewise.
19005 (aarch64_copy_one_part_and_move_pointers): Likewise.
19006 (aarch64_expand_movmen): Likewise.
19007 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
19008 * config/aarch64/aarch64.md (movmem<mode>): New.
19010 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
19012 * targhooks.c (default_add_stmt_cost): Call target specific
19013 hook instead of default one.
19015 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
19017 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
19018 endianness instead of host endianness.
19019 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
19022 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
19025 * function.c (instantiate_decls): Process the saved static chain.
19026 (expand_function_start): If not optimizing, save the static chain
19028 * tree-nested.c (convert_all_function_calls): Always create the static
19029 chain for nested functions if not optimizing.
19031 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
19033 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
19035 2014-06-06 Richard Biener <rguenther@suse.de>
19037 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
19038 (construct_init_block): Likewise.
19039 (construct_exit_block): Likewise.
19040 (pass_expand::execute): Likewise.
19041 * graphite.c (graphite_transforms): Replace check for current_loops
19042 with a check for > 1 loops.
19043 (pass_graphite_transforms::execute): Adjust.
19044 * ipa-split.c (split_function): Remove check for current_loops.
19045 * omp-low.c (expand_parallel_call): Likewise.
19046 (expand_omp_for_init_counts): Likewise.
19047 (extract_omp_for_update_vars): Likewise.
19048 (expand_omp_for_generic): Likewise.
19049 (expand_omp_sections): Likewise.
19050 (expand_omp_target): Likewise.
19051 * tracer.c (tail_duplicate): Likewise.
19052 (pass_tracer::execute): Likewise.
19053 * trans-mem.c (expand_transaction): Likewise.
19054 * tree-complex.c (expand_complex_div_wide): Likewise.
19055 * tree-eh.c (lower_resx): Likewise.
19056 (cleanup_empty_eh_merge_phis): Likewise.
19057 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
19058 current_loops with a check for > 1 loops.
19059 (pass_predcom::execute): Adjust.
19060 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
19061 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
19062 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
19063 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
19064 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
19065 * tree-switch-conversion.c (process_switch): Likewise.
19066 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
19067 * tree-vrp.c (vrp_visit_phi_node): Likewise.
19068 (execute_vrp): Likewise.
19069 * ubsan.c (ubsan_expand_null_ifn): Likewise.
19071 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
19073 * rtl.h (insn_location): Declare.
19074 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
19075 with UNKNOWN_LOCATION.
19076 * emit-rtl.c (insn_location): New function.
19077 * final.c (notice_source_line): Check that the instruction has a
19078 location before retrieving it and use insn_location.
19079 * modulo-sched.c (loop_single_full_bb_p): Likewise.
19080 * print-rtl.c (print_rtx): Likewise.
19082 2014-06-06 Richard Biener <rguenther@suse.de>
19084 * passes.def: Move 2nd VRP pass before phi-only-cprop.
19086 2014-06-06 Christian Bruel <christian.bruel@st.com>
19088 PR tree-optimization/43934
19089 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
19092 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
19094 * ira-lives.c (single_reg_class): Add missing break. Explicitly
19095 return NO_REGS for extra address and memory constraints. Handle
19096 operands that match (or are equivalent to something that matches)
19097 extra constant constraints. Ignore other non-register operands.
19099 2014-06-06 Alan Modra <amodra@gmail.com>
19102 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
19103 * doc/tm.texi: Regenerate.
19104 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
19105 Use throughout in place of REG_PARM_STACK_SPACE.
19106 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
19107 "incoming" param. Pass to rs6000_function_parms_need_stack.
19108 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
19109 prototype_p when incoming. Use function decl when incoming
19110 to handle K&R style functions.
19111 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
19112 (INCOMING_REG_PARM_STACK_SPACE): Define.
19114 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19117 * cfgexpand.c (expand_debug_expr): Use address space of nested
19118 TREE_TYPE for ADDR_EXPR and MEM_REF.
19120 2014-06-05 Jeff Law <law@redhat.com>
19122 PR tree-optimization/61289
19123 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
19124 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
19125 looking for those which match LHS. All callers changed.
19126 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
19127 parameters and code which manipulated them. All callers changed.
19128 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
19129 and DST_MAP parameters. Simplify invalidation code by just calling
19130 invalidate_equivalences. All callers changed.
19131 (thread_across_edge): Simplify now that we don't need to maintain
19132 the map of equivalences to invalidate.
19134 2014-06-05 Kai Tietz <ktietz@redhat.com>
19135 Richard Henderson <rth@redhat.com>
19138 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
19139 checking for !TARGET_X32.
19140 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
19141 (sibcall_intern): New define_insn, plus required peepholes.
19142 (sibcall_pop_intern): Likewise.
19143 (sibcall_value_intern): Likewise.
19144 (sibcall_value_pop_intern): Likewise.
19146 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
19148 * tree-inline.c (tree_function_versioning): Check DF info existence
19149 before accessing it.
19151 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
19153 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
19155 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
19156 aarch64_frame hard_fp_offset and frame_size.
19157 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
19158 frame_size; remove original_frame_size.
19159 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
19160 (aarch64_initial_elimination_offset): Remove frame_size and
19161 offset. Use aarch64_frame frame_size.
19163 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
19164 Jiong Wang <jiong.wang@arm.com>
19165 Renlin <renlin.li@arm.com>
19167 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
19168 initialization of R30 offset. Update offset. Iterate core
19169 regisers upto X30. Remove X29, X30 specific code.
19171 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
19172 Jiong Wang <jiong.wang@arm.com>
19174 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
19175 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
19176 (aarch64_register_saved_on_entry): Adjust test.
19178 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
19180 * config/aarch64/aarch64.h (machine_function): Move
19181 saved_varargs_size from here...
19182 (aarch64_frame): ... to here.
19184 * config/aarch64/aarch64.c (aarch64_expand_prologue)
19185 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
19186 (aarch64_initial_elimination_offset)
19187 (aarch64_setup_incoming_varargs): Adjust location of
19188 saved_varargs_size.
19190 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
19192 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
19195 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
19196 Prachi Godbole <Prachi.Godbole@imgtec.com>
19198 * config/mips/mips-cpus.def: Add definition for p5600. Updated
19199 mips32r5 entry to use PROCESSOR_P5600.
19200 * config/mips/mips-tables.opt: Regenerate.
19201 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
19202 * config/mips/mips.c (mips_fmadd_bypass): New function.
19203 (mips_rtx_cost_data): Add costs for p5600.
19204 (mips_issue_rate): Add support for p5600.
19205 (mips_multipass_dfa_lookahead): Likewise.
19206 * config/mips/mips.h (TUNE_P5600): New define.
19207 (TUNE_MACC_CHAINS): Add TUNE_P5600.
19208 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
19209 * config/mips/mips.md: Include p5600.md.
19210 (processor): Add p5600.
19211 * config/mips/p5600.md: New file.
19213 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
19215 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
19216 * config/i386/predicates.md (palignr_operand): New.
19217 Indicates if permutation is suitable for palignr instruction.
19219 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
19221 PR tree-optimization/61319
19222 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
19223 stmt belongs to loop.
19225 2014-06-05 Richard Biener <rguenther@suse.de>
19227 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
19228 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
19229 (lookup_tmp_var): Adjust.
19230 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
19232 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19234 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
19236 2014-06-05 Marek Polacek <polacek@redhat.com>
19239 * doc/invoke.texi: Document -Wlogical-not-parentheses.
19241 2014-06-04 Tom de Vries <tom@codesourcery.com>
19243 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
19246 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
19248 PR tree-optimization/61385
19249 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
19251 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
19253 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
19254 changed to use fatal_error.
19255 (main): Ensure lto_wrapper_cleanup is run atexit.
19257 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
19259 * lra-constraints.c (valid_address_p): Move earlier in file.
19260 (address_eliminator): New structure.
19261 (satisfies_memory_constraint_p): New function.
19262 (satisfies_address_constraint_p): Likewise.
19263 (process_alt_operands, process_address, curr_insn_transform): Use them.
19265 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
19267 * lra-int.h (lra_static_insn_data): Make operand_alternative a
19269 (target_lra_int, default_target_lra_int, this_target_lra_int)
19270 (op_alt_data): Delete.
19271 * lra.h (lra_init): Delete.
19272 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
19273 (init_insn_code_data_once): Remove op_alt_data handling.
19274 (finish_insn_code_data_once): Likewise.
19275 (init_op_alt_data): Delete.
19276 (get_static_insn_data): Initialize operand_alternative to null.
19277 (free_insn_recog_data): Cast operand_alternative before freeing it.
19278 (setup_operand_alternative): Take the operand_alternative as
19279 parameter and assume it isn't already cached in the static
19281 (lra_set_insn_recog_data): Update accordingly.
19282 (lra_init): Delete.
19283 * ira.c (ira_init): Don't call lra_init.
19284 * target-globals.h (this_target_lra_int): Declare.
19285 (target_globals): Remove lra_int.
19286 (restore_target_globals): Update accordingly.
19287 * target-globals.c: Don't include lra-int.h.
19288 (default_target_globals, save_target_globals): Remove lra_int.
19290 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
19292 * recog.h (operand_alternative): Convert reg_class, reject,
19293 matched and matches into bitfields.
19294 (preprocess_constraints): New overload.
19295 (preprocess_insn_constraints): New function.
19296 (preprocess_constraints): Take the insn as parameter.
19297 (recog_op_alt): Change into a pointer.
19298 (target_recog): Add x_op_alt.
19299 * recog.c (asm_op_alt): New variable.
19300 (recog_op_alt): Change into a pointer.
19301 (preprocess_constraints): New overload, replacing the old function
19302 definition with one that doesn't use global state.
19303 (preprocess_insn_constraints): New function.
19304 (preprocess_constraints): Use them. Take the insn as parameter.
19305 Use asm_op_alt for asms.
19306 (recog_init): Free existing x_op_alt entries.
19307 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
19309 (make_early_clobber_and_input_conflicts): Likewise.
19310 (process_bb_node_lives): Pass the insn to process_constraints.
19311 * reg-stack.c (check_asm_stack_operands): Likewise.
19312 (subst_asm_stack_regs): Likewise.
19313 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
19314 * regrename.c (build_def_use): Likewise.
19315 * sched-deps.c (sched_analyze_insn): Likewise.
19316 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
19317 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
19318 (note_invalid_constants): Likewise.
19319 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
19320 (ix86_legitimate_combined_insn): Make operand_alternative pointer
19323 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
19325 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
19326 * ira-lives.c (check_and_make_def_conflict): Check for disabled
19328 (make_early_clobber_and_input_conflicts): Likewise.
19329 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
19331 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
19333 * recog.h (alternative_class): New function.
19334 (which_op_alt): Return a const recog_op_alt.
19335 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
19336 (subst_asm_stack_regs): Likewise.
19337 * config/arm/arm.c (note_invalid_constants): Likewise.
19338 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
19339 the operand_alternative; use alternative class instead.
19340 * sel-sched.c (get_reg_class): Likewise.
19341 * regrename.c (build_def_use): Likewise.
19342 (hide_operands, restore_operands, record_out_operands): Update type
19345 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
19347 * recog.h (recog_op_alt): Convert to a flat array.
19348 (which_op_alt): New function.
19349 * recog.c (recog_op_alt): Convert to a flat array.
19350 (preprocess_constraints): Update accordingly, grouping all
19351 operands of the same alternative together, rather than the
19353 * ira-lives.c (check_and_make_def_conflict): Likewise.
19354 (make_early_clobber_and_input_conflicts): Likewise.
19355 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
19356 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
19357 (subst_asm_stack_regs): Likewise.
19358 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
19359 * regrename.c (hide_operands, record_out_operands): Likewise.
19360 (build_def_use): Likewise.
19361 * sel-sched.c (get_reg_class): Likewise.
19362 * config/arm/arm.c (note_invalid_constants): Likewise.
19364 2014-06-04 Jason Merrill <jason@redhat.com>
19368 * gimplify.c (gimplify_arg): Non-static.
19369 * gimplify.h: Declare it.
19371 2014-06-04 Richard Biener <rguenther@suse.de>
19373 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
19374 TREE_PUBLIC and DECL_EXTERNAL decls.
19376 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
19378 * regcprop.c (copyprop_hardreg_forward_1): Account for
19379 HARD_REGNO_CALL_PART_CLOBBERED.
19381 2014-06-04 Richard Biener <rguenther@suse.de>
19383 * configure.ac: Check whether the underlying type of int64_t
19384 is long or long long.
19385 * configure: Regenerate.
19386 * config.in: Likewise.
19387 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
19388 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
19390 2014-06-04 Richard Biener <rguenther@suse.de>
19392 PR tree-optimization/60098
19393 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
19395 (dse_optimize_stmt): Simplify, now that we found a kill
19398 2014-06-04 Richard Biener <rguenther@suse.de>
19400 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
19401 of accesses with non-invariant address.
19403 2014-06-04 Martin Liska <mliska@suse.cz>
19405 * cgraph.h (cgraph_make_wrapper): New function introduced.
19406 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
19407 * ipa-inline.h (inline_analyze_function): The function is global.
19408 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
19410 2014-06-04 Martin Liska <mliska@suse.cz>
19412 * tree.h (private_lookup_attribute_starting): New function.
19413 (lookup_attribute_starting): Likewise.
19414 * tree.c (private_lookup_attribute_starting): Likewise.
19416 2014-06-04 Martin Liska <mliska@suse.cz>
19418 * cgraph.h (expand_thunk): New argument added.
19419 (address_taken_from_non_vtable_p): New global function.
19420 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
19421 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
19422 * cgraphunit.c (analyze_function): Likewise.
19423 (assemble_thunks_and_aliases): Argument added to call.
19424 (expand_thunk): New argument forces to produce GIMPLE thunk.
19426 2014-06-04 Martin Liska <mliska@suse.cz>
19428 * coverage.h (coverage_compute_cfg_checksum): Argument added.
19429 * coverage.c (coverage_compute_cfg_checksum): Likewise.
19430 * profile.c (branch_prob): Likewise.
19432 2014-06-04 Martin Jambor <mjambor@suse.cz>
19435 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
19436 handler for switch on an ipa_ref_use enum.
19437 * ipa-reference.c (analyze_function): Likewise.
19439 2014-06-04 Kai Tietz <ktietz@redhat.com>
19441 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
19442 from old call-instruction.
19444 2014-06-04 Bin Cheng <bin.cheng@arm.com>
19446 * config/aarch64/aarch64.c (aarch64_classify_address)
19447 (aarch64_legitimize_reload_address): Support full addressing modes
19449 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
19450 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
19452 2014-06-03 Andrew Pinski <apinski@cavium.com>
19454 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
19457 2014-06-03 Andrew Pinski <apinski@cavium.com>
19459 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
19460 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
19462 2014-06-03 Kai Tietz <ktietz@redhat.com>
19464 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
19467 2014-06-03 Dehao Chen <dehao@google.com>
19469 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
19472 2014-06-03 Marek Polacek <polacek@redhat.com>
19475 * doc/invoke.texi: Document -Wswitch-bool.
19476 * function.c (stack_protect_epilogue): Cast controlling expression of
19478 * gengtype.c (walk_type): Generate switch expression with its
19479 controlling expression cast to int.
19481 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
19483 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
19485 * config/avr/avr-tables.opt: Regenerate.
19486 * config/avr/t-multilib: Regenerate.
19487 * doc/avr-mmcu.texi: Regenerate.
19489 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
19490 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
19492 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
19493 (ata6617c, ata664251): Add new avr35 devices.
19494 (ata6612c): Add new avr4 device.
19495 (ata6613c, ata6614q): Add new avr5 devices.
19496 * config/avr/avr-tables.opt: Regenerate.
19497 * config/avr/t-multilib: Regenerate.
19498 * doc/avr-mmcu.texi: Regenerate.
19500 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
19502 * gcc/config/aarch64/aarch64-builtins.c
19503 (aarch64_types_binop_ssu_qualifiers): New static data.
19504 (TYPES_BINOP_SSU): Define.
19505 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
19506 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
19507 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
19508 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
19509 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
19510 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
19511 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
19512 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
19513 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
19514 suffix to builtin function name, remove cast.
19515 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
19516 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
19517 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
19519 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
19521 * gcc/config/aarch64/aarch64-builtins.c
19522 (aarch64_types_binop_uus_qualifiers,
19523 aarch64_types_shift_to_unsigned_qualifiers,
19524 aarch64_types_unsigned_shiftacc_qualifiers): Define.
19525 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
19526 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
19527 sqshlu_n, uqshl_n): Update qualifiers.
19528 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
19529 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
19530 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
19531 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
19532 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
19533 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
19534 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
19535 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
19536 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
19537 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
19538 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
19539 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
19540 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
19541 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
19542 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
19543 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
19544 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
19545 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
19546 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
19547 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
19548 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
19549 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
19550 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
19551 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
19552 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
19553 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
19554 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
19556 2014-06-03 Teresa Johnson <tejohnson@google.com>
19558 * tree-sra.c (modify_function): Record caller nodes after rebuild.
19560 2014-06-02 Jason Merrill <jason@redhat.com>
19563 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
19565 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
19567 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
19570 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
19572 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
19574 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
19575 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
19576 * config/aarch64/iterators.md (REVERSE): New iterator.
19577 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
19578 (rev_op): New int_attribute.
19579 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
19580 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
19581 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
19582 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
19583 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
19584 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
19585 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
19586 Replace temporary __asm__ with __builtin_shuffle.
19588 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
19590 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
19592 * config/mips/mips-tables.opt: Regenerate.
19593 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
19594 to use mips_isa_rev rather than ISA_MIPS32R2.
19595 * config/mips/mips.h (ISA_MIPS32R3): New define.
19596 (ISA_MIPS32R5): New define.
19597 (ISA_MIPS64R3): New define.
19598 (ISA_MIPS64R5): New define.
19599 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
19600 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
19601 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
19603 (MIPS_ISA_SYNCI_SPEC): Likewise.
19604 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
19605 (LINK_SPEC): Added mips32r3 and mips32r5.
19606 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
19607 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
19608 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
19609 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
19610 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
19611 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
19612 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
19614 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
19616 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
19618 * config/mips/mips.opt (mxpa): New option.
19619 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
19622 2014-06-03 Martin Jambor <mjambor@suse.cz>
19625 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
19628 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
19630 PR tree-optimization/61328
19631 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
19632 initialization from find_bswap_or_nop_1.
19633 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
19634 in source_expr2 before using the size value the function sets. Also
19635 make use of init_symbolic_number () in both the old place and
19636 find_bswap_or_nop_load () to avoid reading uninitialized memory when
19637 doing recursion in the GIMPLE_BINARY_RHS case.
19639 2014-06-03 Richard Biener <rguenther@suse.de>
19641 PR tree-optimization/61383
19642 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
19645 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
19647 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
19648 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
19649 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
19650 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
19652 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
19653 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
19654 * system.h: ...here and make it unconditional.
19655 * target.def (conditional_register_usage): Mention
19656 define_register_constraint instead of old-style constraint macros.
19657 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
19658 * doc/tm.texi: Regenerate.
19659 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
19660 protected by !USE_MD_CONSTRAINTS.
19661 * config/frv/frv.md: Remove quote from old version of documentation.
19662 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
19663 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
19664 CONST_DOUBLE_OK_FOR_LETTER.
19665 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
19667 2014-06-02 Andrew Pinski <apinski@cavium.com>
19669 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
19670 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
19671 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
19672 file whose name depends on -mabi= and -mbig-endian.
19673 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
19674 Handle LP64 better and handle ilp32 too.
19675 (MULTILIB_OPTIONS): Delete.
19676 (MULTILIB_DIRNAMES): Delete.
19678 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
19680 * expr.h: Remove prototypes of functions defined in builtins.c.
19681 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
19682 Remove prototypes of functions defined in builtins.c.
19683 * builtins.h: Update prototype list to include all exported functions.
19684 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
19685 no_c99_libc_has_function): Move to targhooks.c
19686 (build_string_literal, build_call_expr_loc_array,
19687 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
19689 (expand_builtin_object_size, fold_builtin_object_size): Make static.
19690 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
19691 no_c99_libc_has_function): Relocate from builtins.c.
19692 * tree.c: Include builtins.h.
19693 (build_call_expr_loc_array, build_call_expr_loc_vec,
19694 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
19696 * fold-const.h (fold_fma): Move prototype to builtins.h.
19697 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
19698 * asan.c: Include builtins.h.
19699 * cfgexpand.c: Likewise.
19700 * convert.c: Likewise.
19701 * emit-rtl.c: Likewise.
19702 * except.c: Likewise.
19703 * expr.c: Likewise.
19704 * fold-const.c: Likewise.
19705 * gimple-fold.c: Likewise.
19706 * gimple-ssa-strength-reduction.c: Likewise.
19707 * gimplify.c: Likewise.
19708 * ipa-inline.c: Likewise.
19709 * ipa-prop.c: Likewise.
19710 * lto-streamer-out.c: Likewise.
19711 * stmt.c: Likewise.
19712 * tree-inline.c: Likewise.
19713 * tree-object-size.c: Likewise.
19714 * tree-sra.c: Likewise.
19715 * tree-ssa-ccp.c: Likewise.
19716 * tree-ssa-forwprop.c: Likewise.
19717 * tree-ssa-loop-ivcanon.c: Likewise.
19718 * tree-ssa-loop-ivopts.c: Likewise.
19719 * tree-ssa-math-opts.c: Likewise.
19720 * tree-ssa-reassoc.c: Likewise.
19721 * tree-ssa-threadedge.c: Likewise.
19722 * tree-streamer-in.c: Likewise.
19723 * tree-vect-data-refs.c: Likewise.
19724 * tree-vect-patterns.c: Likewise.
19725 * tree-vect-stmts.c: Likewise.
19726 * config/aarch64/aarch64.c: Likewise.
19727 * config/alpha/alpha.c: Likewise.
19728 * config/arc/arc.c: Likewise.
19729 * config/arm/arm.c: Likewise.
19730 * config/avr/avr.c: Likewise.
19731 * config/bfin/bfin.c: Likewise.
19732 * config/c6x/c6x.c: Likewise.
19733 * config/cr16/cr16.c: Likewise.
19734 * config/cris/cris.c: Likewise.
19735 * config/epiphany/epiphany.c: Likewise.
19736 * config/fr30/fr30.c: Likewise.
19737 * config/frv/frv.c: Likewise.
19738 * config/h8300/h8300.c: Likewise.
19739 * config/i386/i386.c: Likewise.
19740 * config/i386/winnt.c: Likewise.
19741 * config/ia64/ia64.c: Likewise.
19742 * config/iq2000/iq2000.c: Likewise.
19743 * config/lm32/lm32.c: Likewise.
19744 * config/m32c/m32c.c: Likewise.
19745 * config/m32r/m32r.c: Likewise.
19746 * config/m68k/m68k.c: Likewise.
19747 * config/mcore/mcore.c: Likewise.
19748 * config/mep/mep.c: Likewise.
19749 * config/microblaze/microblaze.c: Likewise.
19750 * config/mips/mips.c: Likewise.
19751 * config/mmix/mmix.c: Likewise.
19752 * config/mn10300/mn10300.c: Likewise.
19753 * config/moxie/moxie.c: Likewise.
19754 * config/msp430/msp430.c: Likewise.
19755 * config/nds32/nds32.c: Likewise.
19756 * config/pa/pa.c: Likewise.
19757 * config/pdp11/pdp11.c: Likewise.
19758 * config/picochip/picochip.c: Likewise.
19759 * config/rl78/rl78.c: Likewise.
19760 * config/rs6000/rs6000.c: Likewise.
19761 * config/rx/rx.c: Likewise.
19762 * config/s390/s390.c: Likewise.
19763 * config/score/score.c: Likewise.
19764 * config/sh/sh.c: Likewise.
19765 * config/sparc/sparc.c: Likewise.
19766 * config/spu/spu.c: Likewise.
19767 * config/stormy16/stormy16.c: Likewise.
19768 * config/tilegx/tilegx.c: Likewise.
19769 * config/tilepro/tilepro.c: Likewise.
19770 * config/v850/v850.c: Likewise.
19771 * config/vax/vax.c: Likewise.
19772 * config/xtensa/xtensa.c: Likewise.
19774 2014-06-02 Jeff Law <law@redhat.com>
19776 PR rtl-optimization/61094
19777 * ree.c (combine_reaching_defs): Do not reextend an insn if it
19778 was marked as do_no_reextend. If a copy is needed to eliminate
19779 an extension, then mark it as do_not_reextend.
19781 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
19783 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
19785 2014-06-02 Richard Henderson <rth@redhat.com>
19788 * config/alpha/alpha.c (print_operand_address): Allow symbolic
19789 addresses inside asms. Use output_operand_lossage instead of
19792 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
19795 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
19796 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
19798 2014-06-02 Tom de Vries <tom@codesourcery.com>
19800 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
19801 case that x has VOIDmode.
19803 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
19805 * varasm.c (copy_constant): Delete function.
19806 (build_constant_desc): Don't call it.
19808 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19811 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
19812 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
19813 with immediate_operand.
19815 2014-06-02 Andreas Schwab <schwab@suse.de>
19817 * config/ia64/ia64.c
19818 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
19819 pending_data_specs first.
19821 2014-06-02 Richard Biener <rguenther@suse.de>
19823 PR tree-optimization/61378
19824 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
19825 valueized_anything.
19827 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
19829 * config/i386/constraints.md (Bw): Rename from 'w'.
19830 (Bz): Rename from 'z'.
19831 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
19833 2014-06-01 Kai Tietz <ktietz@redhat.com>
19836 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
19837 * config/i386/i386.md (sibcall_insn_operand): Use Bs
19838 instead of m constraint.
19840 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
19842 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
19843 a separate alternative where the scratch operand 2 is marked as
19846 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
19848 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
19849 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
19850 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
19851 and __builtins_arm_get_fpscr.
19852 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
19853 __builtins_arm_get_fpscr.
19854 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
19855 __builtins_arm_ldfpscr.
19856 (arm_atomic_assign_expand_fenv): New function.
19857 * config/arm/vfp.md (set_fpscr): New pattern.
19858 (get_fpscr) : Likewise.
19859 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
19861 * doc/extend.texi (AARCH64 Built-in Functions) : Document
19862 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
19864 2014-05-30 Jakub Jelinek <jakub@redhat.com>
19866 * asan.c (report_error_func): Add SLOW_P argument, use
19867 BUILT_IN_ASAN_*_N if set.
19868 (build_check_stmt): Likewise.
19869 (instrument_derefs): If T has insufficient alignment,
19870 force same handling as for odd sizes.
19872 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
19873 BUILT_IN_ASAN_REPORT_STORE_N): New.
19874 * asan.c (struct asan_mem_ref): Change access_size type to
19876 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
19877 update_mem_ref_hash_table): Likewise.
19878 (asan_mem_ref_hasher::hash): Hash in a HWI.
19879 (report_error_func): Change size_in_bytes argument to HWI.
19880 Use *_N builtins if size_in_bytes is larger than 16 or not power of
19882 (build_shadow_mem_access): New function.
19883 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
19884 Handle size_in_bytes not power of two or larger than 16.
19885 (instrument_derefs): Don't give up if size_in_bytes is not
19886 power of two or is larger than 16.
19888 2014-05-30 Kai Tietz <ktietz@redhat.com>
19891 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
19892 for sibling-tail-calls.
19893 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
19895 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
19896 (sibcall_insn_operand): Add check for sibcall_memory_operand.
19898 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
19900 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
19901 * config/avr/avr-tables.opt: Regenerate.
19902 * config/avr/t-multilib: Regenerate.
19903 * doc/avr-mmcu.texi: Regenerate.
19905 2014-05-30 Ian Lance Taylor <iant@google.com>
19907 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
19910 2014-05-30 Tom de Vries <tom@codesourcery.com>
19912 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
19915 2014-05-30 Tom de Vries <tom@codesourcery.com>
19917 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
19918 * lra.c (initialize_lra_reg_info_element): Add init of
19919 actual_call_used_reg_set field.
19920 (lra): Call lra_create_live_ranges before lra_inheritance for
19922 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
19924 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
19925 instead of call_used_reg_set for -fuse-caller-save.
19926 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
19928 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19930 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
19932 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
19934 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
19936 * ira.c (ira_get_dup_out_num): Check for output operands at
19937 the start of the loop. Handle cases where an included alternative
19938 follows an excluded one.
19940 2014-05-29 Mike Stump <mikestump@comcast.net>
19943 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
19944 post ld passes when lto is used.
19946 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
19948 PR rtl-optimization/61325
19949 * lra-constraints.c (process_address): Rename to process_address_1.
19950 (process_address): New function.
19952 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
19954 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
19955 TYPES_BINOPV): New static data.
19956 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
19958 * config/aarch64/aarch64-simd.md (aarch64_ext,
19959 aarch64_im_lane_boundsi): New patterns.
19960 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
19962 (aarch64_evpc_ext): New function.
19964 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
19966 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
19967 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
19968 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
19969 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
19970 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
19972 2014-05-29 Tom de Vries <tom@codesourcery.com>
19974 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
19976 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
19977 Richard Sandiford <rdsandiford@googlemail.com>
19979 * arm/iterators.md (shiftable_ops): New code iterator.
19980 (t2_binop0, arith_shift_insn): New code attributes.
19981 * arm/predicates.md (shift_nomul_operator): New predicate.
19982 * arm/arm.md (insn_enabled): Delete.
19983 (enabled): Remove insn_enabled test.
19984 (*arith_shiftsi): Delete. Replace with ...
19985 (*<arith_shift_insn>_multsi): ... new pattern.
19986 (*<arith_shift_insn>_shiftsi): ... new pattern.
19987 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
19989 2014-05-29 Radovan Obradovic <robradovic@mips.com>
19990 Tom de Vries <tom@codesourcery.com>
19992 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
19993 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
19995 (mips_split_call): Use POST_CALL_TMP_REG.
19996 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
19998 2014-05-29 Tom de Vries <tom@codesourcery.com>
20000 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
20001 with #ifdef STACK_REGS.
20003 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
20005 * varasm.c (get_variable_section): Walk aliases.
20006 (place_block_symbol): Walk aliases.
20008 2014-05-28 Tom de Vries <tom@codesourcery.com>
20011 2014-05-28 Tom de Vries <tom@codesourcery.com>
20013 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
20014 * lra.c (initialize_lra_reg_info_element): Add init of
20015 actual_call_used_reg_set field.
20016 (lra): Call lra_create_live_ranges before lra_inheritance for
20018 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
20020 * lra-constraints.c (need_for_call_save_p): Use
20021 actual_call_used_reg_set instead of call_used_reg_set for
20023 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
20025 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
20027 * doc/md.texi: Document that the % constraint character must
20028 be at the beginning of the string.
20029 * genoutput.c (validate_insn_alternatives): Check that '=',
20030 '+' and '%' only appear at the beginning of a constraint.
20031 * ira.c (commutative_constraint_p): Delete.
20032 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
20033 at the start of the string.
20034 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
20036 * config/arm/neon.md (bicdi3_neon): Likewise.
20037 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
20038 (slt_si, sltu_si): Likewise.
20039 * config/vax/vax.md (sbcdi3): Likewise.
20040 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
20041 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
20042 (mul64): Move '%' to beginning of constraint.
20043 * config/arm/arm.md (*xordi3_insn): Likewise.
20044 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
20045 (xorsi3): Likewise.
20047 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
20049 * doc/md.texi: Document the restrictions on the "enabled" attribute.
20051 2014-05-28 Jason Merrill <jason@redhat.com>
20054 * cgraph.h (symtab_node::get_comdat_group_id): New.
20055 * cgraphunit.c (analyze_functions): Call it.
20056 * symtab.c (dump_symtab_node): Likewise.
20057 * tree.c (decl_comdat_group_id): New.
20058 * tree.h: Declare it.
20059 * lto-streamer-out.c (write_symbol): Use it.
20060 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
20062 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
20064 PR bootstrap/PR61146
20065 * wide-int.cc: Do not include longlong.h when compiling with clang.
20067 2014-05-28 Richard Biener <rguenther@suse.de>
20069 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
20070 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
20071 (vrp_visit_assignment_or_call): Print less vertical space.
20072 (vrp_visit_stmt): Likewise.
20073 (vrp_visit_phi_node): Likewise. For a PHI argument with
20074 VR_VARYING range consider recording it as copy.
20076 2014-05-28 Richard Biener <rguenther@suse.de>
20079 2014-05-28 Richard Biener <rguenther@suse.de>
20081 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
20083 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
20085 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
20086 sufficiently aligned and an offset is used at the same time.
20087 (expand_expr_real_1): Likewise.
20089 2014-05-28 Richard Biener <rguenther@suse.de>
20091 PR middle-end/61045
20092 * fold-const.c (fold_comparison): When folding
20093 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
20094 the sign of the remaining constant operand stays the same.
20096 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
20098 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
20099 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
20100 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
20102 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
20103 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
20104 (m32bit-doubles) Likewise.
20105 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
20106 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
20109 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20111 * configure.ac ($gcc_cv_ld_clearcap): New test.
20112 * configure: Regenerate.
20113 * config.in: Regenerate.
20114 * config/sol2.opt (mclear-hwcap): New option.
20115 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
20116 * config/sol2-clearcap.map: Moved here from
20117 testsuite/gcc.target/i386/clearcap.map.
20118 * config/sol2-clearcapv2.map: Move here from
20119 gcc.target/i386/clearcapv2.map.
20120 * config/t-sol2 (install): Depend on install-clearcap-map.
20121 (install-clearcap-map): New target.
20122 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
20125 2014-05-28 Richard Biener <rguenther@suse.de>
20127 * hwint.h (*_HALF_WIDE_INT*): Move to ...
20128 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
20129 ... here and remove the rest.
20130 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
20132 2014-05-28 Richard Biener <rguenther@suse.de>
20134 PR tree-optimization/61335
20135 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
20136 new range fails, drop to varying.
20138 2014-05-28 Olivier Hainque <hainque@adacore.com>
20140 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
20141 (CPP_SPEC): Add entry for -mcpu=8548.
20142 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
20143 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
20145 2014-05-28 Tom de Vries <tom@codesourcery.com>
20147 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
20148 * lra.c (initialize_lra_reg_info_element): Add init of
20149 actual_call_used_reg_set field.
20150 (lra): Call lra_create_live_ranges before lra_inheritance for
20152 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
20154 * lra-constraints.c (need_for_call_save_p): Use
20155 actual_call_used_reg_set instead of call_used_reg_set for
20157 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
20159 2014-05-28 Radovan Obradovic <robradovic@mips.com>
20160 Tom de Vries <tom@codesourcery.com>
20162 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
20164 (@item -fuse-caller-save): New item.
20166 2014-05-28 Radovan Obradovic <robradovic@mips.com>
20167 Tom de Vries <tom@codesourcery.com>
20169 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
20170 OPT_fuse_caller_save.
20172 2014-05-28 Radovan Obradovic <robradovic@mips.com>
20173 Tom de Vries <tom@codesourcery.com>
20175 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
20176 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
20177 get_call_reg_set_usage.
20178 * resource.c (mark_set_resources, mark_target_live_regs): Use
20179 get_call_reg_set_usage.
20180 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
20182 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
20183 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
20184 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
20185 * ira-build.c (ira_create_allocno): Init
20186 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
20187 (create_cap_allocno, propagate_allocno_info)
20188 (propagate_some_info_from_allocno)
20189 (copy_info_to_removed_store_destinations): Handle
20190 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
20191 * ira-costs.c (ira_tune_allocno_costs): Use
20192 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
20194 2014-05-28 Radovan Obradovic <robradovic@mips.com>
20195 Tom de Vries <tom@codesourcery.com>
20197 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
20198 and function_used_regs_valid fields.
20199 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
20200 find_all_hard_reg_sets.
20201 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
20202 (get_call_reg_set_usage): New function.
20203 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
20204 * regs.h (get_call_reg_set_usage): Declare.
20206 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
20209 * config/dbx.h (License): Add Runtime Library Exception.
20210 * config/newlib-stdint.h (License): Same.
20211 * config/rtems.h (License): Same
20212 * config/initfini-array.h (License): Same
20213 * config/v850/v850.h (License): Same.
20214 * config/v850/v850-opts.h (License): Same
20215 * config/v850/rtems.h (License): Same.
20217 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
20220 * doc/extend.texi (Local Labels): Note that label differences are
20221 not supported for AVR.
20223 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
20224 Olivier Hainque <hainque@adacore.com>
20226 * rtl.h (set_for_reg_notes): Declare.
20227 * emit-rtl.c (set_for_reg_notes): New function.
20228 (set_unique_reg_note): Use it.
20229 * optabs.c (add_equal_note): Likewise
20231 2014-05-27 Andrew Pinski <apinski@cavium.com>
20233 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
20234 Use <w> for the register in assembly template.
20235 (stack_protect_test): Use the mode of operands[0] for the result.
20236 (stack_protect_test_<mode>): Use <w> for the register
20237 in assembly template.
20239 2014-05-27 DJ Delorie <dj@redhat.com>
20241 * config/rx/rx.c (add_vector_labels): New.
20242 (rx_output_function_prologue): Call it.
20243 (rx_handle_func_attribute): Don't require empty arguments.
20244 (rx_handle_vector_attribute): New.
20245 (rx_attribute_table): Add "vector" attribute.
20246 * doc/extend.texi (interrupt, vector): Document new/changed
20247 RX-specific attributes.
20249 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
20251 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
20253 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
20254 predicate to detect a negative quotient.
20256 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
20258 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
20259 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
20260 Add X - Y CMP 0 to X CMP Y transformation.
20261 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
20263 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
20265 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
20268 2014-05-27 Steve Ellcey <sellcey@mips.com>
20270 * config/mips/mips.c: Add include of cgraph.h.
20272 2014-05-27 Richard Biener <rguenther@suse.de>
20274 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
20276 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
20279 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
20280 * config/arm/arm-cores.def (License): Same.
20281 * config/arm/arm-opts.h (License): Same.
20282 * config/arm/aout.h (License): Same.
20283 * config/arm/bpabi.h (License): Same.
20284 * config/arm/elf.h (License): Same.
20285 * config/arm/linux-elf.h (License): Same.
20286 * config/arm/linux-gas.h (License): Same.
20287 * config/arm/netbsd-elf.h (License): Same.
20288 * config/arm/uclinux-eabi.h (License): Same.
20289 * config/arm/uclinux-elf.h (License): Same.
20290 * config/arm/vxworks.h (License): Same.
20292 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20294 * config/arm/neon.md (neon_bswap<mode>): New pattern.
20295 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
20296 (arm_init_neon_builtins): Handle NEON_BSWAP.
20297 Define required type nodes.
20298 (arm_expand_neon_builtin): Handle NEON_BSWAP.
20299 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
20300 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
20301 * config/arm/iterators.md (VDQHSD): New mode iterator.
20303 2014-05-27 Richard Biener <rguenther@suse.de>
20305 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
20306 Try using literal operands when comparing value-ranges failed.
20308 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
20310 * ira.c (commutative_operand): Adjust for change to recog_data.
20311 [Missing from previous commit.]
20313 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
20315 * system.h (TEST_BIT): New macro.
20316 * recog.h (alternative_mask): New type.
20317 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
20318 (recog_data_d): Replace alternative_enabled_p array with
20319 enabled_alternatives.
20320 (target_recog): New structure.
20321 (default_target_recog, this_target_recog): Declare.
20322 (get_enabled_alternatives, recog_init): Likewise.
20323 * recog.c (default_target_recog, this_target_recog): New variables.
20324 (get_enabled_alternatives): New function.
20325 (extract_insn): Use it.
20326 (recog_init): New function.
20327 (preprocess_constraints, constrain_operands): Adjust for change to
20329 * postreload.c (reload_cse_simplify_operands): Likewise.
20330 * reload.c (find_reloads): Likewise.
20331 * ira-costs.c (record_reg_classes): Likewise.
20332 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
20333 all alternatives after a disabled one would be skipped.
20334 (ira_implicitly_set_insn_hard_regs): Likewise.
20335 * ira.c (ira_setup_alts): Adjust for change to recog_data.
20336 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
20337 with enabled_alternatives.
20338 * lra.c (free_insn_recog_data): Update accordingly.
20339 (lra_update_insn_recog_data): Likewise.
20340 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
20341 * lra-constraints.c (process_alt_operands): Likewise. Handle
20342 only_alternative as part of the enabled mask.
20343 * target-globals.h (this_target_recog): Declare.
20344 (target_globals): Add a recog field.
20345 (restore_target_globals): Restore this_target_recog.
20346 * target-globals.c: Include recog.h.
20347 (default_target_globals): Initialize recog field.
20348 (save_target_globals): Likewise.
20349 * reginfo.c (reinit_regs): Call recog_init.
20350 * toplev.c (backend_init_target): Likewise.
20352 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
20354 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
20355 rather than any named insn's code.
20357 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
20360 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
20361 * config/arm/arm-cores.def (License): Same.
20363 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
20365 * tree.h (decl_comdat_group): Declare.
20366 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
20367 * tree.c (decl_comdat_group): Here.
20369 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
20371 PR rtl-optimization/61222
20372 * combine.c (simplify_shift_const_1): When moving a PLUS outside
20373 the shift, truncate the PLUS operand to the result mode.
20375 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
20378 * config/i386/i386.c (ix86_rtx_costs)
20379 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
20382 2014-05-26 Martin Jambor <mjambor@suse.cz>
20384 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
20387 2014-05-26 Richard Biener <rguenther@suse.de>
20389 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
20390 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
20391 Provide specializations.
20392 (wi::int_traits <HOST_WIDE_INT>,
20393 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
20395 2014-05-26 Alan Modra <amodra@gmail.com>
20398 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
20399 params and return a bool. Remove dead code. Update comment.
20400 Assert we have a const_int source. Remove bogus code from
20401 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
20402 handling of constants > 2G and reg_equal note, from..
20403 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
20404 return value. Update comment. If we can, use a new pseudo
20405 for intermediate calculations.
20406 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
20408 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
20409 call to rs6000_emit_set_const in splitter.
20410 (movdi_internal64+2, +3): Likewise.
20412 2014-05-26 Richard Biener <rguenther@suse.de>
20414 * system.h: Define __STDC_FORMAT_MACROS before
20415 including inttypes.h.
20416 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
20417 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
20418 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
20419 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
20420 HOST_WIDEST_INT_C): Remove.
20421 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
20422 if C99 inttypes.h is not available.
20423 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
20424 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
20425 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
20426 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
20427 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
20428 (struct output_info): Likewise.
20429 (print_statistics): Adjust.
20430 (dump_bitmap_statistics): Likewise.
20431 * bt-load.c (migrate_btr_defs): Print with PRId64.
20432 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
20433 (MAX_SAFE_MULTIPLIER): Adjust.
20434 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
20435 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
20436 dump_cgraph_node): Likewise.
20437 * final.c (dump_basic_block_info): Likewise.
20438 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
20439 * gcov.c (format_gcov): Likewise.
20440 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
20442 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
20443 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
20444 (inline_small_functions, dump_overall_stats, dump_inline_stats):
20445 Use PRId64 for dumping.
20446 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
20447 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
20448 (add_allocno_hard_regs): Adjust.
20449 * loop-doloop.c (doloop_modify): Print using PRId64.
20450 * loop-iv.c (inverse): Compute in uint64_t.
20451 (determine_max_iter, iv_number_of_iterations): Likewise.
20452 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
20453 Print using PRId64.
20454 * lto-streamer-out.c (write_symbol): Use uint64_t.
20455 * mcf.c (CAP_INFINITY): Use int64_t maximum.
20456 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
20457 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
20458 * modulo-sched.c (const_iteration_count): Use int64_t.
20459 (sms_schedule): Dump using PRId64.
20460 * predict.c (dump_prediction): Likewise.
20461 * pretty-print.h (pp_widest_integer): Remove.
20462 * profile.c (get_working_sets, is_edge_inconsistent,
20463 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
20464 * tree-pretty-print.c (pp_double_int): Remove case handling
20465 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
20466 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
20468 (pass_optimize_bswap::execute): Remove restriction on hosts.
20469 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
20470 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
20471 * tree.c (widest_int_cst_value): Remove.
20472 * tree.h (widest_int_cst_value): Likewise.
20473 * value-prof.c (dump_histogram_value): Print using PRId64.
20474 * gengtype.c (main): Also inject int64_t.
20475 * ggc-page.c (struct max_alignment): Use int64_t.
20476 * alloc-pool.c (struct allocation_object_def): Likewise.
20477 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
20479 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
20480 * doc/tm.texi: Regenerated.
20481 * gengtype-lex.l (IWORD): Handle [u]int64_t.
20482 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
20483 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
20484 mmix_output_register_setting): Use [u]int64_t in prototypes.
20485 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
20486 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
20487 mmix_output_octa, mmix_output_shifted_value): Adjust.
20488 (mmix_intval): Adjust. Remove unreachable case.
20489 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
20491 2014-05-26 Richard Biener <rguenther@suse.de>
20493 * configure.ac: Drop __int64 type check. Insist that we
20494 found uint64_t and int64_t.
20495 * hwint.h (HOST_BITS_PER___INT64): Remove.
20496 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
20497 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
20498 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
20499 (HOST_WIDEST_FAST_INT): Remove __int64 case.
20500 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
20501 for dst_q_src_df_rms_cdt.
20502 * configure: Regenerate.
20503 * config.in: Likewise.
20505 2014-05-26 Michael Tautschnig <mt@debian.org>
20508 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
20509 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
20511 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20513 PR rtl-optimization/61278
20514 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
20516 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
20518 PR rtl-optimization/61220
20519 Part of PR rtl-optimization/61225
20520 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
20521 insn; skip split_edge for a block with only one successor.
20523 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20525 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
20528 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20530 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
20531 (update_vtable_references): New function.
20532 (function_and_variable_visibility): Rewrite also vtable initializers.
20533 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
20535 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20537 * ggc.h (ggc_grow): New function.
20538 * ggc-none.c (ggc_grow): New function.
20539 * ggc-page.c (ggc_grow): Likewise.
20541 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20543 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
20544 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
20545 comdat_can_be_unshared_p, cgraph_externally_visible_p,
20546 varpool_externally_visible_p, can_replace_by_local_alias,
20547 update_visibility_by_resolution_info, function_and_variable_visibility,
20548 pass_data_ipa_function_and_variable_visibility,
20549 make_pass_ipa_function_and_variable_visibility,
20550 whole_program_function_and_variable_visibility,
20551 pass_data_ipa_whole_program_visibility,
20552 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
20553 * cgraph.h (cgraph_local_node_p): Declare.
20554 * ipa-visibility.c: New file.
20555 * Makefile.in (OBJS): Add ipa-visiblity.o
20557 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20559 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
20560 that var decl is available.
20562 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20564 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
20565 symtab_node pointer.
20566 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
20567 (find_decls_types_r): Do not walk COMDAT_GROUP.
20568 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
20569 * varasm.c (make_decl_one_only): Use set_comdat_group;
20570 create node if needed.
20571 * ipa-inline-transform.c (save_inline_function_body): Update
20572 way we decl->symtab mapping.
20573 * symtab.c (symtab_hash, hash_node, eq_node
20574 symtab_insert_node_to_hashtable): Remove.
20575 (symtab_register_node): Update.
20576 (symtab_unregister_node): Update.
20577 (symtab_get_node): Reimplement as inline function.
20578 (symtab_add_to_same_comdat_group): Update.
20579 (symtab_dissolve_same_comdat_group_list): Update.
20580 (dump_symtab_base): Update.
20581 (verify_symtab_base): Update.
20582 (symtab_make_decl_local): Update.
20583 (fixup_same_cpp_alias_visibility): Update.
20584 (symtab_nonoverwritable_alias): Update.
20585 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
20586 * ipa.c (update_visibility_by_resolution_info): UPdate.
20587 * bb-reorder.c: Include cgraph.h
20588 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
20589 with comdat groups.
20590 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
20591 * cgraph.c (cgraph_get_create_node): Update.
20592 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
20594 (symtab_get_node): Make inline.
20595 (symtab_insert_node_to_hashtable): Remove.
20596 (symtab_can_be_discarded): Update.
20597 (decl_comdat_group): New function.
20598 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
20600 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
20602 (read_comdat_group): New function.
20603 (input_node, input_varpool_node): Use it.
20604 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
20606 * mips.c (mips_start_unique_function): Likewise.
20607 (ix86_code_end): Likewise.
20608 (rs6000_code_end): Likweise.
20609 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
20611 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20613 * gengtype-state.c (fatal_reading_state): Bring offline.
20614 * optabs.c (widening_optab_handler): Bring offline.
20615 * optabs.h (widening_optab_handler): Likewise.
20616 * final.c (get_attr_length_1): Likewise.
20618 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
20620 * sched-int.h (sd_iterator_cond): Manually tail recurse.
20622 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20624 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
20625 (ppc440-compare): Include shift with dot.
20626 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
20627 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
20629 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
20631 (e6500_sfx2): Include it.
20632 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
20633 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
20634 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
20635 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
20636 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
20637 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
20638 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
20639 *lshiftrt_internal1le, *lshiftrt_internal1be,
20640 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
20641 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
20642 *rotldi3_internal10le, *rotldi3_internal10be,
20643 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
20644 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
20645 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
20646 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
20647 define_insns): Use type "shift" in the appropriate alternatives.
20649 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20651 * config/rs6000/rs6000.md (type): Add "logical". Delete
20653 (dot): Adjust comment.
20654 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
20655 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
20656 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
20657 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
20658 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
20659 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
20660 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
20661 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
20663 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
20664 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
20665 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
20666 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
20667 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
20668 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
20669 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
20670 * config/rs6000/8540.md (ppc8540_su): Adjust.
20671 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20672 cell-cmp-microcoded): Adjust.
20673 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
20674 * config/rs6000/e500mc.md (e500mc_su): Adjust.
20675 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
20676 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
20677 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
20678 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
20679 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
20680 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
20681 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
20683 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
20684 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
20685 Adjust. Adjust comment.
20686 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
20687 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
20689 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20691 * config/rs6000/rs6000.md (type): Add "add".
20692 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
20693 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
20694 define_insns): Use it.
20695 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
20697 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
20698 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
20699 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
20700 * config/rs6000/601.md (ppc601-integer): Adjust.
20701 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
20702 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
20703 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
20704 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
20705 * config/rs6000/8540.md (ppc8540_su): Adjust.
20706 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20707 cell-cmp-microcoded): Adjust.
20708 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
20709 * config/rs6000/e500mc.md (e500mc_su): Adjust.
20710 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
20711 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
20712 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
20713 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
20714 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
20715 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
20716 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
20718 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
20719 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
20720 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
20721 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
20723 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20725 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
20726 "delayed_compare", "var_delayed_compare".
20727 (var_shift): New attribute.
20728 (cell_micro): Adjust.
20729 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
20730 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
20731 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
20732 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20733 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20734 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20735 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20736 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
20737 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
20738 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
20739 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
20740 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
20741 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
20742 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
20743 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
20744 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
20745 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
20746 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
20747 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
20748 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
20749 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
20750 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
20751 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
20752 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20753 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
20755 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
20756 * config/rs6000/440.md (ppc440-integer): Adjust.
20757 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
20758 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
20759 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
20760 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
20761 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
20762 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
20763 * config/rs6000/8540.md (ppc8540_su): Adjust.
20764 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
20765 cell-cmp-microcoded): Adjust.
20766 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
20767 * config/rs6000/e500mc.md (e500mc_su): Adjust.
20768 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
20769 e500mc64_delayed): Adjust.
20770 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
20771 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
20772 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
20773 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
20774 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
20775 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
20776 power6-delayed-compare, power6-var-delayed-compare): Adjust.
20777 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
20778 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
20780 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
20781 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
20783 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20785 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
20786 (bits): New mode_attr.
20787 (idiv_ldiv): Delete mode_attr.
20788 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
20789 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20790 rs6000_adjust_priority, is_nonpipeline_insn,
20791 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
20793 * config/rs6000/40x.md (ppc403-idiv): Adjust.
20794 * config/rs6000/440.md (ppc440-idiv): Adjust.
20795 * config/rs6000/476.md (ppc476-idiv): Adjust.
20796 * config/rs6000/601.md (ppc601-idiv): Adjust.
20797 * config/rs6000/603.md (ppc603-idiv): Adjust.
20798 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
20799 ppc620-ldiv): Adjust.
20800 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
20801 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
20802 * config/rs6000/8540.md (ppc8540_divide): Adjust.
20803 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
20804 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
20805 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
20806 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
20807 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
20808 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
20809 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
20810 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
20811 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
20812 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
20813 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
20814 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
20815 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
20816 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
20817 * config/rs6000/titan.md (titan_fxu_div): Adjust.
20819 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20821 * config/rs6000/rs6000.md (type): Delete "insert_word",
20822 "insert_dword". Add "insert".
20823 (size): Update comment.
20824 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20825 insn_must_be_first_in_group): Adjust.
20826 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
20827 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
20828 *insvsi_internal6, insvdi_internal): Adjust.
20830 * config/rs6000/40x.md (ppc403-integer): Adjust.
20831 * config/rs6000/440.md (ppc440-integer): Adjust.
20832 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
20833 * config/rs6000/601.md (ppc601-integer): Adjust.
20834 * config/rs6000/603.md (ppc603-integer): Adjust.
20835 * config/rs6000/6xx.md (ppc604-integer): Adjust.
20836 * config/rs6000/7450.md (ppc7450-integer): Adjust.
20837 * config/rs6000/7xx.md (ppc750-integer): Adjust.
20838 * config/rs6000/8540.md (ppc8540_su): Adjust.
20839 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
20840 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
20841 * config/rs6000/e500mc.md (e500mc_su): Adjust.
20842 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
20843 * config/rs6000/e5500.md (e5500_sfx): Adjust.
20844 * config/rs6000/e6500.md (e6500_sfx): Adjust.
20845 * config/rs6000/mpc.md (mpccore-integer): Adjust.
20846 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
20847 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
20848 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
20849 * config/rs6000/power7.md (power7-integer): Adjust.
20850 * config/rs6000/power8.md (power8-1cyc): Adjust.
20851 * config/rs6000/rs64.md (rs64a-integer): Adjust.
20852 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
20854 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20856 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
20857 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
20858 (size): New attribute.
20859 (dot): New attribute.
20860 (cell_micro): Adjust.
20861 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
20862 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
20863 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
20864 umuldi3_highpart): Adjust.
20865 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
20866 rs6000_adjust_priority, is_nonpipeline_insn,
20867 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
20869 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
20870 ppc405-imul3): Adjust.
20871 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
20872 * config/rs6000/476.md (ppc476-imul): Adjust.
20873 * config/rs6000/601.md (ppc601-imul): Adjust.
20874 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
20875 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
20876 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
20877 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
20878 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
20880 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
20881 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
20882 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
20883 cell-imul): Adjust.
20884 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
20885 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
20886 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
20887 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
20888 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
20889 * config/rs6000/mpc.md (mpccore-imul): Adjust.
20890 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
20891 power4-lmul, power4-imul, power4-imul3): Adjust.
20892 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
20893 power5-lmul, power5-imul, power5-imul3): Adjust.
20894 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
20895 power6-lmul, power6-imul, power6-imul3): Adjust.
20896 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
20897 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
20899 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
20900 rs64a-lmul): Adjust.
20901 * config/rs6000/titan.md (titan_imul): Adjust.
20903 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20905 * config/rs6000/rs6000.md (type): Add new value "halfmul".
20906 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
20907 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
20908 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
20909 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
20910 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
20911 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
20912 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
20913 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
20914 * config/rs6000/titan.md: Delete nonsensical comment.
20915 (titan_imul): Add type imul3.
20916 (titan_mulhw): Remove type imul3; add type halfmul.
20918 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
20920 * config/rs6000/rs6000.md (type): Reorder, reformat.
20922 2014-05-23 Martin Jambor <mjambor@suse.cz>
20924 PR tree-optimization/53787
20925 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
20926 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
20927 analysis_done, update all uses.
20928 * ipa-prop.c: Include domwalk.h
20929 (param_analysis_info): Removed.
20930 (param_aa_status): New type.
20931 (ipa_bb_info): Likewise.
20932 (func_body_info): Likewise.
20933 (ipa_get_bb_info): New function.
20934 (aa_overwalked): Likewise.
20935 (find_dominating_aa_status): Likewise.
20936 (parm_bb_aa_status_for_bb): Likewise.
20937 (parm_preserved_before_stmt_p): Changed to use new param AA info.
20938 (load_from_unmodified_param): Accept func_body_info as a parameter
20939 instead of parms_ainfo.
20940 (parm_ref_data_preserved_p): Changed to use new param AA info.
20941 (parm_ref_data_pass_through_p): Likewise.
20942 (ipa_load_from_parm_agg_1): Likewise. Update callers.
20943 (compute_complex_assign_jump_func): Changed to use new param AA info.
20944 (compute_complex_ancestor_jump_func): Likewise.
20945 (ipa_compute_jump_functions_for_edge): Likewise.
20946 (ipa_compute_jump_functions): Removed.
20947 (ipa_compute_jump_functions_for_bb): New function.
20948 (ipa_analyze_indirect_call_uses): Likewise, moved variable
20950 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
20951 and info, moved variable declarations down.
20952 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
20954 (ipa_analyze_stmt_uses): Likewise.
20955 (ipa_analyze_params_uses): Removed.
20956 (ipa_analyze_params_uses_in_bb): New function.
20957 (ipa_analyze_controlled_uses): Likewise.
20958 (free_ipa_bb_info): Likewise.
20959 (analysis_dom_walker): New class.
20960 (ipa_analyze_node): Handle node-specific forbidden analysis,
20961 initialize and free func_body_info, use dominator walker.
20962 (ipcp_modif_dom_walker): New class.
20963 (ipcp_transform_function): Create and free func_body_info, use
20964 ipcp_modif_dom_walker, moved a lot of functionality there.
20966 2014-05-23 Marek Polacek <polacek@redhat.com>
20967 Jakub Jelinek <jakub@redhat.com>
20969 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
20970 * gcc.c (sanitize_spec_function): Likewise.
20971 * convert.c (convert_to_integer): Include "ubsan.h". Add
20972 floating-point to integer instrumentation.
20973 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
20974 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
20975 SANITIZE_NONDEFAULT.
20976 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
20977 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
20978 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
20979 * ubsan.c: Include "realmpfr.h" and "dfp.h".
20980 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
20981 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
20982 float/double/long double.
20983 (ubsan_instrument_float_cast): New function.
20984 * ubsan.h (ubsan_instrument_float_cast): Declare.
20986 2014-05-23 Jiong Wang <jiong.wang@arm.com>
20988 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
20990 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
20991 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
20992 Adjust for tailcalling through registers.
20993 * config/aarch64/aarch64.h (enum reg_class): New caller save
20995 (REG_CLASS_NAMES): Likewise.
20996 (REG_CLASS_CONTENTS): Likewise.
20997 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
20998 Allow tailcalling without decls.
21000 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
21002 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
21003 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
21005 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
21006 gsi, and variables v_* to v*.
21008 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
21010 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
21012 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
21014 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
21015 * omp-low.c: Update accordingly.
21017 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
21018 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
21019 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
21020 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
21021 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
21022 GF_OMP_TARGET_KIND_UPDATE.
21024 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
21025 Explicitly enumerate the expected region types.
21027 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
21030 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
21031 documentation; the old documentation didn't clearly state the
21032 constraints on the contents of the pointed-to storage.
21034 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21036 Fix bootstrap error on ia64
21037 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
21038 Return default value.
21040 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
21042 PR tree-optimization/54733
21043 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
21045 (find_bswap_or_nop_load): New.
21046 (find_bswap_1): Renamed to ...
21047 (find_bswap_or_nop_1): This. Also add support for memory source.
21048 (find_bswap): Renamed to ...
21049 (find_bswap_or_nop): This. Also add support for memory source and
21050 detection of bitwise operations equivalent to load in target
21052 (execute_optimize_bswap): Likewise. Also move its leading comment back
21053 in place and split statement transformation into ...
21054 (bswap_replace): This.
21056 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
21058 PR rtl-optimization/61215
21059 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
21060 simplify_gen_subreg until final substitution.
21062 2014-05-23 Alan Modra <amodra@gmail.com>
21065 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
21066 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
21067 Use "Y" constraint rather than "m".
21069 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
21071 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
21073 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
21074 New function declaration.
21075 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
21076 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
21077 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
21078 (aarch64_init_builtins) : Initialize builtins
21079 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
21080 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
21081 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
21082 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
21083 and __builtins_aarch64_set_fpsr.
21084 (aarch64_atomic_assign_expand_fenv): New function.
21085 * config/aarch64/aarch64.md (set_fpcr): New pattern.
21086 (get_fpcr) : Likewise.
21087 (set_fpsr) : Likewise.
21088 (get_fpsr) : Likewise.
21089 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
21090 and UNSPECV_SET_FPSR.
21091 * doc/extend.texi (AARCH64 Built-in Functions) : Document
21092 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
21093 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
21095 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
21097 PR rtl-optimization/60969
21098 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
21099 constraints. Set up mem cost for NO_REGS case.
21101 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
21103 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
21105 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
21107 * config/darwin.c: Include "lto-section-names.h".
21108 (LTO_SEGMENT_NAME): Don't define.
21109 * config/i386/winnt.c: Include "lto-section-names.h".
21110 * lto-streamer.c: Include "lto-section-names.h".
21111 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
21112 * lto-wrapper.c: Include "lto-section-names.h".
21113 (LTO_SECTION_NAME_PREFIX): Don't define.
21114 * lto-section-names.h: New file.
21115 * cgraphunit.c: Include "lto-section-names.h".
21117 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
21119 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
21121 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
21124 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
21126 2014-05-22 Nick Clifton <nickc@redhat.com>
21128 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
21130 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
21132 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
21133 -> (T)A transformation to integer types.
21135 2014-05-22 Teresa Johnson <tejohnson@google.com>
21137 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
21138 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
21139 (gcov_rewrite): Use gcov_nonruntime_assert.
21140 (gcov_open): Ditto.
21141 (gcov_write_words): Ditto.
21142 (gcov_write_length): Ditto.
21143 (gcov_read_words): Use gcov_nonruntime_assert, and remove
21144 gcc_assert from IN_LIBGCOV code.
21145 (gcov_read_summary): Use gcov_error to flag profile corruption.
21146 (gcov_sync): Use gcov_nonruntime_assert.
21147 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
21148 (gcov_histo_index): Use gcov_nonruntime_assert.
21149 (static void gcov_histogram_merge): Ditto.
21150 (compute_working_sets): Ditto.
21151 * gcov-io.h (gcov_nonruntime_assert): Define.
21152 (gcov_error): Define for !IN_LIBGCOV
21154 2014-05-22 Richard Biener <rguenther@suse.de>
21156 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
21157 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
21158 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
21159 and deallocation site.
21160 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21161 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
21162 passing through the incoming points-to set.
21163 (handle_lhs_call): Use flags argument instead of recomputing it.
21164 (find_func_aliases_for_call): Call handle_lhs_call with proper
21167 2014-05-22 Jakub Jelinek <jakub@redhat.com>
21169 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
21170 all padding bits in REAL_VALUE_TYPE are cleared.
21172 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21174 Cleanup and improve multipass_dfa_lookahead_guard
21175 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
21176 (core2i7_first_cycle_multipass_begin,)
21177 (core2i7_first_cycle_multipass_issue,)
21178 (core2i7_first_cycle_multipass_backtrack): Update signature.
21179 * config/ia64/ia64.c
21180 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
21181 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
21182 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
21184 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
21185 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
21187 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
21189 * doc/tm.texi: Regenerate.
21191 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
21192 * haifa-sched.c (ready_try): Make signed to allow negative values.
21193 (rebug_ready_list_1): Update.
21194 (choose_ready): Simplify.
21195 (sched_extend_ready_list): Update.
21197 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21199 Remove IA64 speculation tweaking flags
21200 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
21201 speculation tuning flags.
21202 (msched-prefer-non-data-spec-insns,)
21203 (msched-prefer-non-control-spec-insns): Obsolete options.
21204 * haifa-sched.c (choose_ready): Remove handling of
21205 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
21206 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
21207 and PREFER_NON_DATA_SPEC.
21208 * sel-sched.c (process_spec_exprs): Remove handling of
21209 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
21211 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21213 Improve scheduling debug output
21214 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
21215 (advance_one_cycle): Update.
21216 (schedule_insn, queue_to_ready): Add debug printouts.
21217 (debug_ready_list_1): New static function.
21218 (debug_ready_list): Update.
21219 (max_issue): Add debug printouts.
21220 (dump_insn_stream): New static function.
21221 (schedule_block): Use it. Also better indent printouts.
21223 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21225 Fix sched_insn debug counter
21226 * haifa-sched.c (schedule_insn): Update.
21227 (struct haifa_saved_data): Add nonscheduled_insns_begin.
21228 (save_backtrack_point, restore_backtrack_point): Update.
21229 (first_nonscheduled_insn): New static function.
21230 (queue_to_ready, choose_ready): Use it.
21231 (schedule_block): Init nonscheduled_insns_begin.
21232 (sched_emit_insn): Update.
21235 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
21237 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
21239 (aarch64_secondary_reload) : LikeWise.
21240 (aarch64_class_max_nregs) : Remove CORE_REGS.
21241 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
21242 (REG_CLASS_NAMES) : Likewise.
21243 (REG_CLASS_CONTENTS) : LikeWise.
21244 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
21246 2014-05-21 Guozhi Wei <carrot@google.com>
21249 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
21251 (vqdmulhq_n_s16): Likewise.
21253 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
21255 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
21257 2014-05-21 Marek Polacek <polacek@redhat.com>
21260 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
21262 2014-05-21 Martin Jambor <mjambor@suse.cz>
21264 * doc/invoke.texi (Optimize Options): Document parameters
21265 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
21266 ipa-cp-array-index-hint-bonus.
21268 2014-05-21 Mark Wielaard <mjw@redhat.com>
21271 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
21272 version >= 3 or not strict DWARF.
21273 * langhooks.h (struct lang_hooks_for_types): Add
21274 enum_underlying_base_type.
21275 * langhooks.c (lhd_enum_underlying_base_type): New function.
21276 * gcc/langhooks.h (struct lang_hooks_for_types): Add
21277 enum_underlying_base_type.
21278 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
21279 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
21280 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
21282 2014-05-21 Richard Biener <rguenther@suse.de>
21284 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
21286 2014-05-21 John Marino <gnugcc@marino.st>
21288 * config.gcc (*-*-dragonfly*): New target.
21289 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
21290 * configure: Regenerate.
21291 * config/dragonfly-stdint.h: New.
21292 * config/dragonfly.h: New.
21293 * config/dragonfly.opt: New.
21294 * config/i386/dragonfly.h: New.
21295 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
21297 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
21299 * tree.def (VOID_CST): New.
21300 * tree-core.h (TI_VOID): New.
21301 * tree.h (void_node): New.
21302 * tree.c (tree_node_structure_for_code, tree_code_size)
21303 (iterative_hash_expr): Handle VOID_CST.
21304 (build_common_tree_nodes): Initialize void_node.
21306 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
21308 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
21310 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
21312 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
21315 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
21316 flag_reorder_blocks_and_partition.
21317 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
21319 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
21322 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
21324 (*addc_r_t): Add new insn_and_split.
21326 2014-05-21 Jakub Jelinek <jakub@redhat.com>
21328 PR middle-end/61252
21329 * omp-low.c (handle_simd_reference): New function.
21330 (lower_rec_input_clauses): Use it. Defer adding reference
21331 initialization even for reduction without placeholder if in simd,
21332 handle it properly later on.
21334 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
21336 PR tree-optimization/60899
21337 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
21338 assume all static symbols will have definition wile parsing and
21339 check the do have definition later in compilation; check that
21340 variable referring symbol will be output before concluding that
21341 reference is safe; be conservative for referring local statics;
21342 be more precise about when comdat is output in other partition.
21344 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
21347 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
21349 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
21350 (ipa_inline): Loop inline_to_all_callers until no more aliases
21353 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
21355 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
21356 set writeonly flag only for vars actually written to.
21358 2014-05-20 Dehao Chen <dehao@google.com>
21360 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
21361 and callee count to get clone count.
21362 * tree-inline.c (expand_call_inline): Use callee count instead of bb
21363 count in copy_body.
21365 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
21367 PR rtl-optimization/61243
21368 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
21370 2014-05-20 Xinliang David Li <davidxl@google.com>
21372 * cgraphunit.c (walk_polymorphic_call_targets): Add
21373 dbgcnt and fopt-info support.
21374 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
21375 * ipa-devirt.c (ipa_devirt): Ditto.
21376 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
21377 * ipa.c (walk_polymorphic_call_targets): Ditto.
21378 * gimple-fold.c (fold_gimple_assign): Ditto.
21379 (gimple_fold_call): Ditto.
21380 * dbgcnt.def: New counter.
21382 2014-05-20 DJ Delorie <dj@redhat.com>
21384 * config/msp430/msp430.md (split): Don't allow subregs when
21385 splitting SImode adds.
21386 (andneghi): Fix subtraction logic.
21387 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
21389 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
21391 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
21393 * except.c (switch_to_exception_section, resolve_unique_section,
21394 get_named_text_section, default_function_rodata_section,
21395 align_variable, get_block_for_decl, default_section_type_flags):
21396 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
21397 * symtab.c (symtab_add_to_same_comdat_group,
21398 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
21399 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
21401 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
21402 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
21403 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
21404 (c6x_function_in_section_p): Likewise.
21405 * config/darwin.c (machopic_select_section): Likewise.
21406 * config/arm/arm.c (arm_function_in_section_p): Likewise.
21407 * config/mips/mips.c (mips_function_rodata_section): Likewise.
21408 * config/mep/mep.c (mep_select_section): LIkewise.
21409 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
21411 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
21413 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
21414 EH region of calls to pure functions that can throw an exception.
21415 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
21416 (copy_reference_ops_from_call): Also copy the EH region of the call if
21417 it can throw an exception.
21419 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21421 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
21422 nested VEC_SELECTs that are inverses of each other.
21424 2014-05-20 Richard Biener <rguenther@suse.de>
21426 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
21427 (extract_and_process_scc_for_name): not here.
21428 (cond_dom_walker::before_dom_children): Only process
21429 stmts that end the BB in interesting ways.
21430 (run_scc_vn): Mark param uses as visited.
21432 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21434 * config/arm/arm.md (arith_shiftsi): Do not predicate for
21437 2014-05-20 Nick Clifton <nickc@redhat.com>
21439 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
21440 (msp430_gimplify_va_arg_expr): New function.
21441 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
21443 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
21444 operand 0 in order to prevent confusion about the number of
21445 registers involved.
21447 2014-05-20 Richard Biener <rguenther@suse.de>
21449 PR tree-optimization/61221
21450 * tree-ssa-pre.c (el_to_update): Remove.
21451 (eliminate_dom_walker::before_dom_children): Handle released
21452 VDEFs by value-numbering them to the associated VUSE. Update
21453 stmt immediately for substituted call address.
21454 (eliminate): Remove delayed stmt updating code.
21455 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
21456 possibly late re-numbered vuses.
21457 (vn_reference_lookup_2): Adjust.
21458 (vn_reference_lookup_pieces): Likewise.
21459 (vn_reference_lookup): Likewise.
21461 2014-05-20 Richard Biener <rguenther@suse.de>
21463 * config.gcc: Remove need_64bit_hwint.
21464 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
21465 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
21467 * config.in: Regenerate.
21468 * configure: Likewise.
21470 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
21472 * doc/extend.texi: Create Label Attributes section,
21473 move all label attributes into it and reference it.
21475 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
21477 * arm.c (thumb1_reorg): When scanning backwards skip anything
21478 that's not a proper insn.
21480 2014-05-19 Richard Biener <rguenther@suse.de>
21482 PR tree-optimization/61221
21483 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21484 Do nothing for unreachable blocks.
21485 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
21486 Improve unreachability detection.
21488 2014-05-19 Richard Biener <rguenther@suse.de>
21490 PR tree-optimization/61209
21491 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
21493 2014-05-19 Nick Clifton <nickc@redhat.com>
21495 * except.c (init_eh): Fix computation of builtin setjmp buffer
21496 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
21498 2014-05-19 Richard Biener <rguenther@suse.de>
21500 PR tree-optimization/61184
21501 * tree-vrp.c (is_negative_overflow_infinity): Use
21502 TREE_OVERFLOW_P and do that check first.
21503 (is_positive_overflow_infinity): Likewise.
21504 (is_overflow_infinity): Likewise.
21505 (vrp_operand_equal_p): Properly treat operands with
21506 differing overflow as not equal.
21508 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
21510 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
21511 shift simplification where it was intended.
21513 2014-05-19 Christian Bruel <christian.bruel@st.com>
21516 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
21518 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
21521 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
21524 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
21526 * reg-notes.def (CROSSING_JUMP): Likewise.
21527 * rtl.h (rtx_def): Update comment for jump flag.
21528 (CROSSING_JUMP_P): Define.
21529 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
21530 of a REG_CROSSING_JUMP note.
21531 * cfghooks.c (tidy_fallthru_edges): Likewise.
21532 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
21533 * emit-rtl.c (try_split): Likewise.
21534 * haifa-sched.c (sched_create_recovery_edges): Likewise.
21535 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
21536 * jump.c (redirect_jump_2): Likewise.
21537 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
21538 (relax_delay_slots): Likewise.
21539 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
21540 (bbit_di): Likewise.
21541 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
21542 * config/sh/sh.md (jump_compact): Likewise.
21543 * bb-reorder.c (rotate_loop): Likewise.
21544 (pass_duplicate_computed_gotos::execute): Likewise.
21545 (add_reg_crossing_jump_notes): Rename to...
21546 (update_crossing_jump_flags): ...this.
21547 (pass_partition_blocks::execute): Update accordingly.
21549 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
21551 * tree.h: Remove extraneous template <>.
21553 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
21555 * ipa.c (symtab_remove_unreachable_nodes): Remove
21556 symbol from comdat group if its body was eliminated.
21557 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
21558 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
21559 (symtab_unregister_node): ... this one.
21560 (verify_symtab_base): More strict checking of comdats.
21561 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
21563 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
21565 * tree-pass.h (make_pass_ipa_comdats): New pass.
21566 * timevar.def (TV_IPA_COMDATS): New timevar.
21567 * passes.def (pass_ipa_comdats): Add.
21568 * Makefile.in (OBJS): Add ipa-comdats.o
21569 * ipa-comdats.c: New file.
21571 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
21573 * ipa.c (update_visibility_by_resolution_info): New function.
21574 (function_and_variable_visibility): Use it.
21576 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
21578 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
21580 (FOR_EACH_DEFINED_SYMBOL): New macro.
21581 (varpool_first_static_initializer, varpool_next_static_initializer,
21582 varpool_first_defined_variable, varpool_next_defined_variable):
21584 (symtab_in_same_comdat_p): Correctly deal with inline functions.
21586 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
21588 * ggc-page.c (ggc_handle_finalizers): Add comment.
21590 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
21592 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
21593 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
21594 (ggc_internal_cleared_alloc): Likewise.
21595 * ggc-page.c (finalizer): New class.
21596 (vec_finalizer): Likewise.
21597 (globals::finalizers): New member.
21598 (globals::vec_finalizers): Likewise.
21599 (ggc_internal_alloc): Record the finalizer if any for the block being
21601 (ggc_handle_finalizers): New function.
21602 (ggc_collect): Call ggc_handle_finalizers.
21603 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
21605 (ggc_internal_cleared_alloc): Likewise.
21606 (finalize): New function.
21607 (need_finalization_p): Likewise.
21608 (ggc_alloc): Install the type's destructor as the finalizer if it
21609 might do something.
21610 (ggc_cleared_alloc): Likewise.
21611 (ggc_vec_alloc): Likewise.
21612 (ggc_cleared_vec_alloc): Likewise.
21614 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
21616 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
21618 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
21620 * alias.c (record_alias_subset): Adjust.
21621 * bitmap.c (bitmap_element_allocate): Likewise.
21622 (bitmap_gc_alloc_stat): Likewise.
21623 * cfg.c (init_flow): Likewise.
21624 (alloc_block): Likewise.
21625 (unchecked_make_edge): Likewise.
21626 * cfgloop.c (alloc_loop): Likewise.
21627 (flow_loops_find): Likewise.
21628 (rescan_loop_exit): Likewise.
21629 * cfgrtl.c (init_rtl_bb_info): Likewise.
21630 * cgraph.c (insert_new_cgraph_node_version): Likewise.
21631 (cgraph_allocate_node): Likewise.
21632 (cgraph_create_edge_1): Likewise.
21633 (cgraph_allocate_init_indirect_info): Likewise.
21634 * cgraphclones.c (cgraph_clone_edge): Likewise.
21635 * cgraphunit.c (add_asm_node): Likewise.
21636 (init_lowered_empty_function): Likewise.
21637 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
21638 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
21639 (alpha_use_linkage): Likewise.
21640 * config/arc/arc.c (arc_init_machine_status): Likewise.
21641 * config/arm/arm.c (arm_init_machine_status): Likewise.
21642 * config/avr/avr.c (avr_init_machine_status): Likewise.
21643 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
21644 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
21645 * config/cris/cris.c (cris_init_machine_status): Likewise.
21646 * config/darwin.c (machopic_indirection_name): Likewise.
21647 (darwin_build_constant_cfstring): Likewise.
21648 (darwin_enter_string_into_cfstring_table): Likewise.
21649 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
21650 * config/frv/frv.c (frv_init_machine_status): Likewise.
21651 * config/i386/i386.c (get_dllimport_decl): Likewise.
21652 (ix86_init_machine_status): Likewise.
21653 (assign_386_stack_local): Likewise.
21654 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
21655 (i386_pe_maybe_record_exported_symbol): Likewise.
21656 (i386_pe_record_stub): Likewise.
21657 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
21658 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
21659 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
21660 (m32c_note_pragma_address): Likewise.
21661 * config/mep/mep.c (mep_init_machine_status): Likewise.
21662 (mep_note_pragma_flag): Likewise.
21663 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
21664 (mips16_local_alias): Likewise.
21665 (mips_init_machine_status): Likewise.
21666 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
21667 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
21668 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
21669 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
21670 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
21671 * config/pa/pa.c (pa_init_machine_status): Likewise.
21672 (pa_get_deferred_plabel): Likewise.
21673 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
21674 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
21675 (rs6000_init_machine_status): Likewise.
21676 (output_toc): Likewise.
21677 * config/s390/s390.c (s390_init_machine_status): Likewise.
21678 * config/score/score.c (score_output_external): Likewise.
21679 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
21680 * config/spu/spu.c (spu_init_machine_status): Likewise.
21681 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
21682 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
21683 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
21684 * coverage.c (coverage_end_function): Likewise.
21685 * dbxout.c (dbxout_init): Likewise.
21686 * doc/gty.texi: Don't mention variable_size attribute.
21687 * dwarf2cfi.c (new_cfi): Adjust.
21688 (new_cfi_row): Likewise.
21689 (copy_cfi_row): Likewise.
21690 (create_cie_data): Likewise.
21691 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
21692 (new_loc_descr): Likewise.
21693 (find_AT_string_in_table): Likewise.
21694 (add_addr_table_entry): Likewise.
21695 (new_die): Likewise.
21696 (add_var_loc_to_decl): Likewise.
21697 (clone_die): Likewise.
21698 (clone_as_declaration): Likewise.
21699 (break_out_comdat_types): Likewise.
21700 (new_loc_list): Likewise.
21701 (add_loc_descr_to_each): Likewise.
21702 (add_location_or_const_value_attribute): Likewise.
21703 (add_linkage_name): Likewise.
21704 (lookup_filename): Likewise.
21705 (dwarf2out_var_location): Likewise.
21706 (new_line_info_table): Likewise.
21707 (dwarf2out_init): Likewise.
21708 (mem_loc_descriptor): Likewise.
21709 (loc_descriptor): Likewise.
21710 (add_const_value_attribute): Likewise.
21711 (tree_add_const_value_attribute): Likewise.
21712 (comp_dir_string): Likewise.
21713 (dwarf2out_vms_debug_main_pointer): Likewise.
21714 (string_cst_pool_decl): Likewise.
21715 * emit-rtl.c (set_mem_attrs): Likewise.
21716 (get_reg_attrs): Likewise.
21717 (start_sequence): Likewise.
21718 (init_emit): Likewise.
21719 (init_emit_regs): Likewise.
21720 * except.c (init_eh_for_function): Likewise.
21721 (gen_eh_region): Likewise.
21722 (gen_eh_region_catch): Likewise.
21723 (gen_eh_landing_pad): Likewise.
21724 (add_call_site): Likewise.
21725 * function.c (add_frame_space): Likewise.
21726 (insert_temp_slot_address): Likewise.
21727 (assign_stack_temp_for_type): Likewise.
21728 (get_hard_reg_initial_val): Likewise.
21729 (allocate_struct_function): Likewise.
21730 (prepare_function_start): Likewise.
21731 (types_used_by_var_decl_insert): Likewise.
21732 * gengtype.c (variable_size_p): Remove function.
21733 (enum alloc_quantity): Remove enum.
21734 (write_typed_alloc_def): Remove function.
21735 (write_typed_struct_alloc_def): Likewise.
21736 (write_typed_typedef_alloc_def): Likewise.
21737 (write_typed_alloc_defns): Likewise.
21739 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
21740 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
21741 * ggc.h (ggc_alloc): new function.
21742 (ggc_cleared_alloc): Likewise.
21743 (ggc_vec_alloc): Template on type of vector element, and remove
21744 element size argument.
21745 (ggc_cleared_vec_alloc): Likewise.
21746 * gimple.c (gimple_build_omp_for): Adjust.
21747 (gimple_copy): Likewise.
21748 * ipa-cp.c (get_replacement_map): Likewise.
21749 (find_aggregate_values_for_callers_subset): Likewise.
21750 (known_aggs_to_agg_replacement_list): Likewise.
21751 * ipa-devirt.c (get_odr_type): Likewise.
21752 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
21753 (read_agg_replacement_chain): Likewise.
21754 * loop-iv.c (get_simple_loop_desc): Likewise.
21755 * lto-cgraph.c (input_node_opt_summary): Likewise.
21756 * lto-section-in.c (lto_new_in_decl_state): Likewise.
21757 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
21758 (input_eh_region): Likewise.
21759 (input_eh_lp): Likewise.
21760 (input_cfg): Likewise.
21761 * optabs.c (set_optab_libfunc): Likewise.
21762 (init_tree_optimization_optabs): Likewise.
21763 (set_conv_libfunc): Likewise.
21764 * passes.c (do_per_function_toporder): Likewise.
21765 * rtl.h: Don't use variable_size gty attribute.
21766 * sese.c (if_region_set_false_region): Adjust.
21767 * stringpool.c (gt_pch_save_stringpool): Likewise.
21768 * target-globals.c (save_target_globals): Likewise.
21769 * toplev.c (general_init): Likewise.
21770 * trans-mem.c (record_tm_replacement): Likewise.
21771 (split_bb_make_tm_edge): Likewise.
21772 * tree-cfg.c (move_sese_region_to_fn): Likewise.
21773 * tree-data-ref.h (lambda_vector_new): Likewise.
21774 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
21775 * tree-iterator.c (tsi_link_before): Likewise.
21776 (tsi_link_after): Likewise.
21777 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
21778 * tree-ssa-loop-niter.c (record_estimate): Likewise.
21779 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
21780 * tree-ssa-operands.h: Don't use variable_size gty attribute.
21781 * tree-ssa.c (init_tree_ssa): Adjust.
21782 * tree-ssanames.c (set_range_info): Likewise.
21783 (get_ptr_info): Likewise.
21784 (duplicate_ssa_name_ptr_info): Likewise.
21785 (duplicate_ssa_name_range_info): Likewise.
21786 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
21787 (unpack_ts_fixed_cst_value_fields): Likewise.
21788 * tree.c (build_fixed): Likewise.
21789 (build_real): Likewise.
21790 (build_string): Likewise.
21791 (decl_priority_info): Likewise.
21792 (decl_debug_expr_insert): Likewise.
21793 (decl_value_expr_insert): Likewise.
21794 (decl_debug_args_insert): Likewise.
21795 (type_hash_add): Likewise.
21796 (build_omp_clause): Likewise.
21797 * ubsan.c (decl_for_type_insert): Likewise.
21798 * varasm.c (get_unnamed_section): Likewise.
21799 (get_noswitch_section): Likewise.
21800 (get_section): Likewise.
21801 (get_block_for_section): Likewise.
21802 (create_block_symbol): Likewise.
21803 (build_constant_desc): Likewise.
21804 (create_constant_pool): Likewise.
21805 (force_const_mem): Likewise.
21806 (record_tm_clone_pair): Likewise.
21807 * varpool.c (varpool_create_empty_node): Likewise.
21809 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
21811 * dwarf2out.c (tree_add_const_value_attribute): Call
21812 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
21813 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
21814 instead of ggc_internal_<x>alloc_stat.
21815 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
21816 (ggc_realloc): Likewise.
21817 * ggc-none.c (ggc_internal_alloc): Likewise.
21818 (ggc_internal_cleared_alloc): Likewise.
21819 * ggc-page.c: Likewise.
21820 * ggc.h (ggc_internal_alloc_stat): Likewise.
21821 (ggc_internal_alloc): Remove macro.
21822 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
21823 (ggc_internal_cleared_alloc): Remove macro.
21824 (GGC_RESIZEVEC): Adjust.
21825 (ggc_resizevar): Remove macro.
21826 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
21827 (ggc_internal_cleared_vec_alloc_stat): Likewise.
21828 (ggc_internal_vec_cleared_alloc): Remove macro.
21829 (ggc_alloc_atomic_stat): Drop _stat suffix.
21830 (ggc_alloc_atomic): Remove macro.
21831 (ggc_alloc_cleared_atomic): Remove macro.
21832 (ggc_alloc_string_stat): Drop _stat suffix.
21833 (ggc_alloc_string): Remove macro.
21834 (ggc_alloc_rtx_def_stat): Adjust.
21835 (ggc_alloc_tree_node_stat): Likewise.
21836 (ggc_alloc_cleared_tree_node_stat): Likewise.
21837 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
21838 (ggc_alloc_cleared_simd_clone_stat): Likewise.
21839 * gimple.c (gimple_build_omp_for): Likewise.
21840 (gimple_copy): Likewise.
21841 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
21842 * toplev.c (realloc_for_line_map): Adjust.
21843 * tree-data-ref.h (lambda_vector_new): Likewise.
21844 * tree-phinodes.c (allocate_phi_node): Likewise.
21845 * tree.c (grow_tree_vec_stat): Likewise.
21846 * vec.h (va_gc::reserve): Adjust.
21848 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
21850 * config/microblaze/microblaze.c (break_handler): New Declaration.
21851 (microblaze_break_function_p,microblaze_is_break_handler): New.
21852 (compute_frame_size): Use microblaze_break_function_p.
21853 Add the test of break_handler.
21854 (microblaze_function_prologue) : Add the test of variable
21855 break_handler. Check the fnname by BREAK_HANDLER_NAME.
21856 (microblaze_function_epilogue) : Add the test of break_handler.
21857 (microblaze_globalize_label) : Add the test of break_handler.
21858 Check the name by BREAK_HANDLER_NAME.
21860 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
21862 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
21863 microblaze_is_break_handler test.
21864 (call_internal1,call_value_intern): Use microblaze_break_function_p.
21865 Use SYMBOL_REF_DECL.
21867 * config/microblaze/microblaze-protos.h
21868 (microblaze_break_function_p,microblaze_is_break_handler):
21871 * doc/extend.texi (MicroBlaze break_handler Functions): Document
21872 new MicroBlaze break_handler functions.
21874 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
21876 * doc/extend.texi (Size of an asm): Move node text according
21877 to its @menu entry position.
21879 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
21881 PR tree-optimization/61140
21882 PR tree-optimization/61150
21883 PR tree-optimization/61197
21884 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
21886 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
21888 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
21890 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
21892 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
21893 __SIZEOF_INT128__ is defined.
21895 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
21897 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
21898 (rs6000_delegitimize_address): Use it.
21900 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
21902 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
21903 inplace argument. Store the new address in the original MEM when true.
21904 * emit-rtl.c (change_address_1): Likewise.
21905 (adjust_address_1, adjust_automodify_address_1, offset_address):
21906 Update accordingly.
21907 * rtl.h (plus_constant): Add an inplace argument.
21908 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
21909 when true. Avoid generating (plus X (const_int 0)).
21910 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
21911 in-place. Pass true to plus_constant.
21912 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
21914 2014-05-16 Dehao Chen <dehao@google.com>
21916 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
21918 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
21921 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
21923 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
21925 2014-05-16 Dehao Chen <dehao@google.com>
21927 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
21928 optimize_function_for_size_p.
21929 * regs.h (REG_FREQ_FROM_BB): Likewise.
21931 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
21934 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
21935 negt_reg_operand cases.
21936 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
21938 * config/sh/predicates.md (cbranch_treg_value): Simplify.
21940 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
21942 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
21945 2014-05-16 David Malcolm <dmalcolm@redhat.com>
21948 2014-04-29 David Malcolm <dmalcolm@redhat.com>
21950 * tree-cfg.c (dump_function_to_file): Dump the return type of
21951 functions, in a line to itself before the function body, mimicking
21952 the layout of a C function.
21954 2014-05-16 Dehao Chen <dehao@google.com>
21956 * cfghooks.c (make_forwarder_block): Use direct computation to
21957 get fall-through edge's count and frequency.
21959 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
21961 * config/arc/arc.c (arc_init): Fix typo in error message.
21962 * config/i386/i386.c (ix86_expand_builtin): Likewise.
21963 (split_stack_prologue_scratch_regno): Likewise.
21964 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
21965 word from error message.
21967 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
21969 * ira-costs.c: Fix typo in comment.
21971 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
21973 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
21975 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
21977 * varpool.c (dump_varpool_node): Dump write-only flag.
21978 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
21980 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
21981 write-only variables.
21982 * ipa.c (process_references): New function.
21983 (set_readonly_bit): New function.
21984 (set_writeonly_bit): New function.
21985 (clear_addressable_bit): New function.
21986 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
21987 fix handling of aliases.
21988 * cgraph.h (struct varpool_node): Add writeonly flag.
21990 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
21992 PR rtl-optimization/60969
21993 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
21994 Calculate costs for this case.
21996 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
21998 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
21999 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
22001 2014-05-16 Richard Biener <rguenther@suse.de>
22003 PR tree-optimization/61194
22004 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
22005 bool patterns ending in a COND_EXPR.
22007 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22009 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
22011 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22013 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
22014 where we were unable to cost an RTX.
22016 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22018 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
22021 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22022 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22024 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
22026 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22027 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22029 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
22030 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
22032 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22033 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22035 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
22038 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22039 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22041 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
22044 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22045 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22047 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
22048 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
22050 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22051 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22053 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
22054 rotates and shifts.
22056 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22057 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22059 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
22060 ZERO_EXTEND and SIGN_EXTEND better.
22062 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22063 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22065 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
22066 logical operations.
22068 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22069 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22071 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
22072 costs when costing loads and stores to memory.
22074 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22075 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
22077 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
22080 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22082 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
22084 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22085 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22087 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
22089 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
22091 (aarch64_rtx_mult_cost): New.
22092 (aarch64_rtx_costs): Use it, refactor as appropriate.
22094 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22095 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
22097 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
22098 emit instructions, return number of instructions which would
22100 (aarch64_add_constant): Update call to aarch64_build_constant.
22101 (aarch64_output_mi_thunk): Likewise.
22102 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
22105 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22107 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
22108 (TARGET_RTX_COSTS): Call it.
22110 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22112 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
22113 (cortexa57_vector_cost): Likewise.
22114 (cortexa57_tunings): Use them.
22116 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
22118 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
22119 (cpu_addrcost_table): Use it.
22120 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
22121 (aarch64_address_cost): Rewrite using aarch64_classify_address,
22124 2014-05-16 Richard Biener <rguenther@suse.de>
22126 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
22127 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
22128 (visit_phi): Ignore edges marked as not executable.
22129 (class cond_dom_walker): New.
22130 (cond_dom_walker::before_dom_children): Value-number
22131 control statements and mark successor edges as not
22132 executable if possible.
22133 (run_scc_vn): First walk all control statements in
22134 dominator order, marking edges as not executable.
22135 * tree-inline.c (copy_edges_for_bb): Be not confused
22136 about random edge flags.
22138 2014-05-16 Richard Biener <rguenther@suse.de>
22140 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
22142 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
22145 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
22146 (__TM_simple_begin): Use it.
22147 (__TM_begin): Likewise.
22149 2014-05-15 Martin Jambor <mjambor@suse.cz>
22152 * ipa-prop.c (update_indirect_edges_after_inlining): Check
22153 type_preserved flag when the indirect edge is polymorphic.
22155 2014-05-15 Martin Jambor <mjambor@suse.cz>
22157 PR tree-optimization/61090
22158 * tree-sra.c (sra_modify_expr): Pass the current gsi to
22159 build_ref_for_model.
22161 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22163 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
22164 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
22166 2014-05-15 Jakub Jelinek <jakub@redhat.com>
22168 PR tree-optimization/61158
22169 * fold-const.c (fold_binary_loc): If X is zero-extended and
22170 shiftc >= prec, make sure zerobits is all ones instead of
22171 invoking undefined behavior.
22173 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
22175 * regcprop.h: New file.
22176 * regcprop.c (skip_debug_insn_p): New decl.
22177 (replace_oldest_value_reg): Check skip_debug_insn_p.
22178 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
22179 * shrink-wrap.c: Include regcprop.h.
22180 (prepare_shrink_wrap): Call
22181 copyprop_hardreg_forward_bb_without_debug_insn.
22183 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
22185 * shrink-wrap.h: Update comment.
22186 * shrink-wrap.c: Update comment.
22187 (next_block_for_reg): Rename to live_edge_for_reg.
22188 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
22189 (move_insn_for_shrink_wrap): Split live_edge.
22190 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
22192 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
22194 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
22196 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
22197 * config/sparc/sparc.md (fptype_ut699): New attribute.
22198 (in_branch_delay): Return false if -mfix-ut699 is specified and
22199 fptype_ut699 is set to single.
22200 (truncdfsf2): Add fptype_ut699 attribute.
22201 (fix_truncdfsi2): Likewise.
22202 (floatsisf2): Change fptype attribute.
22203 (fix_truncsfsi2): Likewise.
22204 (negtf2_notv9): Delete.
22205 (negtf2_v9): Likewise.
22206 (negtf2_hq): New instruction.
22207 (negtf2): New instruction and splitter.
22208 (negdf2_notv9): Rewrite.
22209 (abstf2_notv9): Delete.
22210 (abstf2_hq_v9): Likewise.
22211 (abstf2_v9): Likewise.
22212 (abstf2_hq): New instruction.
22213 (abstf2): New instruction and splitter.
22214 (absdf2_notv9): Rewrite.
22216 2014-05-14 Cary Coutant <ccoutant@google.com>
22219 * opts.c (common_handle_option): Don't special-case "-g".
22220 (set_debug_level): Default to at least level 2 with "-g".
22222 2014-05-14 DJ Delorie <dj@redhat.com>
22224 * config/msp430/msp430.c (msp430_builtin): Add
22225 MSP430_BUILTIN_DELAY_CYCLES.
22226 (msp430_init_builtins): Register void __delay_cycles(long long).
22227 (msp430_builtin_decl): Add it.
22228 (cg_magic_constant): New.
22229 (msp430_expand_delay_cycles): New.
22230 (msp430_expand_builtin): Call it.
22231 (msp430_print_operand_raw): Change integer printing from "int" to
22233 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
22234 (delay_cycles_start): New.
22235 (delay_cycles_end): New.
22236 (delay_cycles_32): New.
22237 (delay_cycles_32x): New.
22238 (delay_cycles_16): New.
22239 (delay_cycles_16x): New.
22240 (delay_cycles_2): New.
22241 (delay_cycles_1): New.
22242 * doc/extend.texi: Document __delay_cycles().
22244 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
22246 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
22247 length attribute computation.
22249 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
22252 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
22254 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
22257 * config/sparc/sparc.md: Fix types of low and high in DI constant
22258 splitter. Use gen_int_mode in some other splitters.
22260 2014-05-14 Martin Jambor <mjambor@suse.cz>
22263 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
22265 2014-05-14 James Norris <jnorris@codesourcery.com>
22267 * omp-low.c (expand_parallel_call): Remove shadow variable.
22268 (expand_omp_taskreg): Likewise.
22270 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
22272 * common/config/i386/i386-common.c
22273 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
22274 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
22275 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
22276 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
22277 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
22278 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
22279 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
22280 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
22281 xsavecintrin.h, xsavesintrin.h.
22282 (x86_64-*-*): Ditto.
22283 * config/i386/clflushoptintrin.h: New.
22284 * config/i386/xsavecintrin.h: Ditto.
22285 * config/i386/xsavesintrin.h: Ditto.
22286 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
22287 (bit_XSAVES): Ditto.
22288 (bit_XSAVES): Ditto.
22289 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
22290 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
22292 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
22293 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
22294 OPTION_MASK_ISA_XSAVES.
22295 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
22296 -mxsavec, -mxsaves.
22297 (PTA_CLFLUSHOPT) Define.
22298 (PTA_XSAVEC): Ditto.
22299 (PTA_XSAVES): Ditto.
22300 (ix86_option_override_internal): Handle new options.
22301 (ix86_valid_target_attribute_inner_p): Ditto.
22302 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
22303 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
22304 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
22305 (bdesc_special_args): Add __builtin_ia32_xsaves,
22306 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
22307 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
22308 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
22309 (ix86_expand_builtin): Handle new builtins.
22310 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
22311 (TARGET_CLFLUSHOPT_P): Ditto.
22312 (TARGET_XSAVEC): Ditto.
22313 (TARGET_XSAVEC_P): Ditto.
22314 (TARGET_XSAVES): Ditto.
22315 (TARGET_XSAVES_P): Ditto.
22316 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
22317 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
22318 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
22320 (ANY_XRSTOR64): Ditto.
22322 (xrstor): Change into <xrstor>.
22323 (xrstor_rex64): Change into <xrstor>_rex64.
22324 (xrstor64): Change into <xrstor>64
22326 * config/i386/i386.opt (mclflushopt): New.
22329 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
22331 * doc/invoke.texi: Document new options.
22333 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
22335 PR rtl-optimization/60866
22336 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
22337 Default it to -1. Pass it down to init_simplejump_data.
22338 (init_simplejump_data): New parameter old_seqno. Pass it down
22339 to get_seqno_for_a_jump.
22340 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
22341 initializing new jump seqno as a last resort. Add comment.
22342 (sel_redirect_edge_and_branch): Save old seqno of the conditional
22343 jump and pass it down to sel_init_new_insn.
22344 (sel_redirect_edge_and_branch_force): Likewise.
22346 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
22348 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
22349 shifted values to avoid build warning.
22351 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
22353 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
22354 * cfgrtl.c (rtl_merge_blocks): Fix comment.
22355 (cfg_layout_merge_blocks): Likewise.
22356 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
22358 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
22360 PR rtl-optimization/60901
22361 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
22362 bb predecessor belongs to the same scheduling region. Adjust comment.
22364 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
22366 * doc/sourcebuild.texi: (dfp_hw): Document.
22367 (p8vector_hw): Likewise.
22368 (powerpc_eabi_ok): Likewise.
22369 (powerpc_elfv2): Likewise.
22370 (powerpc_htm_ok): Likewise.
22371 (ppc_recip_hw): Likewise.
22372 (vsx_hw): Likewise.
22374 2014-05-13 Cary Coutant <ccoutant@google.com>
22376 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
22378 2014-05-13 David Malcolm <dmalcolm@redhat.com>
22380 * gengtype-parse.c (require3): Eliminate in favor of...
22382 (require_template_declaration): Update to support optional single *
22385 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
22386 (create_user_defined_type): Handle a single level of explicit
22387 pointerness within template arguments.
22388 (struct write_types_data): Add field "kind".
22389 (filter_type_name): Handle "*" character.
22390 (write_user_func_for_structure_ptr): Require a write_types_data
22391 rather than just a prefix string, so that we can look up the kind
22392 of the wtd and use it as an index into wrote_user_func_for_ptr,
22393 ensuring that such functions are written at most once. Support
22394 subclasses by invoking the marking function of the ultimate base class.
22395 (write_user_func_for_structure_body): Require a write_types_data
22396 rather than just a prefix string, so that we can pass this to
22397 write_user_func_for_structure_ptr.
22398 (write_func_for_structure): Likewise.
22399 (ggc_wtd): Add initializer of new "kind" field.
22400 (pch_wtd): Likewise.
22402 * gengtype.h (enum write_types_kinds): New.
22403 (struct type): Add field wrote_user_func_for_ptr to the "s"
22406 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
22408 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
22409 instead of const_binop.
22410 (fold_binary_loc): Likewise.
22412 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
22414 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
22415 calculation to match get_ref_base_and_extent.
22417 2014-05-13 Catherine Moore <clm@codesourcery.com>
22418 Sandra Loosemore <sandra@codesourcery.com>
22420 * configure.ac: Fix assembly for explicit JALR relocation check.
22421 * configure: Regenerate.
22423 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22425 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
22426 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
22427 Remove associated type declarations and initialisations.
22428 (arm_expand_neon_builtin): Likewise.
22429 (neon_emit_pair_result_insn): Delete.
22430 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
22431 * config/arm/neon.md (neon_vtrn<mode>): Delete.
22432 (neon_vzip<mode>): Likewise.
22433 (neon_vuzp<mode>): Likewise.
22435 2014-05-13 Richard Biener <rguenther@suse.de>
22438 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
22439 it needs revisiting whether the call still may be tail-called.
22441 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22443 * rtl.def (SYMBOL_REF): Remove middle "0" field.
22444 * rtl.h (block_symbol): Reduce number of fields to 2.
22445 (rtx_def): Add u2.symbol_ref_flags.
22446 (SYMBOL_REF_FLAGS): Use it.
22447 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
22448 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
22449 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
22450 Lower index of SYMBOL_REF_DATA.
22451 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
22452 Print SYMBOL_REF_FLAGS at the same time.
22453 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
22455 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22457 * rtl.def (VAR_LOCATION): Remove "i" field.
22458 * rtl.h (rtx_def): Add u2.var_location_status.
22459 (PAT_VAR_LOCATION_STATUS): Use it.
22460 (gen_rtx_VAR_LOCATION): Declare.
22461 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
22462 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
22463 * var-tracking.c (emit_note_insn_var_location): Remove casts.
22465 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22467 * rtl.def (scratch): Fix outdated comment and remove "0" field.
22468 * gengtype.c (adjust_field_rtx_def): Update accordingly.
22470 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22472 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
22473 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
22474 * rtl.h (rtx_def): Add insn_uid to u2 field.
22475 (RTX_FLAG_CHECK8): Delete in favor of...
22476 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
22477 (INSN_DELETED_P): Update accordingly.
22478 (INSN_UID): Use u2.insn_uid.
22479 (INSN_CHAIN_CODE_P): Define.
22480 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
22481 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
22482 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
22483 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
22484 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
22485 indices accordingly.
22486 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
22487 Update indices for insn-chain rtxes.
22488 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
22489 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
22490 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
22491 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
22492 * combine.c (try_combine): Likewise.
22493 * ira.c (setup_prohibited_mode_move_regs): Likewise.
22495 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22497 * rtl.def (REG): Remove middle field.
22498 * rtl.h (rtx_def): Add orignal_regno to u2.
22499 (ORIGINAL_REGNO): Use it instead of field 1.
22500 (REG_ATTRS): Lower field index accordingly.
22501 * gengtype.c (adjust_field_rtx_def): Remove handling of
22502 ORIGINAL_REGNO. Move REG_ATTRS index down.
22503 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
22504 code that prints the REGNO.
22506 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22508 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
22511 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
22513 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
22515 2014-05-13 Bin Cheng <bin.cheng@arm.com>
22517 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
22518 (alloc_iv): Lower base expressions containing ADDR_EXPR.
22520 2014-05-13 Ian Bolton <ian.bolton@arm.com>
22522 * config/aarch64/aarch64-protos.h
22523 (aarch64_hard_regno_caller_save_mode): New prototype.
22524 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
22526 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
22528 2014-05-13 Christian Bruel <christian.bruel@st.com>
22530 * target.def (mode_switching): New hook vector.
22531 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
22532 (mode_exit, modepriority_to_mode): Likewise.
22533 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
22534 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22535 * target.h: Include tm.h and hard-reg-set.h.
22536 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
22537 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
22538 * doc/tm.texi Regenerate.
22539 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
22540 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22541 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
22542 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
22543 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
22544 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22545 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
22546 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
22547 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
22548 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
22549 (ix86_emit_mode_set): Hookify.
22550 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
22552 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
22553 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
22554 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
22555 (epiphany_mode_priority_to_mode): Remove declaration.
22556 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
22557 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
22558 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
22560 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
22561 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
22562 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
22564 2014-05-13 Jakub Jelinek <jakub@redhat.com>
22567 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
22568 is const0_rtx, return immediately. Don't test count == 0 when
22571 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
22573 * Makefile.in: add shrink-wrap.o.
22574 * config/i386/i386.c: include "shrink-wrap.h"
22575 * function.c: Likewise.
22576 (requires_stack_frame_p, next_block_for_reg,
22577 move_insn_for_shrink_wrap, prepare_shrink_wrap,
22578 dup_block_and_redirect): Move to shrink-wrap.c
22579 (thread_prologue_and_epilogue_insns): Extract three code segments
22580 as functions in shrink-wrap.c
22581 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
22583 * shrink-wrap.c: New file.
22584 * shrink-wrap.h: New file.
22586 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
22588 * doc/extend.texi: Reflect current numbers of pragmas. Remove
22589 reference to Solaris.
22591 2014-05-12 Mike Stump <mikestump@comcast.net>
22594 * genattrtab.c (filename): Add.
22595 (convert_set_attr_alternative): Improve error message.
22596 (check_defs): Restore read_md_filename for error messages.
22597 (gen_insn): Save filename.
22599 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
22601 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
22602 -fno-local-ivars and -fivar-visibility.
22603 * c-family/c.opt: Make -Wshadow also implicitly enable
22606 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
22608 * doc/tm.texi: Remove reference to deleted macro.
22609 * doc/tm.texi.in: Likewise.
22611 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22614 * config/avr/avr.c (avr_out_store_psi): Use correct constant
22617 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
22620 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
22621 * config/arm/aout.h (License): Same.
22622 * config/arm/bpabi.h (License): Same.
22623 * config/arm/elf.h (License): Same.
22624 * config/arm/linux-elf.h (License): Same.
22625 * config/arm/linux-gas.h (License): Same.
22626 * config/arm/netbsd-elf.h (License): Same.
22627 * config/arm/uclinux-eabi.h (License): Same.
22628 * config/arm/uclinux-elf.h (License): Same.
22629 * config/arm/vxworks.h (License): Same.
22631 2014-05-11 Jakub Jelinek <jakub@redhat.com>
22633 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
22634 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
22635 number of operands to 3.
22636 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
22637 * tree-nested.c (convert_nonlocal_omp_clauses,
22638 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
22639 * gimplify.c (gimplify_scan_omp_clauses): Handle
22640 OMP_CLAUSE_LINEAR_STMT.
22641 * omp-low.c (lower_rec_input_clauses): Fix typo.
22642 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
22643 cast between Fortran boolean_type_node and C _Bool if
22646 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
22648 PR tree-optimization/61136
22649 * wide-int.h (multiple_of_p): Define a version that doesn't return
22651 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
22652 integer_zerop/const_binop pair.
22653 (multiple_of_p): Likewise, converting both operands to widest_int
22656 2014-05-09 Teresa Johnson <tejohnson@google.com>
22658 * cgraphunit.c (analyze_functions): Use correct dump file.
22660 2014-05-09 Florian Weimer <fweimer@redhat.com>
22662 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
22664 (stack_protect_return_slot_p): New function.
22665 (expand_used_vars): Call stack_protect_decl_p and
22666 stack_protect_return_slot_p for -fstack-protector-strong.
22668 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
22669 Andrew Haley <aph@redhat.com>
22670 Richard Sandiford <rdsandiford@googlemail.com>
22672 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
22675 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
22677 PR middle-end/61111
22678 * fold-const.c (fold_binary_loc): Changed width of mask.
22680 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
22682 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
22683 unsigned int initializers for regno_in, regno_out.
22685 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
22688 * config/avr/avr.md (cc): Add new attribute set_vzn.
22689 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
22690 Set cc insn attribute to set_vzn instead of set_zn for alternatives
22691 with INC, DEC or NEG.
22692 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
22693 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
22694 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
22696 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22699 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22701 * wide-int.cc (UTItype): Define.
22702 (UDWtype): Define for appropriate W_TYPE_SIZE.
22704 2014-05-09 Richard Biener <rguenther@suse.de>
22706 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
22707 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
22708 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
22709 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
22710 ssa_propagate): Adjust.
22712 2014-05-08 Jeff Law <law@redhat.com>
22714 PR tree-optimization/61009
22715 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
22716 tri-state rather than a boolean. When a block is too big to
22717 thread through, inform caller via negative return value.
22718 (thread_across_edge): If a block was too big for normal threading,
22719 then it's too big for a joiner too, so remove temporary equivalences
22720 and return immediately.
22722 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
22723 Matthias Klose <doko@ubuntu.com>
22726 * optc-gen.awk: Fix option handling for -Wunused-parameter.
22728 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
22731 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
22733 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
22736 * config/alpha/alpha.c: Include gimple-iterator.h.
22737 (alpha_gimple_fold_builtin): New function. Move
22738 ALPHA_BUILTIN_UMULH folding from ...
22739 (alpha_fold_builtin): ... here.
22740 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
22742 2014-05-08 Wei Mi <wmi@google.com>
22745 * config/i386/i386.c (ix86_compute_frame_layout): Update
22746 preferred_stack_boundary for call, expanded from tls descriptor.
22747 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
22748 to depend on SP register.
22749 (*tls_local_dynamic_base_32_gnu): Ditto.
22750 (*tls_local_dynamic_32_once): Ditto.
22751 (tls_global_dynamic_64_<mode>): Set
22752 ix86_tls_descriptor_calls_expanded_in_cfun.
22753 (tls_local_dynamic_base_64_<mode>): Ditto.
22754 (tls_global_dynamic_32): Set
22755 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
22756 to depend on SP register.
22757 (tls_local_dynamic_base_32): Ditto.
22759 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22761 * config/arm/arm_neon.h: Update comment.
22762 * config/arm/neon-docgen.ml: Delete.
22763 * config/arm/neon-gen.ml: Delete.
22764 * doc/arm-neon-intrinsics.texi: Update comment.
22766 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22768 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
22770 (vand, vorr, veor, vorn, vbic): Remove.
22771 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
22773 (neon_vsub_unspec): Likewise.
22774 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
22776 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22778 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
22779 (vadd_s16): Likewise.
22780 (vadd_s32): Likewise.
22781 (vadd_f32): Likewise.
22782 (vadd_u8): Likewise.
22783 (vadd_u16): Likewise.
22784 (vadd_u32): Likewise.
22785 (vadd_s64): Likewise.
22786 (vadd_u64): Likewise.
22787 (vaddq_s8): Likewise.
22788 (vaddq_s16): Likewise.
22789 (vaddq_s32): Likewise.
22790 (vaddq_s64): Likewise.
22791 (vaddq_f32): Likewise.
22792 (vaddq_u8): Likewise.
22793 (vaddq_u16): Likewise.
22794 (vaddq_u32): Likewise.
22795 (vaddq_u64): Likewise.
22796 (vmul_s8): Likewise.
22797 (vmul_s16): Likewise.
22798 (vmul_s32): Likewise.
22799 (vmul_f32): Likewise.
22800 (vmul_u8): Likewise.
22801 (vmul_u16): Likewise.
22802 (vmul_u32): Likewise.
22803 (vmul_p8): Likewise.
22804 (vmulq_s8): Likewise.
22805 (vmulq_s16): Likewise.
22806 (vmulq_s32): Likewise.
22807 (vmulq_f32): Likewise.
22808 (vmulq_u8): Likewise.
22809 (vmulq_u16): Likewise.
22810 (vmulq_u32): Likewise.
22811 (vsub_s8): Likewise.
22812 (vsub_s16): Likewise.
22813 (vsub_s32): Likewise.
22814 (vsub_f32): Likewise.
22815 (vsub_u8): Likewise.
22816 (vsub_u16): Likewise.
22817 (vsub_u32): Likewise.
22818 (vsub_s64): Likewise.
22819 (vsub_u64): Likewise.
22820 (vsubq_s8): Likewise.
22821 (vsubq_s16): Likewise.
22822 (vsubq_s32): Likewise.
22823 (vsubq_s64): Likewise.
22824 (vsubq_f32): Likewise.
22825 (vsubq_u8): Likewise.
22826 (vsubq_u16): Likewise.
22827 (vsubq_u32): Likewise.
22828 (vsubq_u64): Likewise.
22829 (vand_s8): Likewise.
22830 (vand_s16): Likewise.
22831 (vand_s32): Likewise.
22832 (vand_u8): Likewise.
22833 (vand_u16): Likewise.
22834 (vand_u32): Likewise.
22835 (vand_s64): Likewise.
22836 (vand_u64): Likewise.
22837 (vandq_s8): Likewise.
22838 (vandq_s16): Likewise.
22839 (vandq_s32): Likewise.
22840 (vandq_s64): Likewise.
22841 (vandq_u8): Likewise.
22842 (vandq_u16): Likewise.
22843 (vandq_u32): Likewise.
22844 (vandq_u64): Likewise.
22845 (vorr_s8): Likewise.
22846 (vorr_s16): Likewise.
22847 (vorr_s32): Likewise.
22848 (vorr_u8): Likewise.
22849 (vorr_u16): Likewise.
22850 (vorr_u32): Likewise.
22851 (vorr_s64): Likewise.
22852 (vorr_u64): Likewise.
22853 (vorrq_s8): Likewise.
22854 (vorrq_s16): Likewise.
22855 (vorrq_s32): Likewise.
22856 (vorrq_s64): Likewise.
22857 (vorrq_u8): Likewise.
22858 (vorrq_u16): Likewise.
22859 (vorrq_u32): Likewise.
22860 (vorrq_u64): Likewise.
22861 (veor_s8): Likewise.
22862 (veor_s16): Likewise.
22863 (veor_s32): Likewise.
22864 (veor_u8): Likewise.
22865 (veor_u16): Likewise.
22866 (veor_u32): Likewise.
22867 (veor_s64): Likewise.
22868 (veor_u64): Likewise.
22869 (veorq_s8): Likewise.
22870 (veorq_s16): Likewise.
22871 (veorq_s32): Likewise.
22872 (veorq_s64): Likewise.
22873 (veorq_u8): Likewise.
22874 (veorq_u16): Likewise.
22875 (veorq_u32): Likewise.
22876 (veorq_u64): Likewise.
22877 (vbic_s8): Likewise.
22878 (vbic_s16): Likewise.
22879 (vbic_s32): Likewise.
22880 (vbic_u8): Likewise.
22881 (vbic_u16): Likewise.
22882 (vbic_u32): Likewise.
22883 (vbic_s64): Likewise.
22884 (vbic_u64): Likewise.
22885 (vbicq_s8): Likewise.
22886 (vbicq_s16): Likewise.
22887 (vbicq_s32): Likewise.
22888 (vbicq_s64): Likewise.
22889 (vbicq_u8): Likewise.
22890 (vbicq_u16): Likewise.
22891 (vbicq_u32): Likewise.
22892 (vbicq_u64): Likewise.
22893 (vorn_s8): Likewise.
22894 (vorn_s16): Likewise.
22895 (vorn_s32): Likewise.
22896 (vorn_u8): Likewise.
22897 (vorn_u16): Likewise.
22898 (vorn_u32): Likewise.
22899 (vorn_s64): Likewise.
22900 (vorn_u64): Likewise.
22901 (vornq_s8): Likewise.
22902 (vornq_s16): Likewise.
22903 (vornq_s32): Likewise.
22904 (vornq_s64): Likewise.
22905 (vornq_u8): Likewise.
22906 (vornq_u16): Likewise.
22907 (vornq_u32): Likewise.
22908 (vornq_u64): Likewise.
22910 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22912 * wide-int.cc (UTItype): Define.
22913 (UDWtype): Define for appropriate W_TYPE_SIZE.
22915 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
22917 PR tree-optimization/59100
22918 * tree-ssa-phiopt.c: Include tree-inline.h.
22919 (neutral_element_p, absorbing_element_p): New functions.
22920 (value_replacement): Handle conditional binary operations with a
22921 neutral or absorbing element.
22923 2014-05-08 Richard Biener <rguenther@suse.de>
22925 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
22926 folding the expression.
22927 (valueize_expr): Remove.
22928 (visit_reference_op_load): Do not valueize the result of
22930 (simplify_binary_expression): Likewise.
22931 (simplify_unary_expression): Likewise.
22933 2014-05-08 Richard Biener <rguenther@suse.de>
22935 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
22936 looking at TYPE_ARG_TYPES.
22938 2014-05-08 Richard Biener <rguenther@suse.de>
22940 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
22941 pointer propagation special-case.
22943 2014-05-08 Bin Cheng <bin.cheng@arm.com>
22945 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
22946 core part of address expressions.
22948 2014-05-08 Alan Modra <amodra@gmail.com>
22951 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
22952 loads and stores when -mno-strict-align at any alignment.
22953 (expand_block_clear): Similarly. Also correct calculation of
22956 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
22958 PR middle-end/39246
22959 * tree-complex.c (expand_complex_move): Keep line info when expanding
22961 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
22962 of complex expression. Use new argument to display correct location
22963 for values coming from phi statement.
22964 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
22965 (warn_uninitialized_phi): Pass location of phi argument to
22967 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
22968 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
22970 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
22972 * config/rs6000/predicates.md (indexed_address_mem): New.
22973 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
22974 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
22975 fpstore_ux, fpstore_u.
22976 (sign_extend, indexed, update): New.
22977 (cell_micro): Adjust.
22978 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
22979 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
22980 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
22981 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
22982 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
22983 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
22984 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
22985 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
22986 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
22987 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
22988 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
22989 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
22990 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
22991 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
22992 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
22994 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
22995 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
22996 *vsx_extract_<mode>_store): Adjust.
22997 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
22998 is_cracked_insn, insn_must_be_first_in_group,
22999 insn_must_be_last_in_group): Adjust.
23001 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
23003 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
23004 ppc440-fpstore): Adjust.
23005 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
23006 ppc476-fpstore): Adjust.
23007 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
23008 ppc601-fpstore): Adjust.
23009 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
23011 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
23013 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
23014 ppc7450-fpstore): Adjust.
23015 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
23016 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
23017 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
23019 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
23020 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
23021 cell-fpstore, cell-fpstore-update): Adjust.
23022 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
23023 ppce300c3_store, ppce300c3_fpstore): Adjust.
23024 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
23025 e500mc_fpstore): Adjust.
23026 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
23027 e500mc64_store, e500mc64_fpstore): Adjust.
23028 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
23029 e5500_fpstore): Adjust.
23030 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
23031 e6500_fpstore): Adjust.
23032 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
23034 * config/rs6000/power4.md (power4-load, power4-load-ext,
23035 power4-load-ext-update, power4-load-ext-update-indexed,
23036 power4-load-update-indexed, power4-load-update, power4-fpload,
23037 power4-fpload-update, power4-store, power4-store-update,
23038 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
23040 * config/rs6000/power5.md (power5-load, power5-load-ext,
23041 power5-load-ext-update, power5-load-ext-update-indexed,
23042 power5-load-update-indexed, power5-load-update, power5-fpload,
23043 power5-fpload-update, power5-store, power5-store-update,
23044 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
23046 * config/rs6000/power6.md (power6-load, power6-load-ext,
23047 power6-load-update, power6-load-update-indexed,
23048 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
23049 power6-fpload-update, power6-store, power6-store-update,
23050 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
23052 * config/rs6000/power7.md (power7-load, power7-load-ext,
23053 power7-load-update, power7-load-update-indexed,
23054 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
23055 power7-fpload-update, power7-store, power7-store-update,
23056 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
23058 * config/rs6000/power8.md (power8-load, power8-load-update,
23059 power8-load-ext, power8-load-ext-update, power8-fpload,
23060 power8-fpload-update, power8-store, power8-store-update-indexed,
23061 power8-fpstore, power8-fpstore-update): Adjust.
23062 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
23064 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
23065 titan_lsu_store, titan_lsu_fpstore): Adjust.
23066 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
23068 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
23071 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
23072 unrolled byte insns. Emit address increments after move insns.
23074 2014-05-07 David Malcolm <dmalcolm@redhat.com>
23076 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
23077 const_gimple, rather than a gimple.
23078 (gimple_call_builtin_p): Likewise, for the three variants.
23080 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
23081 (gimple_call_builtin_p): Likewise, for the three variants.
23083 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
23085 PR tree-optimization/61095
23086 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
23088 2014-05-07 Richard Biener <rguenther@suse.de>
23090 PR tree-optimization/61034
23091 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
23092 (maybe_skip_until): Use translate to take into account
23093 lattices when trying to do disambiguations.
23094 (get_continuation_for_phi_1): Likewise.
23095 (get_continuation_for_phi): Adjust for added translate arguments.
23096 (walk_non_aliased_vuses): Likewise.
23097 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
23098 (walk_non_aliased_vuses): Likewise.
23099 (call_may_clobber_ref_p_1): Declare.
23100 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
23101 calls. Stop early if we are only supposed to disambiguate.
23102 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
23104 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
23106 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
23107 Emit an error when the function has arguments.
23109 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
23111 * cfgloop.h (unswitch_loops): Remove.
23112 * doc/passes.texi: Remove references to loop-unswitch.c
23113 * timevar.def (TV_LOOP_UNSWITCH): Remove.
23115 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
23117 * tree-vect-data-refs.c (vect_grouped_load_supported): New
23118 check for loads group of length 3.
23119 (vect_permute_load_chain): New permutations for loads group of
23121 * tree-vect-stmts.c (vect_model_load_cost): Change cost
23122 of vec_perm_shuffle for the new permutations.
23124 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
23126 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
23127 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
23128 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
23129 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
23130 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
23131 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
23132 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
23133 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
23135 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
23137 * loop-unswitch.c: Delete.
23139 2014-05-07 Richard Biener <rguenther@suse.de>
23141 * config.gcc: Always set need_64bit_hwint to yes.
23143 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
23145 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
23146 of using optimize_size.
23148 2014-05-06 Mike Stump <mikestump@comcast.net>
23150 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
23152 2014-05-06 Joseph Myers <joseph@codesourcery.com>
23154 * config/i386/sse.md (*mov<mode>_internal)
23155 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
23156 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
23157 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
23158 (*<code><mode>3, *andnot<mode>3<mask_name>)
23159 (<mask_codefor><code><mode>3<mask_name>): Only consider
23160 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
23162 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
23165 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
23167 * lra-constraints.c (valid_address_p): Move earlier in file.
23168 Add a constraint argument to the address_info version.
23169 (satisfies_memory_constraint_p): New function.
23170 (satisfies_address_constraint_p): Likewise.
23171 (process_alt_operands, curr_insn_transform): Use them.
23172 (process_address): Pass the constraint to valid_address_p when
23173 checking address operands.
23175 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
23177 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
23178 to their respective blocks. Fix inadvertent use of "node".
23180 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
23182 * emit-rtl.c (init_derived_machine_modes): New functionm, split
23184 (init_emit_once): ...here.
23185 * rtl.h (init_derived_machine_modes): Declare.
23186 * toplev.c (do_compile): Call it even if no_backend.
23188 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
23189 Mike Stump <mikestump@comcast.net>
23190 Richard Sandiford <rdsandiford@googlemail.com>
23191 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23193 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
23194 (rtx_equal_for_memref_p): Update comment.
23195 (adjust_offset_for_component_ref): Use wide-int interfaces.
23196 * builtins.c (get_object_alignment_2): Likewise.
23197 (c_readstr): Likewise.
23198 (target_char_cast): Add comment.
23199 (determine_block_size): Use wide-int interfaces.
23200 (expand_builtin_signbit): Likewise.
23201 (fold_builtin_int_roundingfn): Likewise.
23202 (fold_builtin_bitop): Likewise.
23203 (fold_builtin_bswap): Likewise.
23204 (fold_builtin_logarithm): Use signop.
23205 (fold_builtin_pow): Likewise.
23206 (fold_builtin_memory_op): Use wide-int interfaces.
23207 (fold_builtin_object_size): Likewise.
23208 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
23209 nb_iterations_estimate.
23210 (record_niter_bound): Use wide-int interfaces.
23211 (get_estimated_loop_iterations_int): Likewise.
23212 (get_estimated_loop_iterations): Likewise.
23213 (get_max_loop_iterations): Likewise.
23214 * cfgloop.h: Include wide-int.h.
23215 (struct nb_iter_bound): Change bound to widest_int.
23216 (struct loop): Change nb_iterations_upper_bound and
23217 nb_iterations_estimate to widest_int.
23218 (record_niter_bound): Switch to use widest_int.
23219 (get_estimated_loop_iterations): Likewise.
23220 (get_max_loop_iterations): Likewise.
23221 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
23222 update for wide-int.
23223 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
23224 * combine.c (try_combine): Likewise.
23225 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
23226 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
23228 (aarch64_float_const_representable_p): Likewise.
23229 * config/arc/arc.c: Include wide-int.h.
23230 (arc_can_use_doloop_p): Use wide-int interfaces.
23231 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
23232 (vfp3_const_double_index): Likewise.
23233 * config/avr/avr.c (avr_out_round): Likewise.
23234 (avr_fold_builtin): Likewise.
23235 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
23236 (bfin_can_use_doloop_p): Likewise.
23237 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
23238 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
23239 * config/i386/i386.c: Include wide-int.h.
23240 (ix86_data_alignment): Use wide-int interfaces.
23241 (ix86_local_alignment): Likewise.
23242 (ix86_emit_swsqrtsf): Update real_from_integer.
23243 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
23244 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
23245 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
23246 (zero_constant): Likewise.
23247 (input_operand): Likewise.
23248 (splat_input_operand): Likewise.
23249 (non_logical_cint_operand): Change const_double to const_wide_int.
23250 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
23251 (easy_altivec_constant): Remove comment.
23252 (paired_expand_vector_init): Use CONSTANT_P.
23253 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
23254 (rs6000_emit_move): Update checks.
23255 (rs6000_aggregate_candidate): Use wide-int interfaces.
23256 (rs6000_expand_ternop_builtin): Likewise.
23257 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
23258 (rs6000_assemble_integer): Likewise.
23259 (rs6000_hash_constant): Likewise.
23260 (output_toc): Likewise.
23261 (rs6000_rtx_costs): Likewise.
23262 (rs6000_emit_swrsqrt); Update call to real_from_integer.
23263 * config/rs6000/rs6000-c.c: Include wide-int.h.
23264 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
23265 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
23266 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
23267 Handle CONST_WIDE_INT.
23268 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
23269 Use tree_fits_uhwi_p.
23270 * config/sparc/sparc.c: Include wide-int.h.
23271 (sparc_fold_builtin): Use wide-int interfaces.
23272 * config/vax/vax.c: Include wide-int.h.
23273 (vax_float_literal): Use real_from_integer.
23274 * coretypes.h (struct hwivec_def): New.
23276 (const_hwivec): New.
23277 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
23278 (equiv_constant): Handle CONST_WIDE_INT.
23279 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
23280 (cselib_hash_rtx): Handle CONST_WIDE_INT.
23281 * dbxout.c (stabstr_U): Use wide-int interfaces.
23282 (dbxout_type): Update to use cst_fits_shwi_p.
23283 * defaults.h (LOG2_BITS_PER_UNIT): Define.
23284 (TARGET_SUPPORTS_WIDE_INT): Add default.
23285 * dfp.c: Include wide-int.h.
23286 (decimal_real_to_integer2): Use wide-int interfaces and rename to
23287 decimal_real_to_integer.
23288 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
23289 decimal_real_to_integer.
23290 * doc/generic.texi (Constant expressions): Update for wide_int.
23291 * doc/rtl.texi (const_double): Likewise.
23292 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
23293 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
23294 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
23295 (REAL_VALUE_FROM_INT): Remove.
23296 (TARGET_SUPPORTS_WIDE_INT): New.
23297 * doc/tm.texi: Regenerate.
23298 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
23299 * double-int.h: Include wide-int.h.
23300 (struct wi::int_traits): New.
23301 * dwarf2out.c (get_full_len): New.
23302 (dw_val_equal_p): Add case dw_val_class_wide_int.
23303 (size_of_loc_descr): Likewise.
23304 (output_loc_operands): Likewise.
23305 (insert_double): Remove.
23306 (insert_wide_int): New.
23307 (add_AT_wide): New.
23308 (print_die): Add case dw_val_class_wide_int.
23309 (attr_checksum): Likewise.
23310 (attr_checksum_ordered): Likewise.
23311 (same_dw_val_p): Likewise.
23312 (size_of_die): Likewise.
23313 (value_format): Likewise.
23314 (output_die): Likewise.
23315 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
23317 (clz_loc_descriptor): Use wide-int interfaces.
23318 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
23319 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
23320 (round_up_to_align): Use wide-int interfaces.
23321 (field_byte_offset): Likewise.
23322 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
23323 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
23324 CONST_DOUBLE handling. Use wide-int interfaces.
23325 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
23326 (gen_enumeration_type_die): Use add_AT_wide.
23327 (hash_loc_operands): Add case dw_val_class_wide_int.
23328 (compare_loc_operands): Likewise.
23329 * dwarf2out.h: Include wide-int.h.
23330 (wide_int_ptr): New.
23331 (enum dw_val_class): Add dw_val_class_wide_int.
23332 (struct dw_val_struct): Add val_wide.
23333 * emit-rtl.c (const_wide_int_htab): New.
23334 (const_wide_int_htab_hash): New.
23335 (const_wide_int_htab_eq): New.
23336 (lookup_const_wide_int): New.
23337 (const_double_htab_hash): Use wide-int interfaces.
23338 (const_double_htab_eq): Likewise.
23339 (rtx_to_double_int): Conditionally compile for wide-int.
23340 (immed_double_int_const): Rename to immed_wide_int_const and
23341 update for wide-int.
23342 (immed_double_const): Conditionally compile for wide-int.
23343 (init_emit_once): Use wide-int interfaces.
23344 * explow.c (plus_constant): Likewise.
23345 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
23346 (lshift_value): Use wide-int interfaces.
23347 (expand_mult): Likewise.
23348 (choose_multiplier): Likewise.
23349 (expand_smod_pow2): Likewise.
23350 (make_tree): Likewise.
23351 * expr.c (convert_modes): Consolidate handling of constants.
23352 Use wide-int interfaces.
23353 (emit_group_load_1): Add note.
23354 (store_expr): Update comment.
23355 (get_inner_reference): Use wide-int interfaces.
23356 (expand_constructor): Update comment.
23357 (expand_expr_real_2): Use wide-int interfaces.
23358 (expand_expr_real_1): Likewise.
23359 (reduce_to_bit_field_precision): Likewise.
23360 (const_vector_from_tree): Likewise.
23361 * final.c: Include wide-int-print.h.
23362 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
23363 * fixed-value.c: Include wide-int.h.
23364 (fixed_from_string): Use wide-int interfaces.
23365 (fixed_to_decimal): Likewise.
23366 (fixed_convert_from_real): Likewise.
23367 (real_convert_from_fixed): Likewise.
23368 * fold-const.h (mem_ref_offset): Return an offset_int.
23369 (div_if_zero_remainder): Remove code parameter.
23370 * fold-const.c (div_if_zero_remainder): Remove code parameter.
23371 Use wide-int interfaces.
23372 (may_negate_without_overflow_p): Use wide-int interfaces.
23373 (negate_expr_p): Likewise.
23374 (fold_negate_expr): Likewise.
23375 (int_const_binop_1): Likewise.
23376 (const_binop): Likewise.
23377 (fold_convert_const_int_from_int): Likewise.
23378 (fold_convert_const_int_from_real): Likewise.
23379 (fold_convert_const_int_from_fixed): Likewise.
23380 (fold_convert_const_fixed_from_int): Likewise.
23381 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
23382 (sign_bit_p): Use wide-int interfaces.
23383 (make_range_step): Likewise.
23384 (build_range_check): Likewise. Pass an integer of the correct type
23385 instead of using integer_one_node.
23386 (range_predecessor): Pass an integer of the correct type instead
23387 of using integer_one_node.
23388 (range_successor): Likewise.
23389 (merge_ranges): Likewise.
23390 (unextend): Use wide-int interfaces.
23391 (extract_muldiv_1): Likewise.
23392 (fold_div_compare): Likewise.
23393 (fold_single_bit_test): Likewise.
23394 (fold_sign_changed_comparison): Likewise.
23395 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
23396 (fold_plusminus_mult_expr): Use wide-int interfaces.
23397 (native_encode_int): Likewise.
23398 (native_interpret_int): Likewise.
23399 (fold_unary_loc): Likewise.
23400 (pointer_may_wrap_p): Likewise.
23401 (size_low_cst): Likewise.
23402 (mask_with_tz): Likewise.
23403 (fold_binary_loc): Likewise.
23404 (fold_ternary_loc): Likewise.
23405 (multiple_of_p): Likewise.
23406 (tree_call_nonnegative_warnv_p): Update calls to
23407 tree_int_cst_min_precision and real_from_integer.
23408 (fold_negate_const): Use wide-int interfaces.
23409 (fold_abs_const): Likewise.
23410 (fold_relational_const): Use tree_int_cst_lt.
23411 (round_up_loc): Use wide-int interfaces.
23412 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
23413 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
23414 * gengtype.c: Remove include of double-int.h.
23415 (do_typedef): Use wide-int interfaces.
23416 (open_base_files): Add wide-int.h.
23417 (main): Add offset_int and widest_int typedefs.
23418 * gengtype-lex.l: Handle "^".
23419 (CXX_KEYWORD): Add "static".
23420 * gengtype-parse.c (require3): New.
23421 (require_template_declaration): Handle constant template arguments
23422 and nested templates.
23423 * gengtype-state.c: Don't include "double-int.h".
23424 * genpreds.c (write_one_predicate_function): Update comment.
23425 (write_tm_constrs_h): Add check for hval and lval use in
23427 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
23428 (add_to_sequence): Likewise.
23429 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
23430 and const_double_operand.
23431 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
23433 * gimple-fold.c (get_base_constructor): Likewise.
23434 (fold_array_ctor_reference): Likewise.
23435 (fold_nonarray_ctor_reference): Likewise.
23436 (fold_const_aggregate_ref_1): Likewise.
23437 (gimple_val_nonnegative_real_p): Likewise.
23438 (gimple_fold_indirect_ref): Likewise.
23439 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
23440 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
23441 (struct slsr_cand_d): Change index to be widest_int.
23442 (struct incr_info_d): Change incr to be widest_int.
23443 (alloc_cand_and_find_basis): Use wide-int interfaces.
23444 (slsr_process_phi): Likewise.
23445 (backtrace_base_for_ref): Likewise. Return a widest_int.
23446 (restructure_reference): Take a widest_int instead of a double_int.
23447 (slsr_process_ref): Use wide-int interfaces.
23448 (create_mul_ssa_cand): Likewise.
23449 (create_mul_imm_cand): Likewise.
23450 (create_add_ssa_cand): Likewise.
23451 (create_add_imm_cand): Take a widest_int instead of a double_int.
23452 (slsr_process_add): Use wide-int interfaces.
23453 (slsr_process_cast): Likewise.
23454 (slsr_process_copy): Likewise.
23455 (dump_candidate): Likewise.
23456 (dump_incr_vec): Likewise.
23457 (replace_ref): Likewise.
23458 (cand_increment): Likewise. Return a widest_int.
23459 (cand_abs_increment): Likewise.
23460 (replace_mult_candidate): Take a widest_int instead of a double_int.
23461 (replace_unconditional_candidate): Use wide-int interfaces.
23462 (incr_vec_index): Take a widest_int instead of a double_int.
23463 (create_add_on_incoming_edge): Likewise.
23464 (create_phi_basis): Use wide-int interfaces.
23465 (replace_conditional_candidate): Likewise.
23466 (record_increment): Take a widest_int instead of a double_int.
23467 (record_phi_increments): Use wide-int interfaces.
23468 (phi_incr_cost): Take a widest_int instead of a double_int.
23469 (lowest_cost_path): Likewise.
23470 (total_savings): Likewise.
23471 (analyze_increments): Use wide-int interfaces.
23472 (ncd_with_phi): Take a widest_int instead of a double_int.
23473 (ncd_of_cand_and_phis): Likewise.
23474 (nearest_common_dominator_for_cands): Likewise.
23475 (insert_initializers): Use wide-int interfaces.
23476 (all_phi_incrs_profitable): Likewise.
23477 (replace_one_candidate): Likewise.
23478 (replace_profitable_candidates): Likewise.
23479 * godump.c: Include wide-int-print.h.
23480 (go_output_typedef): Use wide-int interfaces.
23481 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
23482 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
23483 (build_loop_iteration_domains): Likewise.
23484 * hooks.h: Include wide-int.h rather than double-int.h.
23485 (hook_bool_dint_dint_uint_bool_true): Delete.
23486 (hook_bool_wint_wint_uint_bool_true): Declare.
23487 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
23488 (hook_bool_wint_wint_uint_bool_true): New.
23489 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
23491 (ubsan_expand_si_overflow_mul_check): Likewise.
23492 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
23493 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
23494 (get_ancestor_addr_info): Likewise.
23495 (ipa_modify_call_arguments): Likewise.
23496 * loop-doloop.c (doloop_modify): Likewise.
23497 (doloop_optimize): Likewise.
23498 * loop-iv.c (iv_number_of_iterations): Likewise.
23499 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
23500 (unroll_loop_constant_iterations): Likewise.
23501 (decide_unroll_runtime_iterations): Likewise.
23502 (unroll_loop_runtime_iterations): Likewise.
23503 (decide_peel_simple): Likewise.
23504 (decide_unroll_stupid): Likewise.
23505 * lto-streamer-in.c (streamer_read_wi): Add.
23506 (input_cfg): Use wide-int interfaces.
23507 (lto_input_tree_1): Likewise.
23508 * lto-streamer-out.c (streamer_write_wi): Add.
23509 (hash_tree): Use wide-int interfaces.
23510 (output_cfg): Likewise.
23511 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
23512 (GTFILES): Add wide-int.h and signop.h.
23513 (TAGS): Look for .cc files too.
23514 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
23515 * optabs.c (expand_subword_shift): Likewise.
23516 (expand_doubleword_shift): Likewise.
23517 (expand_absneg_bit): Likewise.
23518 (expand_copysign_absneg): Likewise.
23519 (expand_copysign_bit): Likewise.
23520 * postreload.c (reload_cse_simplify_set): Likewise.
23521 * predict.c (predict_iv_comparison): Likewise.
23522 * pretty-print.h: Include wide-int-print.h.
23524 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
23525 * print-tree.c: Include wide-int-print.h.
23526 (print_node_brief): Use wide-int interfaces.
23527 (print_node): Likewise.
23528 * read-rtl.c (validate_const_wide_int): New.
23529 (read_rtx_code): Add CONST_WIDE_INT case.
23530 * real.c: Include wide-int.h.
23531 (real_to_integer2): Delete.
23532 (real_to_integer): New function, returning a wide_int.
23533 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
23534 (ten_to_ptwo): Update call to real_from_integer.
23535 (real_digit): Likewise.
23536 * real.h: Include signop.h, wide-int.h and insn-modes.h.
23537 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
23538 (REAL_VALUE_TO_INT): Delete.
23539 (real_to_integer): Declare a wide-int form.
23540 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
23541 * recog.c (const_int_operand): Improve comment.
23542 (const_scalar_int_operand): New.
23543 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
23544 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
23545 (split_double): Likewise.
23546 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
23547 (rtx_size): Likewise.
23548 (rtx_alloc_stat_v): New.
23549 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
23550 (cwi_output_hex): New.
23551 (iterative_hash_rtx): Handle CONST_WIDE_INT.
23552 (cwi_check_failed_bounds): New.
23553 * rtl.def (CONST_WIDE_INT): New.
23554 * rtl.h: Include <utility> and wide-int.h.
23555 (struct hwivec_def): New.
23556 (CWI_GET_NUM_ELEM): New.
23557 (CWI_PUT_NUM_ELEM): New.
23558 (struct rtx_def): Add num_elem and hwiv.
23559 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
23560 (CASE_CONST_UNIQUE): Likewise.
23561 (CASE_CONST_ANY): Likewise.
23562 (CONST_SCALAR_INT_P): Likewise.
23563 (CONST_WIDE_INT_P): New.
23565 (HWIVEC_CHECK): New.
23566 (cwi_check_failed_bounds): New.
23568 (HWIVEC_CHECK): New.
23569 (CONST_WIDE_INT_VEC) New.
23570 (CONST_WIDE_INT_NUNITS) New.
23571 (CONST_WIDE_INT_ELT) New.
23572 (rtx_mode_t): New type.
23573 (wi::int_traits <rtx_mode_t>): New.
23575 (wi::min_value): New.
23576 (wi::max_value): New.
23578 (const_wide_int_alloc): New.
23579 (immed_wide_int_const): New.
23580 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
23581 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
23582 * signop.h: New file.
23583 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
23584 (simplify_const_unary_operation): Use wide-int interfaces.
23585 (simplify_binary_operation_1): Likewise.
23586 (simplify_const_binary_operation): Likewise.
23587 (simplify_const_relational_operation): Likewise.
23588 (simplify_immed_subreg): Likewise.
23589 * stmt.c (expand_case): Likewise.
23590 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
23591 signop rather than a bool.
23592 * stor-layout.c (layout_type): Use wide-int interfaces.
23593 (initialize_sizetypes): Update calls to
23594 set_min_and_max_values_for_integral_type.
23595 (set_min_and_max_values_for_integral_type): Take a signop rather
23596 than a bool. Use wide-int interfaces.
23597 (fixup_signed_type): Update accordingly. Remove
23598 HOST_BITS_PER_DOUBLE_INT limit.
23599 (fixup_unsigned_type): Likewise.
23600 * system.h (STATIC_CONSTANT_P): New.
23601 (STATIC_ASSERT): New.
23602 * target.def (can_use_doloop_p): Take widest_ints rather than
23604 * target.h: Include wide-int.h rather than double-int.h.
23605 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
23607 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
23608 rather than INT_CST_LT_UNSIGNED.
23609 (can_use_doloop_if_innermost): Take widest_ints rather than
23611 * tree-affine.c: Include wide-int-print.h.
23612 (double_int_ext_for_comb): Delete.
23613 (wide_int_ext_for_comb): New.
23614 (aff_combination_zero): Use wide-int interfaces.
23615 (aff_combination_const): Take a widest_int instead of a double_int.
23616 (aff_combination_elt): Use wide-int interfaces.
23617 (aff_combination_scale): Take a widest_int instead of a double_int.
23618 (aff_combination_add_elt): Likewise.
23619 (aff_combination_add_cst): Likewise.
23620 (aff_combination_add): Use wide-int interfaces.
23621 (aff_combination_convert): Likewise.
23622 (tree_to_aff_combination): Likewise.
23623 (add_elt_to_tree): Take a widest_int instead of a double_int.
23624 (aff_combination_to_tree): Use wide-int interfaces.
23625 (aff_combination_remove_elt): Likewise.
23626 (aff_combination_add_product): Take a widest_int instead of
23628 (aff_combination_mult): Use wide-int interfaces.
23629 (aff_combination_expand): Likewise.
23630 (double_int_constant_multiple_p): Delete.
23631 (wide_int_constant_multiple_p): New.
23632 (aff_combination_constant_multiple_p): Take a widest_int pointer
23633 instead of a double_int pointer.
23634 (print_aff): Use wide-int interfaces.
23635 (get_inner_reference_aff): Take a widest_int pointer
23636 instead of a double_int pointer.
23637 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
23638 * tree-affine.h: Include wide-int.h.
23639 (struct aff_comb_elt): Change type of coef to widest_int.
23640 (struct affine_tree_combination): Change type of offset to widest_int.
23641 (double_int_ext_for_comb): Delete.
23642 (wide_int_ext_for_comb): New.
23643 (aff_combination_const): Use widest_int instead of double_int.
23644 (aff_combination_scale): Likewise.
23645 (aff_combination_add_elt): Likewise.
23646 (aff_combination_constant_multiple_p): Likewise.
23647 (get_inner_reference_aff): Likewise.
23648 (aff_comb_cannot_overlap_p): Likewise.
23649 (aff_combination_zero_p): Use wide-int interfaces.
23650 * tree.c: Include tree.h.
23651 (init_ttree): Use make_int_cst.
23652 (tree_code_size): Removed code for INTEGER_CST case.
23653 (tree_size): Add INTEGER_CST case.
23654 (make_node_stat): Update comment.
23655 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
23656 (build_int_cst_type): Use wide-int interfaces.
23657 (double_int_to_tree): Likewise.
23658 (double_int_fits_to_tree_p): Delete.
23659 (force_fit_type_double): Delete.
23660 (force_fit_type): New.
23661 (int_cst_hash_hash): Use wide-int interfaces.
23662 (int_cst_hash_eq): Likewise.
23663 (build_int_cst_wide): Delete.
23664 (wide_int_to_tree): New.
23665 (cache_integer_cst): Use wide-int interfaces.
23666 (build_low_bits_mask): Likewise.
23667 (cst_and_fits_in_hwi): Likewise.
23668 (real_value_from_int_cst): Likewise.
23669 (make_int_cst_stat): New.
23670 (integer_zerop): Use wide_int interfaces.
23671 (integer_onep): Likewise.
23672 (integer_all_onesp): Likewise.
23673 (integer_pow2p): Likewise.
23674 (integer_nonzerop): Likewise.
23675 (tree_log2): Likewise.
23676 (tree_floor_log2): Likewise.
23677 (tree_ctz): Likewise.
23678 (int_size_in_bytes): Likewise.
23679 (mem_ref_offset): Return an offset_int rather than a double_int.
23680 (build_type_attribute_qual_variant): Use wide_int interfaces.
23681 (type_hash_eq): Likewise
23682 (tree_int_cst_equal): Likewise.
23683 (tree_int_cst_lt): Delete.
23684 (tree_int_cst_compare): Likewise.
23685 (tree_fits_shwi_p): Use wide_int interfaces.
23686 (tree_fits_uhwi_p): Likewise.
23687 (tree_int_cst_sign_bit): Likewise.
23688 (tree_int_cst_sgn): Likewise.
23689 (tree_int_cst_min_precision): Take a signop rather than a bool.
23690 (simple_cst_equal): Use wide_int interfaces.
23691 (compare_tree_int): Likewise.
23692 (iterative_hash_expr): Likewise.
23693 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
23695 (get_type_static_bounds): Use wide_int interfaces.
23696 (tree_int_cst_elt_check_failed): New.
23697 (build_common_tree_nodes): Reordered to set prec before filling in
23699 (int_cst_value): Check cst_and_fits_in_hwi.
23700 (widest_int_cst_value): Use wide_int interfaces.
23701 (upper_bound_in_type): Likewise.
23702 (lower_bound_in_type): Likewise.
23703 (num_ending_zeros): Likewise.
23704 (drop_tree_overflow): Likewise.
23705 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
23706 (gen_conditions_for_pow_cst_base): Likewise.
23707 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
23708 (group_case_labels_stmt): Use wide-int interfaces.
23709 (verify_gimple_assign_binary): Likewise.
23710 (print_loop): Likewise.
23711 * tree-chrec.c (tree_fold_binomial): Likewise.
23712 * tree-core.h (struct tree_base): Add int_length.
23713 (struct tree_int_cst): Change rep of value.
23714 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
23715 (dr_may_alias_p): Likewise.
23716 (max_stmt_executions_tree): Likewise.
23717 * tree.def (INTEGER_CST): Update comment.
23718 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
23719 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
23720 * tree-dump.c: Include wide-int.h and wide-int-print.h.
23721 (dequeue_and_dump): Use wide-int interfaces.
23722 * tree.h: Include wide-int.h.
23723 (NULL_TREE): Moved to earlier loc in file.
23724 (TREE_INT_CST_ELT_CHECK): New.
23725 (tree_int_cst_elt_check_failed): New.
23727 (TREE_INT_CST): Delete.
23728 (TREE_INT_CST_LOW): Use wide-int interfaces.
23729 (TREE_INT_CST_HIGH): Delete.
23730 (TREE_INT_CST_NUNITS): New.
23731 (TREE_INT_CST_EXT_NUNITS): Likewise.
23732 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
23733 (TREE_INT_CST_ELT): Likewise.
23734 (INT_CST_LT): Delete.
23735 (tree_int_cst_elt_check): New (two forms).
23736 (type_code_size): Update comment.
23737 (make_int_cst_stat, make_int_cst): New.
23738 (tree_to_double_int): Delete.
23739 (double_int_fits_to_tree_p): Delete.
23740 (force_fit_type_double): Delete.
23741 (build_int_cstu): Replace with out-of-line function.
23742 (build_int_cst_wide): Delete.
23743 (tree_int_cst_lt): Define inline.
23744 (tree_int_cst_le): New.
23745 (tree_int_cst_compare): Define inline.
23746 (tree_int_cst_min_precision): Take a signop rather than a bool.
23747 (wi::int_traits <const_tree>): New.
23748 (wi::int_traits <tree>): New.
23749 (wi::extended_tree): New.
23750 (wi::int_traits <wi::extended_tree>): New.
23751 (wi::to_widest): New.
23752 (wi::to_offset): New.
23753 (wi::fits_to_tree_p): New.
23754 (wi::min_value): New.
23755 (wi::max_value): New.
23756 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
23757 (copy_tree_body_r): Likewise.
23758 * tree-object-size.c (compute_object_offset): Likewise.
23759 (addr_object_size): Likewise.
23760 * tree-predcom.c: Include wide-int-print.h.
23761 (struct dref_d): Change type of offset to widest_int.
23762 (dump_dref): Call wide-int printer.
23763 (aff_combination_dr_offset): Use wide-int interfaces.
23764 (determine_offset): Take a widest_int pointer rather than a
23765 double_int pointer.
23766 (split_data_refs_to_components): Use wide-int interfaces.
23767 (suitable_component_p): Likewise.
23768 (order_drefs): Likewise.
23769 (add_ref_to_chain): Likewise.
23770 (valid_initializer_p): Likewise.
23771 (determine_roots_comp): Likewise.
23772 * tree-pretty-print.c: Include wide-int-print.h.
23773 (dump_generic_node): Use wide-int interfaces.
23774 * tree-sra.c (sra_ipa_modify_expr): Likewise.
23775 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
23776 (move_fixed_address_to_symbol): Likewise.
23777 (move_hint_to_base): Likewise.
23778 (move_pointer_to_base): Likewise.
23779 (move_variant_to_index): Likewise.
23780 (most_expensive_mult_to_index): Likewise.
23781 (addr_to_parts): Likewise.
23782 (copy_ref_info): Likewise.
23783 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
23784 (indirect_refs_may_alias_p): Likewise.
23785 (stmt_kills_ref_p_1): Likewise.
23786 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
23787 * tree-ssa-ccp.c: Update comment at top of file. Include
23789 (struct prop_value_d): Change type of mask to widest_int.
23790 (extend_mask): New function.
23791 (dump_lattice_value): Use wide-int interfaces.
23792 (get_default_value): Likewise.
23793 (set_constant_value): Likewise.
23794 (set_value_varying): Likewise.
23795 (valid_lattice_transition): Likewise.
23796 (set_lattice_value): Likewise.
23797 (value_to_double_int): Delete.
23798 (value_to_wide_int): New.
23799 (get_value_from_alignment): Use wide-int interfaces.
23800 (get_value_for_expr): Likewise.
23801 (do_dbg_cnt): Likewise.
23802 (ccp_finalize): Likewise.
23803 (ccp_lattice_meet): Likewise.
23804 (bit_value_unop_1): Use widest_ints rather than double_ints.
23805 (bit_value_binop_1): Likewise.
23806 (bit_value_unop): Use wide-int interfaces.
23807 (bit_value_binop): Likewise.
23808 (bit_value_assume_aligned): Likewise.
23809 (evaluate_stmt): Likewise.
23810 (ccp_fold_stmt): Likewise.
23811 (visit_cond_stmt): Likewise.
23812 (ccp_visit_stmt): Likewise.
23813 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
23814 (constant_pointer_difference): Likewise.
23815 (associate_pointerplus): Likewise.
23816 (combine_conversions): Likewise.
23817 * tree-ssa-loop.h: Include wide-int.h.
23818 (struct tree_niter_desc): Change type of max to widest_int.
23819 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
23820 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
23821 (remove_redundant_iv_tests): Likewise.
23822 (canonicalize_loop_induction_variables): Likewise.
23823 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
23824 (constant_multiple_of): Take a widest_int pointer instead of
23825 a double_int pointer.
23826 (get_computation_aff): Use wide-int interfaces.
23827 (ptr_difference_cost): Likewise.
23828 (difference_cost): Likewise.
23829 (get_loop_invariant_expr_id): Likewise.
23830 (get_computation_cost_at): Likewise.
23831 (iv_elimination_compare_lt): Likewise.
23832 (may_eliminate_iv): Likewise.
23833 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
23834 instead of double_int.
23835 (max_loop_iterations): Likewise.
23836 (max_stmt_executions): Likewise.
23837 (estimated_stmt_executions): Likewise.
23838 * tree-ssa-loop-niter.c: Include wide-int-print.h.
23839 (split_to_var_and_offset): Use wide-int interfaces.
23840 (determine_value_range): Likewise.
23841 (bound_difference_of_offsetted_base): Likewise.
23842 (bounds_add): Take a widest_int instead of a double_int.
23843 (number_of_iterations_ne_max): Use wide-int interfaces.
23844 (number_of_iterations_ne): Likewise.
23845 (number_of_iterations_lt_to_ne): Likewise.
23846 (assert_loop_rolls_lt): Likewise.
23847 (number_of_iterations_lt): Likewise.
23848 (number_of_iterations_le): Likewise.
23849 (number_of_iterations_cond): Likewise.
23850 (number_of_iterations_exit): Likewise.
23851 (finite_loop_p): Likewise.
23852 (derive_constant_upper_bound_assign): Likewise.
23853 (derive_constant_upper_bound): Return a widest_int.
23854 (derive_constant_upper_bound_ops): Likewise.
23855 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
23856 (record_estimate): Take a widest_int rather than a double_int.
23857 (record_nonwrapping_iv): Use wide-int interfaces.
23858 (double_int_cmp): Delete.
23859 (wide_int_cmp): New.
23860 (bound_index): Take a widest_int rather than a double_int.
23861 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
23862 (maybe_lower_iteration_bound): Likewise.
23863 (estimate_numbers_of_iterations_loop): Likewise.
23864 (estimated_loop_iterations): Take a widest_int pointer than than
23865 a double_int pointer.
23866 (estimated_loop_iterations_int): Use wide-int interfaces.
23867 (max_loop_iterations): Take a widest_int pointer than than
23868 a double_int pointer.
23869 (max_loop_iterations_int): Use wide-int interfaces.
23870 (max_stmt_executions): Take a widest_int pointer than than
23871 a double_int pointer.
23872 (estimated_stmt_executions): Likewise.
23873 (n_of_executions_at_most): Use wide-int interfaces.
23874 (scev_probably_wraps_p): Likewise.
23875 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
23876 to real_to_integer.
23877 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
23879 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
23880 double_ints. Adjust for trailing_wide_ints <3> representation.
23881 (set_nonzero_bits): Likewise.
23882 (get_range_info): Return wide_ints rather than double_ints.
23883 Adjust for trailing_wide_ints <3> representation.
23884 (get_nonzero_bits): Likewise.
23885 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
23887 * tree-ssanames.h (struct range_info_def): Replace min, max and
23888 nonzero_bits with a trailing_wide_ints <3>.
23889 (set_range_info): Use wide_int_refs rather than double_ints.
23890 (set_nonzero_bits): Likewise.
23891 (get_range_info): Return wide_ints rather than double_ints.
23892 (get_nonzero_bits): Likewise.
23893 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
23894 * tree-ssa-pre.c (phi_translate_1): Likewise.
23895 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
23896 (acceptable_pow_call): Likewise.
23897 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
23899 (vn_reference_fold_indirect): Likewise.
23900 (vn_reference_maybe_forwprop_address): Likewise.
23901 (valueize_refs_1): Likewise.
23902 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
23903 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
23904 tree_int_cst_lt and tree_int_cst_le.
23905 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
23907 (streamer_alloc_tree): Likewise.
23908 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
23909 (streamer_write_tree_header): Likewise.
23910 (streamer_write_integer_cst): Likewise.
23911 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
23912 (build_constructors): Likewise.
23913 (array_value_type): Likewise.
23914 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
23915 (vect_check_gather): Likewise.
23916 * tree-vect-generic.c (build_replicated_const): Likewise.
23917 (expand_vector_divmod): Likewise.
23918 * tree-vect-loop.c (vect_transform_loop): Likewise.
23919 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
23920 (vect_do_peeling_for_alignment): Likewise.
23921 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
23922 * tree-vrp.c: Include wide-int.h.
23923 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
23924 (extract_range_from_assert): Use wide-int interfaces.
23925 (vrp_int_const_binop): Likewise.
23926 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
23927 double_int pointers.
23928 (ranges_from_anti_range): Use wide-int interfaces.
23929 (quad_int_cmp): Delete.
23930 (quad_int_pair_sort): Likewise.
23931 (extract_range_from_binary_expr_1): Use wide-int interfaces.
23932 (extract_range_from_unary_expr_1): Likewise.
23933 (adjust_range_with_scev): Likewise.
23934 (masked_increment): Take and return wide_ints rather than double_ints.
23935 (register_edge_assert_for_2): Use wide-int interfaces.
23936 (check_array_ref): Likewise.
23937 (search_for_addr_array): Likewise.
23938 (maybe_set_nonzero_bits): Likewise.
23939 (union_ranges): Pass an integer of the correct type instead of
23940 using integer_one_node.
23941 (intersect_ranges): Likewise.
23942 (simplify_truth_ops_using_ranges): Likewise.
23943 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
23944 (range_fits_type_p): Likewise.
23945 (simplify_cond_using_ranges): Likewise. Take a signop rather than
23947 (simplify_conversion_using_ranges): Use wide-int interfaces.
23948 (simplify_float_conversion_using_ranges): Likewise.
23949 (vrp_finalize): Likewise.
23950 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
23951 (gimple_stringops_transform): Likewise.
23952 * varasm.c (decode_addr_const): Likewise.
23953 (const_hash_1): Likewise.
23954 (const_rtx_hash_1): Likewise
23955 (output_constant): Likewise.
23956 (array_size_for_constructor): Likewise.
23957 (output_constructor_regular_field): Likewise.
23958 (output_constructor_bitfield): Likewise.
23959 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
23960 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
23962 * gencheck.c: Define BITS_PER_UNIT.
23963 * wide-int.cc: New.
23965 * wide-int-print.cc: New.
23966 * wide-int-print.h: New.
23968 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
23970 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
23972 2014-05-06 Richard Biener <rguenther@suse.de>
23974 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
23975 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
23976 (TODO_verify_all): Adjust.
23977 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
23978 TODO_verify_stmts and TODO_verify_rtl_sharing.
23979 * bb-reorder.c: Likewise.
23980 * cfgexpand.c: Likewise.
23981 * cprop.c: Likewise.
23983 * function.c: Likewise.
23984 * fwprop.c: Likewise.
23985 * gcse.c: Likewise.
23986 * gimple-ssa-isolate-paths.c: Likewise.
23987 * gimple-ssa-strength-reduction.c: Likewise.
23988 * ipa-split.c: Likewise.
23989 * loop-init.c: Likewise.
23990 * loop-unroll.c: Likewise.
23991 * lower-subreg.c: Likewise.
23992 * modulo-sched.c: Likewise.
23993 * postreload-gcse.c: Likewise.
23994 * predict.c: Likewise.
23995 * recog.c: Likewise.
23996 * sched-rgn.c: Likewise.
23997 * store-motion.c: Likewise.
23998 * tracer.c: Likewise.
23999 * trans-mem.c: Likewise.
24000 * tree-call-cdce.c: Likewise.
24001 * tree-cfg.c: Likewise.
24002 * tree-cfgcleanup.c: Likewise.
24003 * tree-complex.c: Likewise.
24004 * tree-eh.c: Likewise.
24005 * tree-emutls.c: Likewise.
24006 * tree-if-conv.c: Likewise.
24007 * tree-into-ssa.c: Likewise.
24008 * tree-loop-distribution.c: Likewise.
24009 * tree-object-size.c: Likewise.
24010 * tree-parloops.c: Likewise.
24011 * tree-pass.h: Likewise.
24012 * tree-sra.c: Likewise.
24013 * tree-ssa-ccp.c: Likewise.
24014 * tree-ssa-copy.c: Likewise.
24015 * tree-ssa-copyrename.c: Likewise.
24016 * tree-ssa-dce.c: Likewise.
24017 * tree-ssa-dom.c: Likewise.
24018 * tree-ssa-dse.c: Likewise.
24019 * tree-ssa-forwprop.c: Likewise.
24020 * tree-ssa-ifcombine.c: Likewise.
24021 * tree-ssa-loop-ch.c: Likewise.
24022 * tree-ssa-loop-ivcanon.c: Likewise.
24023 * tree-ssa-loop.c: Likewise.
24024 * tree-ssa-math-opts.c: Likewise.
24025 * tree-ssa-phiopt.c: Likewise.
24026 * tree-ssa-phiprop.c: Likewise.
24027 * tree-ssa-pre.c: Likewise.
24028 * tree-ssa-reassoc.c: Likewise.
24029 * tree-ssa-sink.c: Likewise.
24030 * tree-ssa-strlen.c: Likewise.
24031 * tree-ssa-tail-merge.c: Likewise.
24032 * tree-ssa-uncprop.c: Likewise.
24033 * tree-switch-conversion.c: Likewise.
24034 * tree-tailcall.c: Likewise.
24035 * tree-vect-generic.c: Likewise.
24036 * tree-vectorizer.c: Likewise.
24037 * tree-vrp.c: Likewise.
24038 * tsan.c: Likewise.
24039 * var-tracking.c: Likewise.
24040 * bt-load.c: Likewise.
24041 * cfgcleanup.c: Likewise.
24042 * combine-stack-adj.c: Likewise.
24043 * combine.c: Likewise.
24044 * compare-elim.c: Likewise.
24045 * config/epiphany/resolve-sw-modes.c: Likewise.
24046 * config/i386/i386.c: Likewise.
24047 * config/mips/mips.c: Likewise.
24048 * config/s390/s390.c: Likewise.
24049 * config/sh/sh_treg_combine.cc: Likewise.
24050 * config/sparc/sparc.c: Likewise.
24053 * final.c: Likewise.
24054 * ifcvt.c: Likewise.
24055 * mode-switching.c: Likewise.
24056 * passes.c: Likewise.
24057 * postreload.c: Likewise.
24059 * reg-stack.c: Likewise.
24060 * regcprop.c: Likewise.
24061 * regrename.c: Likewise.
24064 2014-05-06 Richard Biener <rguenther@suse.de>
24066 PR middle-end/61070
24067 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
24068 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
24070 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
24073 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
24075 2014-05-05 Radovan Obradovic <robradovic@mips.com>
24076 Tom de Vries <tom@codesourcery.com>
24078 * target.def (call_fusage_contains_non_callee_clobbers): New
24080 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
24082 (@node Miscellaneous Register Hooks): New node.
24083 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
24084 * doc/tm.texi: Regenerate.
24086 2014-05-05 Marek Polacek <polacek@redhat.com>
24089 * opts.c (common_handle_option): Call error_at instead of warning_at.
24091 2014-05-05 Richard Biener <rguenther@suse.de>
24093 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
24094 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
24095 under the TODO_verify_il umbrella.
24097 2014-05-05 Richard Biener <rguenther@suse.de>
24099 * passes.c (execute_function_todo): Move TODO_verify_flow under
24100 the TODO_verify_ul umbrella.
24102 2014-05-05 Richard Biener <rguenther@suse.de>
24104 PR middle-end/61010
24105 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
24106 X & CST away from a CST that is the mask of a mode.
24108 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24110 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
24111 int argument to enum machine_mode.
24112 (picochip_class_max_nregs): Ditto.
24113 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
24114 (picochip_class_max_nregs): Ditto.
24116 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24118 * target.def: Add new target hook.
24119 * doc/tm.texi: Regenerate.
24120 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
24121 * targhooks.c (default_keep_leaf_when_profiled): New function.
24123 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
24124 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
24126 2014-05-05 Bin Cheng <bin.cheng@arm.com>
24128 PR tree-optimization/60363
24129 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
24130 (copy_phi_args): New parameters. Call get_value_locus_in_path.
24131 (update_destination_phis): New parameter.
24132 (create_edge_and_update_destination_phis): Ditto.
24133 (ssa_fix_duplicate_block_edges): Pass new arguments.
24134 (thread_single_edge): Ditto.
24136 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
24138 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
24139 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
24140 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
24141 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
24142 Use RS6000_BTM_HARD_FLOAT.
24143 (BU_MISC_2): Likewise.
24144 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
24145 RS6000_BTM_HARD_FLOAT.
24146 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
24147 is explicitly used.
24148 (rs6000_invalid_builtin): Add hard floating builtin support.
24149 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
24150 hard float builtins.
24151 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
24153 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24155 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
24156 Add missing function* argument.
24158 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
24160 * lra-constraints.c (valid_address_p): Move earlier in file.
24161 Add a constraint argument to the address_info version.
24162 (satisfies_memory_constraint_p): New function.
24163 (satisfies_address_constraint_p): Likewise.
24164 (process_alt_operands, curr_insn_transform): Use them.
24165 (process_address): Pass the constraint to valid_address_p when
24166 checking address operands.
24168 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
24170 * config/mips/mips.c (mips_isa_rev): New variable.
24171 (mips_set_architecture): Set it.
24172 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
24174 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
24175 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
24176 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
24177 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
24178 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
24179 conditions in terms of mips_isa_rev.
24180 (mips_isa_rev): Declare.
24182 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24184 * config/sh/sh-mem.cc: Use tabs instead of spaces.
24185 (prob_unlikely, prob_likely): Make variables const.
24187 2014-05-03 Denis Chertykov <chertykov@gmail.com>
24189 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
24191 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24193 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
24195 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24197 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
24198 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
24199 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
24201 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
24202 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
24204 Replace usage of ROUND_REG with sh_round_reg.
24205 Use CEIL instead of ROUND_ADVANCE.
24207 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
24210 * config/sh/sh.c: Include stdlib headers before everything else.
24212 2014-05-02 Jakub Jelinek <jakub@redhat.com>
24214 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
24215 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
24216 (gimplify_adjust_omp_clauses): Simd region is never
24217 directly nested in combined parallel. Instead, for linear
24218 with copyin/copyout, if in combined for simd loop, make decl
24219 firstprivate/lastprivate on OMP_FOR.
24220 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
24221 expand_omp_for_static_chunk): When setting endvar, also set
24222 fd->loop.v to the same value.
24224 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
24226 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
24228 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
24230 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
24233 2014-05-02 Marek Polacek <polacek@redhat.com>
24235 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
24237 2014-05-02 Kito Cheng <kito@0xlab.org>
24239 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
24240 to a C expression marco.
24241 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
24242 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
24243 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
24244 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
24245 HONOR_REG_ALLOC_ORDER.
24246 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
24248 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24250 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
24252 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24254 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
24256 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
24258 * tree-if-conv.c (is_cond_scalar_reduction): New function.
24259 (convert_scalar_cond_reduction): Likewise.
24260 (predicate_scalar_phi): Add recognition and transformation
24261 of simple conditioanl reduction to be vectorizable.
24263 2014-05-01 Marek Polacek <polacek@redhat.com>
24266 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
24268 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
24270 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
24271 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
24272 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
24273 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
24274 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
24275 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
24276 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
24277 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
24279 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
24281 * config/arc/arc.opt (mlra): Move comment above option name
24282 to avoid mis-parsing as language options.
24284 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24286 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
24287 * config/sol2.h: ... here.
24288 * config/sol2-10.h: Remove.
24290 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
24291 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
24292 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
24293 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
24294 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
24295 * config/sol2.h: ... here.
24296 (SECTION_NAME_FORMAT): Don't redefine.
24297 (STARTFILE_ARCH32_SPEC): Rename to ...
24298 (STARTFILE_ARCH_SPEC): ... this.
24299 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
24300 * config/sparc/sol2.h: ... here.
24301 (SECTION_NAME_FORMAT): Don't undef.
24302 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
24303 (SUBTARGET_EXTRA_SPECS): Remove.
24304 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
24306 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
24307 (MD_STARTFILE_PREFIX): Remove.
24308 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
24309 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
24310 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
24311 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
24312 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
24313 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
24314 * config/i386/sol2.h: ... here.
24315 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
24316 * config/i386/sol2-bi.h: Remove.
24317 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
24318 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
24320 * config/i386/t-sol2-64: Rename to ...
24321 * config/i386/t-sol2: ... this.
24322 * config/sparc/t-sol2-64: Rename to ...
24323 * config/sparc/t-sol2: ... this.
24325 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
24326 sol2_tm_file_head, sol2_tm_file_tail.
24327 Include ${cpu_type}/sol2.h before sol2.h.
24329 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
24330 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
24331 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
24332 Reflect i386/t-sol2-64 renaming.
24333 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
24334 Reflect sparc/t-sol2-64 renaming.
24336 2014-04-30 Richard Biener <rguenther@suse.de>
24338 * passes.c (execute_function_todo): Move TODO_verify_stmts
24339 and TODO_verify_ssa under the TODO_verify_il umbrella.
24340 * tree-ssa.h (verify_ssa): Adjust prototype.
24341 * tree-ssa.c (verify_ssa): Add parameter to tell whether
24342 we should verify SSA operands.
24343 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
24344 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
24345 whether we should verify whether not throwing stmts have EH info.
24346 * graphite-scop-detection.c (create_sese_edges): Adjust.
24347 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
24348 * tree-eh.c (lower_try_finally_switch): Do not add the
24349 default case label twice.
24351 2014-04-30 Marek Polacek <polacek@redhat.com>
24353 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
24354 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
24355 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
24356 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
24358 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
24360 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
24361 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
24362 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
24363 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
24364 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
24365 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
24366 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
24367 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
24369 2014-04-29 David Malcolm <dmalcolm@redhat.com>
24371 * tree-cfg.c (dump_function_to_file): Dump the return type of
24372 functions, in a line to itself before the function body, mimicking
24373 the layout of a C function.
24375 2014-04-29 Jakub Jelinek <jakub@redhat.com>
24377 PR tree-optimization/60971
24378 * tree-tailcall.c (process_assignment): Reject conversions which
24381 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
24383 * calls.c (initialize_argument_information): Always treat
24384 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
24385 (expand_call): Likewise.
24386 (emit_library_call_calue_1): Likewise.
24387 * expr.c (PUSH_ARGS_REVERSED): Do not define.
24388 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
24391 2014-04-29 Nick Clifton <nickc@redhat.com>
24393 * config/msp430/msp430.md (umulsidi): Fix typo.
24394 (mulhisi3): Enable even inside interrupt handlers.
24395 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
24396 bigger return address pushed in large mode.
24398 2014-04-29 Nick Clifton <nickc@redhat.com>
24400 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
24401 (arc_init_reg_tables): Use a machine_mode enum to iterate over
24403 * config/m32r/m32r.c (init_reg_tables): Likewise.
24404 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
24405 enum to hold the modes.
24407 2014-04-29 Richard Biener <rguenther@suse.de>
24409 * dominance.c (free_dominance_info): Add overload with
24410 function parameter.
24411 (dom_info_state): Likewise.
24412 (dom_info_available_p): Likewise.
24413 * basic-block.h (free_dominance_info, dom_info_state,
24414 dom_info_available_p): Declare overloads.
24415 * passes.c (execute_function_todo): Verify that verifiers
24416 don't change dominator info state. Drop dominator info
24417 for IPA pass invocations.
24418 * cgraph.c (release_function_body): Restore asserts that
24419 dominator information is released.
24421 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
24423 * doc/invoke.texi: Fix typo.
24424 * tree-vrp.c: Fix typos.
24425 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
24427 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24429 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
24431 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
24433 * config/aarch64/aarch64-builtins.c
24434 (aarch64_types_storestruct_lane_qualifiers): New.
24435 (TYPES_STORESTRUCT_LANE): Likewise.
24436 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
24437 (st3_lane): Likewise.
24438 (st4_lane): Likewise.
24439 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
24440 (vec_store_lanesci_lane<mode>): Likewise.
24441 (vec_store_lanesxi_lane<mode>): Likewise.
24442 (aarch64_st2_lane<VQ:mode>): Likewise.
24443 (aarch64_st3_lane<VQ:mode>): Likewise.
24444 (aarch64_st4_lane<VQ:mode>): Likewise.
24445 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
24446 * config/aarch64/arm_neon.h
24447 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
24448 use new macro arguments.
24449 (__ST3_LANE_FUNC): Likewise.
24450 (__ST4_LANE_FUNC): Likewise.
24451 * config/aarch64/iterators.md (V_TWO_ELEM): New.
24452 (V_THREE_ELEM): Likewise.
24453 (V_FOUR_ELEM): Likewise.
24455 2014-04-28 David Malcolm <dmalcolm@redhat.com>
24457 * doc/gimple.texi: Replace the description of the now-defunct
24458 union gimple_statement_d with a diagram showing the
24459 gimple_statement_base class hierarchy and its relationships to
24460 the GSS_ and GIMPLE_ enums.
24462 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
24464 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
24465 * config/aarch64/aarch64.c
24466 (aarch64_cannot_change_mode_class): Weaken conditions.
24467 (aarch64_modes_tieable_p): New.
24468 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
24470 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
24472 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
24473 (loadsync_<mode>): Change mode.
24474 (load_quadpti, store_quadpti): New.
24475 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
24476 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
24478 2014-04-28 Martin Jambor <mjambor@suse.cz>
24480 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
24481 same alias type as the original statement.
24482 (subreplacement_assignment_data): New type.
24483 (handle_unscalarized_data_in_subtree): New type of parameter,
24484 generate new memory accesses with same alias type as the original
24486 (load_assign_lhs_subreplacements): Likewise.
24487 (sra_modify_constructor_assign): Generate new memory accesses with
24488 same alias type as the original statement.
24490 2014-04-28 Richard Biener <rguenther@suse.de>
24492 * tree-pass.h (TODO_verify_il): Define.
24493 (TODO_verify_all): Complete properly.
24494 * passes.c (execute_function_todo): Move existing loop-closed
24495 SSA verification under TODO_verify_il.
24496 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
24497 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
24498 Fix tree sharing issue.
24500 2014-04-28 Richard Biener <rguenther@suse.de>
24502 PR middle-end/60092
24503 * builtins.def (DEF_C11_BUILTIN): Add.
24504 (BUILT_IN_ALIGNED_ALLOC): Likewise.
24505 * coretypes.h (enum function_class): Add function_c11_misc.
24506 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24507 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
24508 (call_may_clobber_ref_p_1): Likewise.
24509 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
24510 (mark_all_reaching_defs_necessary_1): Likewise.
24511 (propagate_necessity): Likewise.
24512 (eliminate_unnecessary_stmts): Likewise.
24513 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
24515 2014-04-28 Richard Biener <rguenther@suse.de>
24517 * tree-vrp.c (vrp_var_may_overflow): Remove.
24518 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
24519 with overflow immediately bump to one before that value and
24520 let iteration figure out overflow status.
24522 2014-04-28 Richard Biener <rguenther@suse.de>
24524 * configure.ac: Do valgrind header checks unconditionally.
24525 Add --enable-valgrind-annotations.
24526 * system.h: Guard valgrind header inclusion with
24527 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
24528 * alloc-pool.c (pool_alloc, pool_free): Use
24529 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
24530 to guard possibly dead code.
24531 * config.in: Regenerated.
24532 * configure: Likewise.
24534 2014-04-28 Jeff Law <law@redhat.com>
24536 PR tree-optimization/60902
24537 * tree-ssa-threadedge.c
24538 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
24539 over real defs when invalidating outputs from statements that do not
24540 produce useful outputs for threading.
24542 2014-04-28 Richard Biener <rguenther@suse.de>
24544 PR tree-optimization/60979
24545 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
24546 SCOPs that end in a block with a successor with abnormal
24549 2014-04-28 Richard Biener <rguenther@suse.de>
24551 * tree-pass.h (execute_pass_list): Adjust prototype.
24552 * passes.c (pass_manager::execute_early_local_passes): Adjust.
24553 (do_per_function): Change callback signature, push all actual
24554 work to the callbals.
24555 (do_per_function_toporder): Likewise.
24556 (execute_function_dump): Adjust.
24557 (execute_function_todo): Likewise.
24558 (clear_last_verified): Likewise.
24559 (verify_curr_properties): Likewise.
24560 (update_properties_after_pass): Likewise.
24561 (execute_pass_list_1): Split out from ...
24562 (execute_pass_list): ... here. Adjust.
24563 (execute_ipa_pass_list): Likewise.
24564 * cgraphunit.c (cgraph_add_new_function): Adjust.
24565 (analyze_function): Likewise.
24566 (expand_function): Likewise.
24567 * cgraph.c (release_function_body): Free dominance info
24568 here instead of asserting it was magically freed elsewhere.
24570 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
24572 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
24573 * configure: Regenerate.
24574 * config/sparc/sparc.opt (muser-mode): New option.
24575 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
24577 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
24578 * doc/invoke.texi (SPARC options): Document -muser-mode.
24580 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
24582 * cselib.c (find_slot_memmode): Delete.
24583 (cselib_hasher): Change compare_type to a struct.
24584 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
24586 (preserve_constants_and_equivs): Adjust for new compare_type.
24587 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
24588 (wrap_constant): Delete.
24589 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
24591 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
24593 * doc/install.texi (Building with profile feedback): Remove
24596 2014-04-26 Tom de Vries <tom@codesourcery.com>
24598 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
24601 2014-04-25 Cary Coutant <ccoutant@google.com>
24604 * dwarf2out.c (should_move_die_to_comdat): A type definition
24605 can contain a subprogram definition, but don't move it to a
24607 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
24608 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
24610 (clone_tree_hash): Rename to...
24611 (clone_tree_partial): ...this; change callers. Copy
24612 DW_TAG_subprogram DIEs as declarations.
24613 (copy_decls_walk): Don't copy children of a declaration into a
24616 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
24619 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
24622 2014-04-25 Jiong Wang <jiong.wang@arm.com>
24624 * config/arm/predicates.md (call_insn_operand): Add long_call check.
24625 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
24627 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
24630 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24632 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
24634 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24636 PR tree-optimization/60930
24637 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
24638 creating a multiply candidate by folding two constant
24639 multiplicands when the result overflows.
24641 2014-04-25 Jakub Jelinek <jakub@redhat.com>
24643 PR tree-optimization/60960
24644 * tree-vect-generic.c (expand_vector_operation): Only call
24645 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
24647 2014-04-25 Tom de Vries <tom@codesourcery.com>
24649 * expr.c (clobber_reg_mode): New function.
24650 * expr.h (clobber_reg): New function.
24652 2014-04-25 Tom de Vries <tom@codesourcery.com>
24654 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
24657 2014-04-25 Radovan Obradovic <robradovic@mips.com>
24658 Tom de Vries <tom@codesourcery.com>
24660 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
24662 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
24663 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
24664 new argument to find_all_hard_reg_sets call.
24666 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24668 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
24669 Use HOST_WIDE_INT_C for mask literal.
24670 (aarch_rev16_shleft_mask_imm_p): Likewise.
24672 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
24675 * config/sparc/sparc.md (ashlsi3_extend): Delete.
24677 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
24679 PR preprocessor/56540
24680 * config/i386/i386-c.c (ix86_target_macros): Define
24681 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
24683 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24685 * configure.ac (tga_func): Remove.
24686 (LIB_TLS_SPEC): Remove.
24687 * configure: Regenerate.
24688 * config.in: Regenerate.
24689 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
24691 2014-04-25 Richard Biener <rguenther@suse.de>
24694 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
24695 call stmt use/clobber sets during stmt walk instead of
24696 walking the possibly incomplete set of caller edges.
24698 2014-04-25 Richard Biener <rguenther@suse.de>
24701 * passes.c (apply_ipa_transforms): Inline into only caller ...
24702 (execute_one_pass): ... here. Properly bring in function
24703 bodies for nodes we want to apply IPA transforms to.
24705 2014-04-24 Cong Hou <congh@google.com>
24707 PR tree-optimization/60896
24708 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
24709 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
24710 (vect_mark_pattern_stmts): Set the def type of all statements in
24711 PATTERN_DEF_SEQ as vect_internal_def.
24713 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
24715 * doc/extend.texi (PowerPC Built-in Functions): Document new
24716 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
24717 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
24719 * config/rs6000/predicates.md (const_0_to_3_operand): New
24720 predicate to match 0..3 integer constants.
24722 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
24723 to support adding miscellaneous builtin functions.
24724 (BU_DFP_MISC_2): Likewise.
24725 (BU_P7_MISC_1): Likewise.
24726 (BU_P7_MISC_2): Likewise.
24727 (BU_P8V_MISC_3): Likewise.
24728 (BU_MISC_1): Likewise.
24729 (BU_MISC_2): Likewise.
24730 (DIVWE): Add extended divide builtin functions.
24731 (DIVWEO): Likewise.
24732 (DIVWEU): Likewise.
24733 (DIVWEUO): Likewise.
24735 (DIVDEO): Likewise.
24736 (DIVDEU): Likewise.
24737 (DIVDEUO): Likewise.
24738 (DXEX): Add decimal floating-point builtin functions.
24740 (DDEDPD): Likewise.
24741 (DDEDPDQ): Likewise.
24742 (DENBCD): Likewise.
24743 (DENBCDQ): Likewise.
24747 (DSCLIQ): Likewise.
24749 (DSCRIQ): Likewise.
24750 (CDTBCD): Add new BCD builtin functions.
24751 (CBCDTD): Likewise.
24752 (ADDG6S): Likewise.
24753 (BCDADD): Likewise.
24754 (BCDADD_LT): Likewise.
24755 (BCDADD_EQ): Likewise.
24756 (BCDADD_GT): Likewise.
24757 (BCDADD_OV): Likewise.
24758 (BCDSUB): Likewise.
24759 (BCDSUB_LT): Likewise.
24760 (BCDSUB_EQ): Likewise.
24761 (BCDSUB_GT): Likewise.
24762 (BCDSUB_OV): Likewise.
24763 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
24764 (UNPACK_TD): Likewise.
24765 (PACK_TF): Likewise.
24766 (UNPACK_TF): Likewise.
24767 (UNPACK_TF_0): Likewise.
24768 (UNPACK_TF_1): Likewise.
24769 (PACK_V1TI): Likewise.
24770 (UNPACK_V1TI): Likewise.
24772 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24773 support for decimal floating point builtin functions.
24774 (rs6000_expand_ternop_builtin): Add checks for the new builtin
24775 functions that take constant arguments.
24776 (rs6000_invalid_builtin): Add decimal floating point builtin support.
24777 (rs6000_init_builtins): Setup long double, _Decimal64, and
24778 _Decimal128 types for new builtin functions.
24779 (builtin_function_type): Set the unsigned flags appropriately for
24780 the new builtin functions.
24781 (rs6000_opt_masks): Add support for decimal floating point builtin
24784 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
24785 floating point builtin functions.
24786 (RS6000_BTM_COMMON): Likewise.
24787 (RS6000_BTI_long_double): Likewise.
24788 (RS6000_BTI_dfloat64): Likewise.
24789 (RS6000_BTI_dfloat128): Likewise.
24790 (long_double_type_internal_node): Likewise.
24791 (dfloat64_type_internal_node): Likewise.
24792 (dfloat128_type_internal_node): Likewise.
24794 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
24795 2.07 bcd arithmetic instructions.
24796 (UNSPEC_BCDSUB): Likewise.
24797 (UNSPEC_BCD_OVERFLOW): Likewise.
24798 (UNSPEC_BCD_ADD_SUB): Likewise.
24799 (bcd_add_sub): Likewise.
24800 (BCD_TEST): Likewise.
24801 (bcd<bcd_add_sub>): Likewise.
24802 (bcd<bcd_add_sub>_test): Likewise.
24803 (bcd<bcd_add_sub>_test2): Likewise.
24804 (bcd<bcd_add_sub>_<code>): Likewise.
24805 (peephole2 for combined bcd ops): Likewise.
24807 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
24808 decimal floating point builtin functions.
24809 (UNSPEC_DENBCD): Likewise.
24810 (UNSPEC_DXEX): Likewise.
24811 (UNSPEC_DIEX): Likewise.
24812 (UNSPEC_DSCLI): Likewise.
24813 (UNSPEC_DSCRI): Likewise.
24814 (D64_D128): Likewise.
24815 (dfp_suffix): Likewise.
24816 (dfp_ddedpd_<mode>): Likewise.
24817 (dfp_denbcd_<mode>): Likewise.
24818 (dfp_dxex_<mode>): Likewise.
24819 (dfp_diex_<mode>): Likewise.
24820 (dfp_dscli_<mode>): Likewise.
24821 (dfp_dscri_<mode>): Likewise.
24823 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
24825 (UNSPEC_CDTBCD): Likewise.
24826 (UNSPEC_CBCDTD): Likewise.
24827 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
24828 (UNSPEC_DIVEO): Likewise.
24829 (UNSPEC_DIVEU): Likewise.
24830 (UNSPEC_DIVEUO): Likewise.
24831 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
24832 pack/unpack 128-bit types.
24833 (UNSPEC_PACK_128BIT): Likewise.
24834 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
24835 (udiv<mode>3): Use idiv_ldiv mode attribute.
24836 (div<mode>3): Likewise.
24837 (addg6s): Add new BCD builtin functions.
24838 (cdtbcd): Likewise.
24839 (cbcdtd): Likewise.
24840 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
24841 (div_extend): Likewise.
24842 (div<div_extend>_<mode>"): Likewise.
24843 (FP128_64): Add support for new builtin functions to pack/unpack
24845 (unpack<mode>): Likewise.
24846 (unpacktf_0): Likewise.
24847 (unpacktf_1): Likewise.
24848 (unpack<mode>_dm): Likewise.
24849 (unpack<mode>_nodm): Likewise.
24850 (pack<mode>): Likewise.
24851 (unpackv1ti): Likewise.
24852 (packv1ti): Likewise.
24854 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
24856 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
24859 2014-04-24 Jakub Jelinek <jakub@redhat.com>
24861 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
24862 * gimplify.c (omp_is_private): Change last argument's type to int.
24863 Only diagnose lastprivate if the simd argument is 1, only diagnose
24864 linear if the simd argument is 2.
24865 (gimplify_omp_for): Adjust omp_is_private callers. When adding
24866 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
24867 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
24868 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
24869 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
24870 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
24871 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
24872 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
24873 * tree-nested.c (convert_nonlocal_omp_clauses,
24874 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
24876 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
24879 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
24882 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
24884 * flag-types.h (enum ivar_visibility): Add.
24886 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
24888 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
24889 function * argument.
24891 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
24893 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
24895 2014-04-24 Radovan Obradovic <robradovic@mips.com>
24896 Tom de Vries <tom@codesourcery.com>
24898 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
24899 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
24901 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
24902 * emit-rtl.c (try_split): Same.
24904 2014-04-24 Radovan Obradovic <robradovic@mips.com>
24905 Tom de Vries <tom@codesourcery.com>
24907 * common.opt (fuse-caller-save): New option.
24909 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
24911 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
24912 elements for big-endian.
24914 2014-04-24 Richard Biener <rguenther@suse.de>
24916 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
24917 during TER and instead use the sepops interface for expanding
24918 non-GIMPLE_SINGLE_RHS.
24920 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24922 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
24923 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
24925 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24927 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
24928 assembler 64-bit option.
24929 * configure: Regenerate.
24931 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24933 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
24934 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
24935 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
24936 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
24937 (TARGET_CRYPTO): Take TARGET_SIMD into account.
24939 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24941 * config/aarch64/aarch64-builtins.c
24942 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
24943 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
24944 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
24945 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
24947 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
24948 (Vrevsuff): New mode attribute.
24950 2014-04-24 Terry Guo <terry.guo@arm.com>
24952 * config/arm/arm.h (machine_function): Define variable
24953 after_arm_reorg here.
24954 * config/arm/arm.c (after_arm_reorg): Remove the definition.
24955 (arm_split_constant): Update the way to access variable
24957 (arm_reorg): Ditto.
24958 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
24960 2014-04-23 Tom de Vries <tom@codesourcery.com>
24962 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
24964 2014-04-23 David Malcolm <dmalcolm@redhat.com>
24966 * is-a.h: Update comments to reflect the following changes to the
24967 "pointerness" of the API, making the template parameter match the
24968 return type, allowing use of is-a.h with typedefs of pointers.
24969 (is_a_helper::cast): Return a T rather then a pointer to a T, so
24970 that the return type matches the parameter to the is_a_helper.
24972 (dyn_cast): Likewise.
24974 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
24975 pointer from the is-a.h API.
24977 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
24978 (is_a_helper <cgraph_node *>::test): ...this, matching change to
24980 (is_a_helper <varpool_node>::test): Likewise, convert to...
24981 (is_a_helper <varpool_node *>::test): ...this.
24983 (varpool_first_variable): Update for removal of implicit pointer
24984 from the is-a.h API.
24985 (varpool_next_variable): Likewise.
24986 (varpool_first_static_initializer): Likewise.
24987 (varpool_next_static_initializer): Likewise.
24988 (varpool_first_defined_variable): Likewise.
24989 (varpool_next_defined_variable): Likewise.
24990 (cgraph_first_defined_function): Likewise.
24991 (cgraph_next_defined_function): Likewise.
24992 (cgraph_first_function): Likewise.
24993 (cgraph_next_function): Likewise.
24994 (cgraph_first_function_with_gimple_body): Likewise.
24995 (cgraph_next_function_with_gimple_body): Likewise.
24996 (cgraph_alias_target): Likewise.
24997 (varpool_alias_target): Likewise.
24998 (cgraph_function_or_thunk_node): Likewise.
24999 (varpool_variable_node): Likewise.
25000 (symtab_real_symbol_p): Likewise.
25001 * cgraphunit.c (referred_to_p): Likewise.
25002 (analyze_functions): Likewise.
25003 (handle_alias_pairs): Likewise.
25004 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
25005 * gimple-ssa.h (gimple_vuse_op): Likewise.
25006 (gimple_vdef_op): Likewise.
25007 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
25008 * gimple.c (gimple_build_asm_1): Likewise.
25009 (gimple_build_try): Likewise.
25010 (gimple_build_resx): Likewise.
25011 (gimple_build_eh_dispatch): Likewise.
25012 (gimple_build_omp_for): Likewise.
25013 (gimple_omp_for_set_clauses): Likewise.
25015 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
25016 (is_a_helper <gimple_statement_asm *>::test): ...this.
25017 (is_a_helper <gimple_statement_bind>::test): Convert to...
25018 (is_a_helper <gimple_statement_bind *>::test): ...this.
25019 (is_a_helper <gimple_statement_call>::test): Convert to...
25020 (is_a_helper <gimple_statement_call *>::test): ...this.
25021 (is_a_helper <gimple_statement_catch>::test): Convert to...
25022 (is_a_helper <gimple_statement_catch *>::test): ...this.
25023 (is_a_helper <gimple_statement_resx>::test): Convert to...
25024 (is_a_helper <gimple_statement_resx *>::test): ...this.
25025 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
25026 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
25027 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
25028 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
25029 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
25030 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
25031 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
25032 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
25033 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
25034 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
25035 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
25036 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
25037 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
25038 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
25039 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
25040 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
25041 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
25042 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
25043 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
25044 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
25045 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
25046 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
25047 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
25048 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
25049 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
25050 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
25051 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
25052 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
25053 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
25054 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
25055 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
25056 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
25057 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
25058 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
25059 (is_a_helper <gimple_statement_phi>::test): Convert to...
25060 (is_a_helper <gimple_statement_phi *>::test): ...this.
25061 (is_a_helper <gimple_statement_transaction>::test): Convert to...
25062 (is_a_helper <gimple_statement_transaction *>::test): ...this.
25063 (is_a_helper <gimple_statement_try>::test): Convert to...
25064 (is_a_helper <gimple_statement_try *>::test): ...this.
25065 (is_a_helper <gimple_statement_wce>::test): Convert to...
25066 (is_a_helper <gimple_statement_wce *>::test): ...this.
25067 (is_a_helper <const gimple_statement_asm>::test): Convert to...
25068 (is_a_helper <const gimple_statement_asm *>::test): ...this.
25069 (is_a_helper <const gimple_statement_bind>::test): Convert to...
25070 (is_a_helper <const gimple_statement_bind *>::test): ...this.
25071 (is_a_helper <const gimple_statement_call>::test): Convert to...
25072 (is_a_helper <const gimple_statement_call *>::test): ...this.
25073 (is_a_helper <const gimple_statement_catch>::test): Convert to...
25074 (is_a_helper <const gimple_statement_catch *>::test): ...this.
25075 (is_a_helper <const gimple_statement_resx>::test): Convert to...
25076 (is_a_helper <const gimple_statement_resx *>::test): ...this.
25077 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
25078 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
25079 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
25080 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
25081 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
25083 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
25085 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
25087 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
25089 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
25090 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
25091 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
25093 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
25094 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
25096 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
25097 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
25098 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
25099 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
25100 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
25101 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
25103 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
25104 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
25105 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
25106 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
25108 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
25109 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
25110 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
25111 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
25112 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
25113 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
25114 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
25115 (is_a_helper <const gimple_statement_phi>::test): Convert to...
25116 (is_a_helper <const gimple_statement_phi *>::test): ...this.
25117 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
25118 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
25119 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
25120 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
25121 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
25122 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
25123 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
25125 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
25127 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
25128 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
25130 (gimple_use_ops): Update for removal of implicit pointer from the
25132 (gimple_set_use_ops): Likewise.
25133 (gimple_vuse): Likewise.
25134 (gimple_vdef): Likewise.
25135 (gimple_vuse_ptr): Likewise.
25136 (gimple_vdef_ptr): Likewise.
25137 (gimple_set_vuse): Likewise.
25138 (gimple_set_vdef): Likewise.
25139 (gimple_omp_return_set_lhs): Likewise.
25140 (gimple_omp_return_lhs): Likewise.
25141 (gimple_omp_return_lhs_ptr): Likewise.
25142 (gimple_call_fntype): Likewise.
25143 (gimple_call_set_fntype): Likewise.
25144 (gimple_call_set_internal_fn): Likewise.
25145 (gimple_call_use_set): Likewise.
25146 (gimple_call_clobber_set): Likewise.
25147 (gimple_bind_vars): Likewise.
25148 (gimple_bind_set_vars): Likewise.
25149 (gimple_bind_body_ptr): Likewise.
25150 (gimple_bind_set_body): Likewise.
25151 (gimple_bind_add_stmt): Likewise.
25152 (gimple_bind_block): Likewise.
25153 (gimple_bind_set_block): Likewise.
25154 (gimple_asm_ninputs): Likewise.
25155 (gimple_asm_noutputs): Likewise.
25156 (gimple_asm_nclobbers): Likewise.
25157 (gimple_asm_nlabels): Likewise.
25158 (gimple_asm_input_op): Likewise.
25159 (gimple_asm_input_op_ptr): Likewise.
25160 (gimple_asm_output_op): Likewise.
25161 (gimple_asm_output_op_ptr): Likewise.
25162 (gimple_asm_set_output_op): Likewise.
25163 (gimple_asm_clobber_op): Likewise.
25164 (gimple_asm_set_clobber_op): Likewise.
25165 (gimple_asm_label_op): Likewise.
25166 (gimple_asm_set_label_op): Likewise.
25167 (gimple_asm_string): Likewise.
25168 (gimple_catch_types): Likewise.
25169 (gimple_catch_types_ptr): Likewise.
25170 (gimple_catch_handler_ptr): Likewise.
25171 (gimple_catch_set_types): Likewise.
25172 (gimple_catch_set_handler): Likewise.
25173 (gimple_eh_filter_types): Likewise.
25174 (gimple_eh_filter_types_ptr): Likewise.
25175 (gimple_eh_filter_failure_ptr): Likewise.
25176 (gimple_eh_filter_set_types): Likewise.
25177 (gimple_eh_filter_set_failure): Likewise.
25178 (gimple_eh_must_not_throw_fndecl): Likewise.
25179 (gimple_eh_must_not_throw_set_fndecl): Likewise.
25180 (gimple_eh_else_n_body_ptr): Likewise.
25181 (gimple_eh_else_e_body_ptr): Likewise.
25182 (gimple_eh_else_set_n_body): Likewise.
25183 (gimple_eh_else_set_e_body): Likewise.
25184 (gimple_try_eval_ptr): Likewise.
25185 (gimple_try_cleanup_ptr): Likewise.
25186 (gimple_try_set_eval): Likewise.
25187 (gimple_try_set_cleanup): Likewise.
25188 (gimple_wce_cleanup_ptr): Likewise.
25189 (gimple_wce_set_cleanup): Likewise.
25190 (gimple_phi_capacity): Likewise.
25191 (gimple_phi_num_args): Likewise.
25192 (gimple_phi_result): Likewise.
25193 (gimple_phi_result_ptr): Likewise.
25194 (gimple_phi_set_result): Likewise.
25195 (gimple_phi_arg): Likewise.
25196 (gimple_phi_set_arg): Likewise.
25197 (gimple_resx_region): Likewise.
25198 (gimple_resx_set_region): Likewise.
25199 (gimple_eh_dispatch_region): Likewise.
25200 (gimple_eh_dispatch_set_region): Likewise.
25201 (gimple_omp_critical_name): Likewise.
25202 (gimple_omp_critical_name_ptr): Likewise.
25203 (gimple_omp_critical_set_name): Likewise.
25204 (gimple_omp_for_clauses): Likewise.
25205 (gimple_omp_for_clauses_ptr): Likewise.
25206 (gimple_omp_for_set_clauses): Likewise.
25207 (gimple_omp_for_collapse): Likewise.
25208 (gimple_omp_for_index): Likewise.
25209 (gimple_omp_for_index_ptr): Likewise.
25210 (gimple_omp_for_set_index): Likewise.
25211 (gimple_omp_for_initial): Likewise.
25212 (gimple_omp_for_initial_ptr): Likewise.
25213 (gimple_omp_for_set_initial): Likewise.
25214 (gimple_omp_for_final): Likewise.
25215 (gimple_omp_for_final_ptr): Likewise.
25216 (gimple_omp_for_set_final): Likewise.
25217 (gimple_omp_for_incr): Likewise.
25218 (gimple_omp_for_incr_ptr): Likewise.
25219 (gimple_omp_for_set_incr): Likewise.
25220 (gimple_omp_for_pre_body_ptr): Likewise.
25221 (gimple_omp_for_set_pre_body): Likewise.
25222 (gimple_omp_parallel_clauses): Likewise.
25223 (gimple_omp_parallel_clauses_ptr): Likewise.
25224 (gimple_omp_parallel_set_clauses): Likewise.
25225 (gimple_omp_parallel_child_fn): Likewise.
25226 (gimple_omp_parallel_child_fn_ptr): Likewise.
25227 (gimple_omp_parallel_set_child_fn): Likewise.
25228 (gimple_omp_parallel_data_arg): Likewise.
25229 (gimple_omp_parallel_data_arg_ptr): Likewise.
25230 (gimple_omp_parallel_set_data_arg): Likewise.
25231 (gimple_omp_task_clauses): Likewise.
25232 (gimple_omp_task_clauses_ptr): Likewise.
25233 (gimple_omp_task_set_clauses): Likewise.
25234 (gimple_omp_task_child_fn): Likewise.
25235 (gimple_omp_task_child_fn_ptr): Likewise.
25236 (gimple_omp_task_set_child_fn): Likewise.
25237 (gimple_omp_task_data_arg): Likewise.
25238 (gimple_omp_task_data_arg_ptr): Likewise.
25239 (gimple_omp_task_set_data_arg): Likewise.
25240 (gimple_omp_taskreg_clauses): Likewise.
25241 (gimple_omp_taskreg_clauses_ptr): Likewise.
25242 (gimple_omp_taskreg_set_clauses): Likewise.
25243 (gimple_omp_taskreg_child_fn): Likewise.
25244 (gimple_omp_taskreg_child_fn_ptr): Likewise.
25245 (gimple_omp_taskreg_set_child_fn): Likewise.
25246 (gimple_omp_taskreg_data_arg): Likewise.
25247 (gimple_omp_taskreg_data_arg_ptr): Likewise.
25248 (gimple_omp_taskreg_set_data_arg): Likewise.
25249 (gimple_omp_task_copy_fn): Likewise.
25250 (gimple_omp_task_copy_fn_ptr): Likewise.
25251 (gimple_omp_task_set_copy_fn): Likewise.
25252 (gimple_omp_task_arg_size): Likewise.
25253 (gimple_omp_task_arg_size_ptr): Likewise.
25254 (gimple_omp_task_set_arg_size): Likewise.
25255 (gimple_omp_task_arg_align): Likewise.
25256 (gimple_omp_task_arg_align_ptr): Likewise.
25257 (gimple_omp_task_set_arg_align): Likewise.
25258 (gimple_omp_single_clauses): Likewise.
25259 (gimple_omp_single_clauses_ptr): Likewise.
25260 (gimple_omp_single_set_clauses): Likewise.
25261 (gimple_omp_target_clauses): Likewise.
25262 (gimple_omp_target_clauses_ptr): Likewise.
25263 (gimple_omp_target_set_clauses): Likewise.
25264 (gimple_omp_target_child_fn): Likewise.
25265 (gimple_omp_target_child_fn_ptr): Likewise.
25266 (gimple_omp_target_set_child_fn): Likewise.
25267 (gimple_omp_target_data_arg): Likewise.
25268 (gimple_omp_target_data_arg_ptr): Likewise.
25269 (gimple_omp_target_set_data_arg): Likewise.
25270 (gimple_omp_teams_clauses): Likewise.
25271 (gimple_omp_teams_clauses_ptr): Likewise.
25272 (gimple_omp_teams_set_clauses): Likewise.
25273 (gimple_omp_sections_clauses): Likewise.
25274 (gimple_omp_sections_clauses_ptr): Likewise.
25275 (gimple_omp_sections_set_clauses): Likewise.
25276 (gimple_omp_sections_control): Likewise.
25277 (gimple_omp_sections_control_ptr): Likewise.
25278 (gimple_omp_sections_set_control): Likewise.
25279 (gimple_omp_for_set_cond): Likewise.
25280 (gimple_omp_for_cond): Likewise.
25281 (gimple_omp_atomic_store_set_val): Likewise.
25282 (gimple_omp_atomic_store_val): Likewise.
25283 (gimple_omp_atomic_store_val_ptr): Likewise.
25284 (gimple_omp_atomic_load_set_lhs): Likewise.
25285 (gimple_omp_atomic_load_lhs): Likewise.
25286 (gimple_omp_atomic_load_lhs_ptr): Likewise.
25287 (gimple_omp_atomic_load_set_rhs): Likewise.
25288 (gimple_omp_atomic_load_rhs): Likewise.
25289 (gimple_omp_atomic_load_rhs_ptr): Likewise.
25290 (gimple_omp_continue_control_def): Likewise.
25291 (gimple_omp_continue_control_def_ptr): Likewise.
25292 (gimple_omp_continue_set_control_def): Likewise.
25293 (gimple_omp_continue_control_use): Likewise.
25294 (gimple_omp_continue_control_use_ptr): Likewise.
25295 (gimple_omp_continue_set_control_use): Likewise.
25296 (gimple_transaction_body_ptr): Likewise.
25297 (gimple_transaction_label): Likewise.
25298 (gimple_transaction_label_ptr): Likewise.
25299 (gimple_transaction_set_body): Likewise.
25300 (gimple_transaction_set_label): Likewise.
25302 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
25303 * ipa-inline-analysis.c (inline_write_summary): Likewise.
25304 * ipa-ref.c (ipa_record_reference): Likewise.
25305 * ipa-reference.c (analyze_function): Likewise.
25306 (ipa_reference_write_optimization_summary): Likewise.
25307 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
25308 (address_taken_from_non_vtable_p): Likewise.
25309 (comdat_can_be_unshared_p_1): Likewise.
25310 * lto-cgraph.c (lto_output_ref): Likewise.
25311 (add_references): Likewise.
25312 (compute_ltrans_boundary): Likewise.
25313 (output_symtab): Likewise.
25314 (input_ref): Likewise.
25315 (input_cgraph_1): Likewise.
25316 (output_cgraph_opt_summary): Likewise.
25317 * lto-streamer-out.c (lto_output): Likewise.
25318 (output_symbol_p): Likewise.
25319 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
25320 (lsei_start_function_in_partition): Likewise.
25321 (lsei_next_variable_in_partition): Likewise.
25322 (lsei_start_variable_in_partition): Likewise.
25323 * symtab.c (insert_to_assembler_name_hash): Likewise.
25324 (unlink_from_assembler_name_hash): Likewise.
25325 (symtab_unregister_node): Likewise.
25326 (symtab_remove_node): Likewise.
25327 (dump_symtab_node): Likewise.
25328 (verify_symtab_base): Likewise.
25329 (verify_symtab_node): Likewise.
25330 (symtab_make_decl_local): Likewise.
25331 (symtab_alias_ultimate_target): Likewise.
25332 (symtab_resolve_alias): Likewise.
25333 (symtab_get_symbol_partitioning_class): Likewise.
25334 * tree-phinodes.c (allocate_phi_node): Likewise.
25335 (reserve_phi_args_for_new_edge): Likewise.
25336 (remove_phi_args): Likewise.
25337 * varpool.c (varpool_node_for_asm): Likewise.
25338 (varpool_remove_unreferenced_decls): Likewise.
25340 2014-04-23 Jeff Law <law@redhat.com>
25342 PR tree-optimization/60902
25343 * tree-ssa-threadedge.c
25344 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
25345 invalidate outputs from statements that do not produce useful
25346 outputs for threading.
25348 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
25350 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
25351 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
25352 machine descriptions for Stack Smashing Protector.
25354 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
25356 * aarch64.md (<optab>_rol<mode>3): New pattern.
25357 (<optab>_rolsi3_uxtw): Likewise.
25358 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
25360 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
25362 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
25363 (arm_cortex_a12_tune): Likewise.
25365 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25367 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
25369 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25371 * config/arm/arm.md (arm_rev16si2): New pattern.
25372 (arm_rev16si2_alt): Likewise.
25373 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
25375 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25377 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
25378 (rev16<mode>2_alt): Likewise.
25379 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
25380 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
25381 (aarch_rev16_shleft_mask_imm_p): Likewise.
25382 (aarch_rev16_p_1): Likewise.
25383 (aarch_rev16_p): Likewise.
25384 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
25385 (aarch_rev16_shright_mask_imm_p): Likewise.
25386 (aarch_rev16_shleft_mask_imm_p): Likewise.
25388 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25390 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
25391 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
25393 (cortex_a53_extra_costs): Likewise.
25394 (cortex_a57_extra_costs): Likewise.
25395 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
25396 (cortexa7_extra_costs): Likewise.
25397 (cortexa8_extra_costs): Likewise.
25398 (cortexa12_extra_costs): Likewise.
25399 (cortexa15_extra_costs): Likewise.
25400 (v7m_extra_costs): Likewise.
25401 (arm_new_rtx_costs): Handle BSWAP.
25403 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25405 * config/arm/arm.c (cortexa8_extra_costs): New table.
25406 (arm_cortex_a8_tune): New tuning struct.
25407 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
25409 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25411 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
25413 2014-04-23 Richard Biener <rguenther@suse.de>
25415 * Makefile.in (OBJS): Remove loop-unswitch.o.
25416 * tree-pass.h (make_pass_rtl_unswitch): Remove.
25417 * passes.def (pass_rtl_unswitch): Likewise.
25418 * loop-init.c (gate_rtl_unswitch): Likewise.
25419 (rtl_unswitch): Likewise.
25420 (pass_data_rtl_unswitch): Likewise.
25421 (pass_rtl_unswitch): Likewise.
25422 (make_pass_rtl_unswitch): Likewise.
25423 * rtl.h (reversed_condition): Likewise.
25424 (compare_and_jump_seq): Likewise.
25425 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
25427 * loop-unroll.c (compare_and_jump_seq): Likewise.
25429 2014-04-23 Richard Biener <rguenther@suse.de>
25431 PR tree-optimization/60903
25432 * tree-ssa-loop-im.c (analyze_memory_references): Remove
25433 commented code block.
25434 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
25435 loop flags to newly created BBs and edges.
25437 2014-04-23 Nick Clifton <nickc@redhat.com>
25439 * config/msp430/msp430.c (msp430_handle_option): Move function
25441 (msp430_option_override): Simplify mcu and mcpu option handling.
25442 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
25443 support for -mhwmult command line option.
25444 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
25445 -mhwmult command line option.
25446 (msp430_hwmult_enabled): Delete.
25447 (msp43o_output_labelref): Add support for -mhwmult command line option.
25448 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
25449 (umulsidi3): Likewise.
25450 * config/msp430/msp430.opt (mmcu): Add Report attribute.
25451 (mcpu, mlarge, msmall): Likewise.
25452 (mhwmult): New option.
25453 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
25455 (msp430_is_f5_mcu): Remove prototype.
25456 (msp430_use_f5_series_hwmult): Add prototype.
25457 * config/msp430/msp430-opts.h: New file.
25458 * common/config/msp430: New directory.
25459 * common/config/msp430/msp430-common.c: New file.
25460 * config.gcc (msp430): Remove target_has_targetm_common.
25461 * doc/invoke.texi: Document -mhwmult command line option.
25463 2014-04-23 Nick Clifton <nickc@redhat.com>
25465 * config/i386/cygwin.h (ENDFILE_SPEC): Include
25466 default-manifest.o if it can be found in the search path.
25467 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
25469 2014-04-23 Terry Guo <terry.guo@arm.com>
25471 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
25473 2014-04-23 Richard Biener <rguenther@suse.de>
25475 PR middle-end/60895
25476 * tree-inline.c (declare_return_variable): Use mark_addressable.
25478 2014-04-23 Richard Biener <rguenther@suse.de>
25480 PR middle-end/60891
25481 * loop-init.c (loop_optimizer_init): Make sure to apply
25482 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
25484 2014-04-22 Jakub Jelinek <jakub@redhat.com>
25487 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
25489 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
25490 if flag_sanitize_undefined_trap_on_error.
25491 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
25492 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
25493 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
25494 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
25495 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
25496 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
25497 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
25498 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
25499 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
25500 * ubsan.c (ubsan_instrument_unreachable): Return
25501 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
25502 (ubsan_expand_null_ifn): Emit __builtin_trap ()
25503 if flag_sanitize_undefined_trap_on_error and
25504 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
25505 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
25506 instrument_bool_enum_load): Emit __builtin_trap () if
25507 flag_sanitize_undefined_trap_on_error and
25508 __builtin_handle_*_abort () if !flag_sanitize_recover.
25509 * doc/invoke.texi (-fsanitize-recover,
25510 -fsanitize-undefined-trap-on-error): Document.
25512 2014-04-22 Christian Bruel <christian.bruel@st.com>
25514 * config/sh/sh.md (mov<mode>): Replace movQIHI.
25515 Force immediates to SImode.
25517 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
25519 * config/nios2/nios2.md (UNSPEC_ROUND): New.
25520 (lroundsfsi2): New.
25521 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
25522 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
25523 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
25524 (nios2_fpu_insn): Add entry for round.
25525 (N2FPU_NO_ERRNO_P): Define.
25526 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
25528 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
25530 2014-04-22 Richard Henderson <rth@redhat.com>
25532 * config/aarch64/aarch64 (addti3, subti3): New expanders.
25533 (add<GPI>3_compare0): Remove leading * from name.
25534 (add<GPI>3_carryin): Likewise.
25535 (sub<GPI>3_compare0): Likewise.
25536 (sub<GPI>3_carryin): Likewise.
25537 (<su_optab>mulditi3): New expander.
25538 (multi3): New expander.
25539 (madd<GPI>): Remove leading * from name.
25541 2014-04-22 Martin Jambor <mjambor@suse.cz>
25543 * cgraphclones.c (cgraph_function_versioning): Copy
25544 ipa_transforms_to_apply instead of asserting it is empty.
25546 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
25549 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
25550 on count_exp to get mode.
25552 2014-04-22 Andrew Pinski <apinski@cavium.com>
25554 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
25555 Handle TLS for ILP32.
25556 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
25557 (tlsie_small_<mode>): this and handle PTR.
25558 (tlsie_small_sidi): New pattern.
25559 (tlsle_small): Change to an expand to handle ILP32.
25560 (tlsle_small_<mode>): New pattern.
25561 (tlsdesc_small): Rename to ...
25562 (tlsdesc_small_<mode>): this and handle PTR.
25564 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25566 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
25568 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
25570 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
25571 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
25572 (aarch64_types_signed_poly_qualifiers): Likewise.
25573 (aarch64_types_unsigned_signed_qualifiers): Likewise.
25574 (aarch64_types_poly_signed_qualifiers): Likewise.
25575 (TYPES_REINTERP_SS): Type macro added.
25576 (TYPES_REINTERP_SU): Likewise.
25577 (TYPES_REINTERP_SP): Likewise.
25578 (TYPES_REINTERP_US): Likewise.
25579 (TYPES_REINTERP_PS): Likewise.
25580 (aarch64_fold_builtin): New expression folding added.
25581 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
25582 Declarations removed.
25583 (REINTERP_SS): Declarations added.
25584 (REINTERP_US): Likewise.
25585 (REINTERP_PS): Likewise.
25586 (REINTERP_SU): Likewise.
25587 (REINTERP_SP): Likewise.
25588 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
25589 (vreinterpretq_p8_f64): Likewise.
25590 (vreinterpret_p16_f64): Likewise.
25591 (vreinterpretq_p16_f64): Likewise.
25592 (vreinterpret_f32_f64): Likewise.
25593 (vreinterpretq_f32_f64): Likewise.
25594 (vreinterpret_f64_f32): Likewise.
25595 (vreinterpret_f64_p8): Likewise.
25596 (vreinterpret_f64_p16): Likewise.
25597 (vreinterpret_f64_s8): Likewise.
25598 (vreinterpret_f64_s16): Likewise.
25599 (vreinterpret_f64_s32): Likewise.
25600 (vreinterpret_f64_s64): Likewise.
25601 (vreinterpret_f64_u8): Likewise.
25602 (vreinterpret_f64_u16): Likewise.
25603 (vreinterpret_f64_u32): Likewise.
25604 (vreinterpret_f64_u64): Likewise.
25605 (vreinterpretq_f64_f32): Likewise.
25606 (vreinterpretq_f64_p8): Likewise.
25607 (vreinterpretq_f64_p16): Likewise.
25608 (vreinterpretq_f64_s8): Likewise.
25609 (vreinterpretq_f64_s16): Likewise.
25610 (vreinterpretq_f64_s32): Likewise.
25611 (vreinterpretq_f64_s64): Likewise.
25612 (vreinterpretq_f64_u8): Likewise.
25613 (vreinterpretq_f64_u16): Likewise.
25614 (vreinterpretq_f64_u32): Likewise.
25615 (vreinterpretq_f64_u64): Likewise.
25616 (vreinterpret_s64_f64): Likewise.
25617 (vreinterpretq_s64_f64): Likewise.
25618 (vreinterpret_u64_f64): Likewise.
25619 (vreinterpretq_u64_f64): Likewise.
25620 (vreinterpret_s8_f64): Likewise.
25621 (vreinterpretq_s8_f64): Likewise.
25622 (vreinterpret_s16_f64): Likewise.
25623 (vreinterpretq_s16_f64): Likewise.
25624 (vreinterpret_s32_f64): Likewise.
25625 (vreinterpretq_s32_f64): Likewise.
25626 (vreinterpret_u8_f64): Likewise.
25627 (vreinterpretq_u8_f64): Likewise.
25628 (vreinterpret_u16_f64): Likewise.
25629 (vreinterpretq_u16_f64): Likewise.
25630 (vreinterpret_u32_f64): Likewise.
25631 (vreinterpretq_u32_f64): Likewise.
25633 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
25635 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
25636 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
25637 (vreinterpret_p8_s8): Likewise.
25638 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
25639 (vreinterpret_p8_s16): Likewise.
25640 (vreinterpret_p8_s32): Likewise.
25641 (vreinterpret_p8_s64): Likewise.
25642 (vreinterpret_p8_f32): Likewise.
25643 (vreinterpret_p8_u8): Likewise.
25644 (vreinterpret_p8_u16): Likewise.
25645 (vreinterpret_p8_u32): Likewise.
25646 (vreinterpret_p8_u64): Likewise.
25647 (vreinterpret_p8_p16): Likewise.
25648 (vreinterpretq_p8_s8): Likewise.
25649 (vreinterpretq_p8_s16): Likewise.
25650 (vreinterpretq_p8_s32): Likewise.
25651 (vreinterpretq_p8_s64): Likewise.
25652 (vreinterpretq_p8_f32): Likewise.
25653 (vreinterpretq_p8_u8): Likewise.
25654 (vreinterpretq_p8_u16): Likewise.
25655 (vreinterpretq_p8_u32): Likewise.
25656 (vreinterpretq_p8_u64): Likewise.
25657 (vreinterpretq_p8_p16): Likewise.
25658 (vreinterpret_p16_s8): Likewise.
25659 (vreinterpret_p16_s16): Likewise.
25660 (vreinterpret_p16_s32): Likewise.
25661 (vreinterpret_p16_s64): Likewise.
25662 (vreinterpret_p16_f32): Likewise.
25663 (vreinterpret_p16_u8): Likewise.
25664 (vreinterpret_p16_u16): Likewise.
25665 (vreinterpret_p16_u32): Likewise.
25666 (vreinterpret_p16_u64): Likewise.
25667 (vreinterpret_p16_p8): Likewise.
25668 (vreinterpretq_p16_s8): Likewise.
25669 (vreinterpretq_p16_s16): Likewise.
25670 (vreinterpretq_p16_s32): Likewise.
25671 (vreinterpretq_p16_s64): Likewise.
25672 (vreinterpretq_p16_f32): Likewise.
25673 (vreinterpretq_p16_u8): Likewise.
25674 (vreinterpretq_p16_u16): Likewise.
25675 (vreinterpretq_p16_u32): Likewise.
25676 (vreinterpretq_p16_u64): Likewise.
25677 (vreinterpretq_p16_p8): Likewise.
25678 (vreinterpret_f32_s8): Likewise.
25679 (vreinterpret_f32_s16): Likewise.
25680 (vreinterpret_f32_s32): Likewise.
25681 (vreinterpret_f32_s64): Likewise.
25682 (vreinterpret_f32_u8): Likewise.
25683 (vreinterpret_f32_u16): Likewise.
25684 (vreinterpret_f32_u32): Likewise.
25685 (vreinterpret_f32_u64): Likewise.
25686 (vreinterpret_f32_p8): Likewise.
25687 (vreinterpret_f32_p16): Likewise.
25688 (vreinterpretq_f32_s8): Likewise.
25689 (vreinterpretq_f32_s16): Likewise.
25690 (vreinterpretq_f32_s32): Likewise.
25691 (vreinterpretq_f32_s64): Likewise.
25692 (vreinterpretq_f32_u8): Likewise.
25693 (vreinterpretq_f32_u16): Likewise.
25694 (vreinterpretq_f32_u32): Likewise.
25695 (vreinterpretq_f32_u64): Likewise.
25696 (vreinterpretq_f32_p8): Likewise.
25697 (vreinterpretq_f32_p16): Likewise.
25698 (vreinterpret_s64_s8): Likewise.
25699 (vreinterpret_s64_s16): Likewise.
25700 (vreinterpret_s64_s32): Likewise.
25701 (vreinterpret_s64_f32): Likewise.
25702 (vreinterpret_s64_u8): Likewise.
25703 (vreinterpret_s64_u16): Likewise.
25704 (vreinterpret_s64_u32): Likewise.
25705 (vreinterpret_s64_u64): Likewise.
25706 (vreinterpret_s64_p8): Likewise.
25707 (vreinterpret_s64_p16): Likewise.
25708 (vreinterpretq_s64_s8): Likewise.
25709 (vreinterpretq_s64_s16): Likewise.
25710 (vreinterpretq_s64_s32): Likewise.
25711 (vreinterpretq_s64_f32): Likewise.
25712 (vreinterpretq_s64_u8): Likewise.
25713 (vreinterpretq_s64_u16): Likewise.
25714 (vreinterpretq_s64_u32): Likewise.
25715 (vreinterpretq_s64_u64): Likewise.
25716 (vreinterpretq_s64_p8): Likewise.
25717 (vreinterpretq_s64_p16): Likewise.
25718 (vreinterpret_u64_s8): Likewise.
25719 (vreinterpret_u64_s16): Likewise.
25720 (vreinterpret_u64_s32): Likewise.
25721 (vreinterpret_u64_s64): Likewise.
25722 (vreinterpret_u64_f32): Likewise.
25723 (vreinterpret_u64_u8): Likewise.
25724 (vreinterpret_u64_u16): Likewise.
25725 (vreinterpret_u64_u32): Likewise.
25726 (vreinterpret_u64_p8): Likewise.
25727 (vreinterpret_u64_p16): Likewise.
25728 (vreinterpretq_u64_s8): Likewise.
25729 (vreinterpretq_u64_s16): Likewise.
25730 (vreinterpretq_u64_s32): Likewise.
25731 (vreinterpretq_u64_s64): Likewise.
25732 (vreinterpretq_u64_f32): Likewise.
25733 (vreinterpretq_u64_u8): Likewise.
25734 (vreinterpretq_u64_u16): Likewise.
25735 (vreinterpretq_u64_u32): Likewise.
25736 (vreinterpretq_u64_p8): Likewise.
25737 (vreinterpretq_u64_p16): Likewise.
25738 (vreinterpret_s8_s16): Likewise.
25739 (vreinterpret_s8_s32): Likewise.
25740 (vreinterpret_s8_s64): Likewise.
25741 (vreinterpret_s8_f32): Likewise.
25742 (vreinterpret_s8_u8): Likewise.
25743 (vreinterpret_s8_u16): Likewise.
25744 (vreinterpret_s8_u32): Likewise.
25745 (vreinterpret_s8_u64): Likewise.
25746 (vreinterpret_s8_p8): Likewise.
25747 (vreinterpret_s8_p16): Likewise.
25748 (vreinterpretq_s8_s16): Likewise.
25749 (vreinterpretq_s8_s32): Likewise.
25750 (vreinterpretq_s8_s64): Likewise.
25751 (vreinterpretq_s8_f32): Likewise.
25752 (vreinterpretq_s8_u8): Likewise.
25753 (vreinterpretq_s8_u16): Likewise.
25754 (vreinterpretq_s8_u32): Likewise.
25755 (vreinterpretq_s8_u64): Likewise.
25756 (vreinterpretq_s8_p8): Likewise.
25757 (vreinterpretq_s8_p16): Likewise.
25758 (vreinterpret_s16_s8): Likewise.
25759 (vreinterpret_s16_s32): Likewise.
25760 (vreinterpret_s16_s64): Likewise.
25761 (vreinterpret_s16_f32): Likewise.
25762 (vreinterpret_s16_u8): Likewise.
25763 (vreinterpret_s16_u16): Likewise.
25764 (vreinterpret_s16_u32): Likewise.
25765 (vreinterpret_s16_u64): Likewise.
25766 (vreinterpret_s16_p8): Likewise.
25767 (vreinterpret_s16_p16): Likewise.
25768 (vreinterpretq_s16_s8): Likewise.
25769 (vreinterpretq_s16_s32): Likewise.
25770 (vreinterpretq_s16_s64): Likewise.
25771 (vreinterpretq_s16_f32): Likewise.
25772 (vreinterpretq_s16_u8): Likewise.
25773 (vreinterpretq_s16_u16): Likewise.
25774 (vreinterpretq_s16_u32): Likewise.
25775 (vreinterpretq_s16_u64): Likewise.
25776 (vreinterpretq_s16_p8): Likewise.
25777 (vreinterpretq_s16_p16): Likewise.
25778 (vreinterpret_s32_s8): Likewise.
25779 (vreinterpret_s32_s16): Likewise.
25780 (vreinterpret_s32_s64): Likewise.
25781 (vreinterpret_s32_f32): Likewise.
25782 (vreinterpret_s32_u8): Likewise.
25783 (vreinterpret_s32_u16): Likewise.
25784 (vreinterpret_s32_u32): Likewise.
25785 (vreinterpret_s32_u64): Likewise.
25786 (vreinterpret_s32_p8): Likewise.
25787 (vreinterpret_s32_p16): Likewise.
25788 (vreinterpretq_s32_s8): Likewise.
25789 (vreinterpretq_s32_s16): Likewise.
25790 (vreinterpretq_s32_s64): Likewise.
25791 (vreinterpretq_s32_f32): Likewise.
25792 (vreinterpretq_s32_u8): Likewise.
25793 (vreinterpretq_s32_u16): Likewise.
25794 (vreinterpretq_s32_u32): Likewise.
25795 (vreinterpretq_s32_u64): Likewise.
25796 (vreinterpretq_s32_p8): Likewise.
25797 (vreinterpretq_s32_p16): Likewise.
25798 (vreinterpret_u8_s8): Likewise.
25799 (vreinterpret_u8_s16): Likewise.
25800 (vreinterpret_u8_s32): Likewise.
25801 (vreinterpret_u8_s64): Likewise.
25802 (vreinterpret_u8_f32): Likewise.
25803 (vreinterpret_u8_u16): Likewise.
25804 (vreinterpret_u8_u32): Likewise.
25805 (vreinterpret_u8_u64): Likewise.
25806 (vreinterpret_u8_p8): Likewise.
25807 (vreinterpret_u8_p16): Likewise.
25808 (vreinterpretq_u8_s8): Likewise.
25809 (vreinterpretq_u8_s16): Likewise.
25810 (vreinterpretq_u8_s32): Likewise.
25811 (vreinterpretq_u8_s64): Likewise.
25812 (vreinterpretq_u8_f32): Likewise.
25813 (vreinterpretq_u8_u16): Likewise.
25814 (vreinterpretq_u8_u32): Likewise.
25815 (vreinterpretq_u8_u64): Likewise.
25816 (vreinterpretq_u8_p8): Likewise.
25817 (vreinterpretq_u8_p16): Likewise.
25818 (vreinterpret_u16_s8): Likewise.
25819 (vreinterpret_u16_s16): Likewise.
25820 (vreinterpret_u16_s32): Likewise.
25821 (vreinterpret_u16_s64): Likewise.
25822 (vreinterpret_u16_f32): Likewise.
25823 (vreinterpret_u16_u8): Likewise.
25824 (vreinterpret_u16_u32): Likewise.
25825 (vreinterpret_u16_u64): Likewise.
25826 (vreinterpret_u16_p8): Likewise.
25827 (vreinterpret_u16_p16): Likewise.
25828 (vreinterpretq_u16_s8): Likewise.
25829 (vreinterpretq_u16_s16): Likewise.
25830 (vreinterpretq_u16_s32): Likewise.
25831 (vreinterpretq_u16_s64): Likewise.
25832 (vreinterpretq_u16_f32): Likewise.
25833 (vreinterpretq_u16_u8): Likewise.
25834 (vreinterpretq_u16_u32): Likewise.
25835 (vreinterpretq_u16_u64): Likewise.
25836 (vreinterpretq_u16_p8): Likewise.
25837 (vreinterpretq_u16_p16): Likewise.
25838 (vreinterpret_u32_s8): Likewise.
25839 (vreinterpret_u32_s16): Likewise.
25840 (vreinterpret_u32_s32): Likewise.
25841 (vreinterpret_u32_s64): Likewise.
25842 (vreinterpret_u32_f32): Likewise.
25843 (vreinterpret_u32_u8): Likewise.
25844 (vreinterpret_u32_u16): Likewise.
25845 (vreinterpret_u32_u64): Likewise.
25846 (vreinterpret_u32_p8): Likewise.
25847 (vreinterpret_u32_p16): Likewise.
25848 (vreinterpretq_u32_s8): Likewise.
25849 (vreinterpretq_u32_s16): Likewise.
25850 (vreinterpretq_u32_s32): Likewise.
25851 (vreinterpretq_u32_s64): Likewise.
25852 (vreinterpretq_u32_f32): Likewise.
25853 (vreinterpretq_u32_u8): Likewise.
25854 (vreinterpretq_u32_u16): Likewise.
25855 (vreinterpretq_u32_u64): Likewise.
25856 (vreinterpretq_u32_p8): Likewise.
25857 (vreinterpretq_u32_p16): Likewise.
25859 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
25861 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
25863 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
25865 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
25866 (vqnegd_s64): Likewise.
25867 (vqabs_s64): Likewise.
25868 (vqabsd_s64): Likewise.
25870 2014-04-22 Richard Henderson <rth@redhat.com>
25872 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
25873 computation to the top of the loop.
25875 2014-04-22 Renlin <renlin.li@arm.com>
25876 Jiong Wang <jiong.wang@arm.com>
25878 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
25879 * config/aarch64/aarch64.c (aarch64_layout_frame)
25880 (aarch64_initial_elimination_offset): Likewise.
25882 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
25884 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
25887 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
25889 * machmode.h (bitwise_mode_for_mode): Declare.
25890 * stor-layout.h (bitwise_type_for_mode): Likewise.
25891 * stor-layout.c (bitwise_mode_for_mode): New function.
25892 (bitwise_type_for_mode): Likewise.
25893 * builtins.c (fold_builtin_memory_op): Use it instead of
25894 int_mode_for_mode and build_nonstandard_integer_type.
25896 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25898 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
25899 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
25900 (*-*-solaris2*): Simplify.
25901 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
25902 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
25903 *-*-solaris2.9* handling.
25905 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
25907 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
25908 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
25909 handling, simplify.
25910 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
25911 * configure: Regenerate.
25913 * config/i386/sol2-9.h: Remove.
25915 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
25916 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
25917 Remove Solaris 9 references.
25919 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
25921 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
25922 (floatuns<GPI:mode><GPF:mode>2): Remove.
25923 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
25924 and floatuns conversions.
25925 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
25926 and floatuns conversions.
25927 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
25928 (w1,w2): New mode attributes for inequal width conversions.
25930 2014-04-22 Renlin Li <Renlin.Li@arm.com>
25932 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
25933 the output asm format.
25935 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
25937 * config/aarch64/aarch64-simd.md
25938 (aarch64_cm<optab>di): Always split.
25939 (*aarch64_cm<optab>di): New.
25940 (aarch64_cmtstdi): Always split.
25941 (*aarch64_cmtstdi): New.
25943 2014-04-22 Jakub Jelinek <jakub@redhat.com>
25945 PR tree-optimization/60823
25946 * omp-low.c (ipa_simd_modify_function_body): Go through
25947 all SSA_NAMEs and for those refering to vector arguments
25948 which are going to be replaced adjust SSA_NAME_VAR and,
25949 if it is a default definition, change it into a non-default
25950 definition assigned at the beginning of function from new_decl.
25951 (ipa_simd_modify_stmt_ops): Rewritten.
25952 * tree-dfa.c (set_ssa_default_def): When removing default def,
25953 check for NULL loc instead of NULL *loc.
25955 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25957 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
25958 restrictions on core registers for DImode values in Thumb2.
25960 2014-04-22 Ian Bolton <ian.bolton@arm.com>
25962 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
25963 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
25965 2014-04-22 Ian Bolton <ian.bolton@arm.com>
25967 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
25968 (*iordi_notzesidi_di): Likewise.
25969 (*iordi_notsesidi_di): Likewise.
25971 2014-04-22 Ian Bolton <ian.bolton@arm.com>
25973 * config/arm/arm-protos.h (tune_params): New struct members.
25974 * config/arm/arm.c: Initialise tune_params per processor.
25975 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
25976 for speed, based on new tune_params.
25978 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
25980 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
25981 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
25982 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
25983 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
25984 * config/aarch64/arm_neon.h (vrnd_f64): Added.
25985 (vrnda_f64): Likewise.
25986 (vrndi_f64): Likewise.
25987 (vrndm_f64): Likewise.
25988 (vrndn_f64): Likewise.
25989 (vrndp_f64): Likewise.
25990 (vrndx_f64): Likewise.
25992 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25994 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
25995 GET_MODE_SIZE argument is enum machine_mode.
25997 2014-04-22 Jakub Jelinek <jakub@redhat.com>
26000 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
26001 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
26003 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
26005 PR middle-end/60281
26006 * asan.c (asan_emit_stack_protection): Force the base to align to
26007 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
26008 appropriate bits if STRICT_ALIGNMENT.
26009 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
26011 (expand_used_vars): Leave a space in the stack frame for alignment
26012 if STRICT_ALIGNMENT.
26014 2014-04-21 David Malcolm <dmalcolm@redhat.com>
26016 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
26018 (gimple_store_p): Likewise.
26019 (gimple_assign_load_p): Likewise.
26020 (gimple_assign_cast_p): Likewise.
26021 (gimple_clobber_p): Likewise.
26023 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
26024 rather than a gimple.
26025 (gimple_assign_cast_p): Likewise.
26027 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
26030 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
26031 If mode is DDmode and TARGET_E500_DOUBLE allow move.
26033 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
26034 more debug information for E500 if -mdebug=reg.
26036 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
26039 * config/i386/i386.c (ix86_expand_builtin)
26040 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
26041 register for target RTX.
26042 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
26044 2014-04-18 Cong Hou <congh@google.com>
26046 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
26047 the widen-mult pattern by handling two operands with different sizes,
26048 and operands whose size is smaller than half of the result type.
26050 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
26052 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
26053 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
26054 (do_estimate_edge_time): Compute it.
26055 * ipa-inline.c (want_inline_small_function_p): Bypass
26056 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
26058 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
26060 * ipa-inline.c (spec_rem): New static variable.
26061 (dump_overall_stats): New function.
26062 (dump_inline_stats): New function.
26064 2014-04-18 Richard Henderson <rth@redhat.com>
26066 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
26067 to GET_MODE_SIZE, not a reg_class_t.
26069 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26071 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
26072 (vsx_xxmrglw_<mode>): Likewise.
26074 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
26077 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
26078 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
26079 (rs6000_init_hard_regno_mode_ok): Likewise.
26081 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
26083 * ipa-inline.c (inline_small_functions): Account only non-cold
26085 * doc/invoke.texi (inline-unit-growth): Update documentation.
26087 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
26089 * config/rs6000/rs6000.md (addti3, subti3): New.
26091 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
26094 * config/i386/i386.c (ix86_expand_clear): Remove outdated
26095 comment. Check optimize_insn_for_size_p instead of
26096 optimize_insn_for_speed_p.
26098 2014-04-17 Martin Jambor <mjambor@suse.cz>
26100 * gimple-iterator.c (gsi_start_edge): New function.
26101 * gimple-iterator.h (gsi_start_edge): Declare.
26102 * tree-sra.c (single_non_eh_succ): New function.
26103 (disqualify_ops_if_throwing_stmt): Renamed to
26104 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
26105 having one non-EH successor BB.
26106 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
26107 generate loads into replacements.
26108 (sra_modify_assign): Likewise and and also use the simple path for
26110 (sra_modify_function_body): Commit statements on edges.
26112 2014-04-17 Richard Biener <rguenther@suse.de>
26114 PR middle-end/60849
26115 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
26116 comparison results and add clarifying comment.
26118 2014-04-17 Jakub Jelinek <jakub@redhat.com>
26120 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
26121 (blank_mode): Initialize it.
26122 (emit_mode_size_inline, emit_mode_nunits_inline,
26123 emit_mode_inner_inline): New functions.
26124 (emit_insn_modes_h): Call them and surround their output with
26125 #if GCC_VERSION >= 4001 ... #endif.
26126 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
26127 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
26128 mode_* arrays if the argument is __builtin_constant_p.
26129 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
26130 is enum machine_mode.
26132 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
26134 * passes.c (opt_pass::execute): Adjust.
26135 (pass_manager::execute_pass_mode_switching): Likewise.
26136 (early_local_passes::execute): Likewise.
26137 (execute_one_pass): Pass cfun to the pass's execute method.
26138 * tree-pass.h (opt_pass::execute): Add function * argument.
26139 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
26140 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
26141 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
26142 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
26143 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
26144 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
26145 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
26146 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
26147 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
26148 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
26149 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
26150 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
26151 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
26152 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
26153 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
26154 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
26155 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
26156 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
26157 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
26158 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
26159 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
26160 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
26161 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
26162 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
26163 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
26164 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
26165 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
26166 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
26167 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
26170 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
26172 * passes.c (opt_pass::gate): Take function * argument.
26173 (gate_all_early_local_passes): Merge into
26174 (early_local_passes::gate): this.
26175 (gate_all_early_optimizations): Merge into
26176 (all_early_optimizations::gate): this.
26177 (gate_all_optimizations): Mege into
26178 (all_optimizations::gate): this.
26179 (gate_all_optimizations_g): Merge into
26180 (all_optimizations_g::gate): this.
26181 (gate_rest_of_compilation): Mege into
26182 (rest_of_compilation::gate): this.
26183 (gate_postreload): Merge into
26184 (postreload::gate): this.
26185 (dump_one_pass): Pass cfun to the pass's gate method.
26186 (execute_ipa_summary_passes): Likewise.
26187 (execute_one_pass): Likewise.
26188 (ipa_write_summaries_2): Likewise.
26189 (ipa_write_optimization_summaries_1): Likewise.
26190 (ipa_read_summaries_1): Likewise.
26191 (ipa_read_optimization_summaries_1): Likewise.
26192 (execute_ipa_stmt_fixups): Likewise.
26193 * tree-pass.h (opt_pass::gate): Add function * argument.
26194 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
26195 combine-stack-adj.c, combine.c, compare-elim.c,
26196 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
26197 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
26198 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
26199 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
26200 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
26201 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
26202 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
26203 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
26204 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
26205 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
26206 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
26207 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
26208 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
26209 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
26210 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
26211 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
26212 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
26213 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
26214 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
26215 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
26216 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
26217 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
26218 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
26219 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
26220 var-tracking.c, vtable-verify.c, web.c: Adjust.
26222 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
26224 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
26225 * configure: Regenerate.
26227 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
26229 * passes.c (dump_one_pass): don't check pass->has_gate.
26230 (execute_ipa_summary_passes): Likewise.
26231 (execute_one_pass): Likewise.
26232 (ipa_write_summaries_2): Likewise.
26233 (ipa_write_optimization_summaries_1): Likewise.
26234 (ipa_read_optimization_summaries_1): Likewise.
26235 (execute_ipa_stmt_fixups): Likewise.
26236 * tree-pass.h (pass_data::has_gate): Remove.
26237 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
26238 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
26239 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
26240 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
26241 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
26242 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
26243 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
26244 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
26245 gimple-low.c, gimple-ssa-isolate-paths.c,
26246 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
26247 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
26248 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
26249 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
26250 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
26251 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
26252 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
26253 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
26254 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
26255 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
26256 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
26257 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
26258 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
26259 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
26260 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
26261 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
26262 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
26263 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
26264 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
26265 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
26266 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
26267 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
26270 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
26272 * pass_manager.h (pass_manager::register_dump_files_1): Remove
26274 * passes.c (pass_manager::register_dump_files_1): Merge into
26275 (pass_manager::register_dump_files): this, and remove its handling of
26276 properties since the pass always has the properties anyway.
26277 (pass_manager::pass_manager): Adjust.
26279 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
26281 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
26282 * passes.c (pass_manager::register_dump_files_1): Remove dead code
26283 dealing with properties.
26284 (pass_manager::register_dump_files): Adjust.
26286 2014-03-20 Mark Wielaard <mjw@redhat.com>
26288 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
26289 then represent the bound as normal constant value.
26291 2014-04-17 Jakub Jelinek <jakub@redhat.com>
26294 Forward port from 4.8 branch
26295 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
26297 * config/i386/bmiintrin.h (_blsi_u32): New.
26298 (_blsi_u64): Ditto.
26299 (_blsr_u32): Ditto.
26300 (_blsr_u64): Ditto.
26301 (_blsmsk_u32): Ditto.
26302 (_blsmsk_u64): Ditto.
26303 (_tzcnt_u32): Ditto.
26304 (_tzcnt_u64): Ditto.
26306 2014-04-17 Kito Cheng <kito@0xlab.org>
26308 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
26310 2014-04-17 Richard Biener <rguenther@suse.de>
26312 PR middle-end/60849
26313 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
26314 boolean results for comparisons.
26316 2014-04-17 Richard Biener <rguenther@suse.de>
26318 PR tree-optimization/60836
26319 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
26320 initial PHI args to be gimple values.
26322 2014-04-17 Richard Biener <rguenther@suse.de>
26324 PR tree-optimization/60841
26325 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
26326 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
26327 of stmts to SLP build.
26328 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
26329 (vect_analyze_slp): Likewise.
26330 (vect_analyze_slp_instance): Likewise.
26331 (vect_build_slp_tree): Limit overall SLP tree growth.
26332 * tree-vectorizer.h (vect_analyze_data_refs,
26333 vect_analyze_slp): Adjust prototypes.
26335 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
26337 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
26340 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
26342 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
26343 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
26344 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
26345 for TARGET_SLOW_PSHUFB
26347 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
26349 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
26350 * config/i386/i386.c (intel_cost): Ditto.
26352 2014-04-17 Joey Ye <joey.ye@arm.com>
26354 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
26356 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
26358 * opts.c (common_handle_option): Disable -fipa-reference coorectly
26359 with -fuse-profile.
26361 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
26363 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
26364 (type_all_derivations_known_p): New predicate.
26365 (type_all_ctors_visible_p): New predicate.
26366 (type_possibly_instantiated_p): New predicate.
26367 (get_odr_type): Compute all_derivations_known.
26368 (dump_odr_type): Dump the flag.
26369 (maybe_record_type): Cleanup.
26370 (record_target_from_binfo): Add bases_to_consider array;
26371 record bases for types w/o instances and skip CXX destructor.
26372 (possible_polymorphic_call_targets_1): Add bases_to_consider
26373 and consider_construction parameters; check if type may have instance.
26374 (get_polymorphic_call_info): Set maybe_in_construction to true
26375 when we know nothing.
26376 (record_targets_from_bases): Skip CXX destructors; they are
26377 never called for types in construction.
26378 (possible_polymorphic_call_targets): Do not record target when
26379 type may not have instance.
26381 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
26384 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
26385 external aliases alive, too.
26387 2014-04-16 Andrew Pinski <apinski@cavium.com>
26389 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
26392 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
26394 * final.c (compute_alignments): Do not apply loop alignment to a block
26395 falling through to the exit.
26397 2014-04-16 Catherine Moore <clm@codesourcery.com>
26399 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
26400 Adjust constraints for microMIPS store patterns.
26402 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
26404 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
26406 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
26408 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
26409 (append_use): Run at -O0.
26410 (append_vdef): Likewise.
26411 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
26412 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
26414 2014-04-16 Jakub Jelinek <jakub@redhat.com>
26416 PR tree-optimization/60844
26417 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
26418 (propagate_op_to_single_use, remove_visited_stmt_chain,
26419 linearize_expr, repropagate_negates, reassociate_bb): Use it
26420 instead of gsi_remove.
26422 2014-04-16 Martin Jambor <mjambor@suse.cz>
26424 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
26425 ipa_transforms_to_apply.
26426 (cgraph_function_versioning): Assert that old_node has empty
26427 ipa_transforms_to_apply.
26428 * trans-mem.c (ipa_tm_create_version): Likewise.
26429 * tree-inline.c (tree_function_versioning): Do not duplicate
26430 ipa_transforms_to_apply.
26432 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26435 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
26437 Pass necessary as flags on 64-bit Solaris/x86.
26438 Use lowercase relocs for x86_64-*-*.
26439 * configure: Regenerate.
26441 2014-04-15 Jan Hubicka <jh@suse.cz>
26443 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
26444 (maybe_record_node, likely_target_p): Use it.
26446 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26449 Revert following patch
26451 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
26454 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
26455 software floating point or no floating point registers, do not
26456 allow any type in the FPRs. Eliminate a test for SPE SIMD types
26457 in GPRs that occurs after we tested for GPRs that would never be
26460 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
26461 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
26462 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
26463 specifically allow DDmode, since that does not use the SPE SIMD
26466 2014-03-21 Mark Wielaard <mjw@redhat.com>
26468 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
26469 as unsigned or int depending on type and value used.
26471 2014-04-15 Richard Biener <rguenther@suse.de>
26473 PR rtl-optimization/56965
26474 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
26475 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
26477 * alias.c (true_dependence_1): Do not call
26478 nonoverlapping_component_refs_p.
26479 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
26480 nonoverlapping_component_refs_p.
26481 (indirect_refs_may_alias_p): Likewise.
26483 2014-04-15 Teresa Johnson <tejohnson@google.com>
26485 * cfg.c (dump_bb_info): Fix flags check.
26486 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
26488 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26490 PR rtl-optimization/60663
26491 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
26494 2014-04-15 Richard Biener <rguenther@suse.de>
26496 * lto-streamer.h (LTO_major_version): Bump to 4.
26498 2014-04-15 Richard Biener <rguenther@suse.de>
26500 * common.opt (lto_partition_model): New enum.
26501 (flto-partition=): Merge separate options with a single with argument,
26502 add -flto-partition=one support.
26503 * flag-types.h (enum lto_partition_model): Declare.
26504 * opts.c (finish_options): Remove duplicate -flto-partition=
26506 * lto-wrapper.c (run_gcc): Adjust.
26508 2014-04-15 Richard Biener <rguenther@suse.de>
26510 * alias.c (ncr_compar): New function.
26511 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
26513 2014-04-15 Richard Biener <rguenther@suse.de>
26515 * alias.c (record_component_aliases): Do not walk BINFOs.
26517 2014-04-15 Richard Biener <rguenther@suse.de>
26519 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26520 Add struct function argument and adjust.
26521 (find_func_aliases_for_call): Likewise.
26522 (find_func_aliases): Likewise.
26523 (find_func_clobbers): Likewise.
26524 (intra_create_variable_infos): Likewise.
26525 (compute_points_to_sets): Likewise.
26526 (ipa_pta_execute): Adjust. Do not push/pop cfun.
26528 2014-04-15 Richard Biener <rguenther@suse.de>
26530 * tree.c (iterative_hash_expr): Use enum tree_code_class
26531 to store TREE_CODE_CLASS.
26532 (tree_block): Likewise.
26533 (tree_set_block): Likewise.
26534 * tree.h (fold_build_pointer_plus_loc): Use
26535 convert_to_ptrofftype_loc.
26537 2014-04-15 Jakub Jelinek <jakub@redhat.com>
26540 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
26543 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
26545 * cfgloop.h (struct loop): Move force_vectorize down.
26546 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
26547 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
26548 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
26549 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
26550 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
26551 * tree-core.h (enum annot_expr_kind): Add new kind values.
26552 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
26553 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
26555 * tree.def (ANNOTATE_EXPR): Tweak comment.
26557 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
26559 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
26562 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
26564 * tree.h (TYPE_IDENTIFIER): Declare.
26565 * tree.c (subrange_type_for_debug_p): Use it.
26566 * godump.c (go_format_type): Likewise.
26567 * dwarf2out.c (is_cxx_auto, modified_type_die,
26568 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
26569 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
26571 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
26574 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
26576 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
26578 * config/i386/i386.c (examine_argument): Return bool. Return true if
26579 parameter should be passed in memory.
26580 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
26581 (construct_container): Update calls to examine_argument.
26582 (function_arg_advance_64): Ditto.
26583 (return_in_memory_32): Merge with ix86_return_in_memory.
26584 (return_in_memory_64): Ditto.
26585 (return_in_memory_ms_64): Ditto.
26587 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
26589 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
26590 * coverage.c (coverage_compute_profile_id): Handle externally visible
26593 2014-04-14 Martin Jambor <mjambor@suse.cz>
26595 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
26596 DECL_DISREGARD_INLINE_LIMITS functions.
26598 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
26601 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
26603 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
26606 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
26607 optimize_insn_for_speed_p instead of
26608 optimize_function_for_speed_p.
26610 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
26612 * doc/invoke.texi (free): Document AArch64.
26614 2014-04-14 Richard Biener <rguenther@suse.de>
26616 PR tree-optimization/60042
26617 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
26618 (insert_into_preds_of_block): Do not prevent PHI insertion
26619 for REFERENCE exprs here ...
26620 (eliminate_dom_walker::before_dom_children): ... but prevent
26621 their use here under similar conditions when applied to the
26622 IL after PRE optimizations.
26624 2014-04-14 Richard Biener <rguenther@suse.de>
26626 * passes.def: Move early points-to after early SRA.
26628 2014-04-14 Richard Biener <rguenther@suse.de>
26630 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
26631 check for which sign-changes we allow when forwarding
26632 a converted value into a switch.
26634 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
26636 * stor-layout.c (place_field): Finalize non-constant offset for the
26639 2014-04-14 Richard Biener <rguenther@suse.de>
26641 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
26643 (expand_switch_using_bit_tests_p): Likewise.
26644 (process_switch): Compute and pass on speed_p based on the
26646 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
26647 optimize_bb_for_speed_p.
26649 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
26651 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
26652 * function.h (struct function): Rename has_force_vect_loops into
26653 has_force_vectorize_loops.
26654 * lto-streamer-in.c (input_cfg): Adjust for renaming.
26655 (input_struct_function_base): Likewise.
26656 * lto-streamer-out.c (output_cfg): Likewise.
26657 (output_struct_function_base): Likewise.
26658 * omp-low.c (expand_omp_simd): Likewise.
26659 * tree-cfg.c (move_sese_region_to_fn): Likewise.
26660 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
26661 (version_loop_for_if_conversion): Likewise.
26662 (tree_if_conversion): Likewise.
26663 (main_tree_if_conversion): Likewise.
26664 (gate_tree_if_conversion): Likewise.
26665 * tree-inline.c (copy_loops): Likewise.
26666 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
26667 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
26668 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
26669 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
26670 * tree-vectorizer.c (vectorize_loops): Likewise.
26671 * tree-vectorizer.h (unlimited_cost_model): Likewise.
26673 2014-04-14 Richard Biener <rguenther@suse.de>
26676 * lto-streamer-out.c (wrap_refs): New function.
26677 (lto_output): Wrap symbol references in global initializes in
26678 type-preserving MEM_REFs.
26680 2014-04-14 Christian Bruel <christian.bruel@st.com>
26682 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
26684 2014-04-14 Christian Bruel <christian.bruel@st.com>
26686 * config/sh/sh.md (setmemqi): New expand pattern.
26687 * config/sh/sh.h (CLEAR_RATIO): Define.
26688 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
26689 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
26691 2014-04-14 Richard Biener <rguenther@suse.de>
26693 PR middle-end/55022
26694 * fold-const.c (negate_expr_p): Don't negate directional rounding
26696 (fold_negate_expr): Likewise.
26698 2014-04-14 Richard Biener <rguenther@suse.de>
26700 PR tree-optimization/59817
26701 PR tree-optimization/60453
26702 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
26703 recursion to catch all CHRECs in the scalar evolution and restrict
26704 the predicate for the remains appropriately.
26706 2014-04-12 Catherine Moore <clm@codesourcery.com>
26708 * config/mips/constraints.md: Add new register constraint "kb".
26709 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
26710 (*movhi_internal): Likewise.
26711 (*movqi_internal): Likewise.
26712 * config/mips/mips.h (M16_STORE_REGS): New register class.
26713 (REG_CLASS_NAMES): Add M16_STORE_REGS.
26714 (REG_CLASS_CONTENTS): Likewise.
26715 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
26717 2014-04-11 Tobias Burnus <burnus@net-b.de>
26720 * doc/invoke.texi (-Wformat-signedness): Document it.
26721 (Wformat=2): Mention that this enables -Wformat-signedness.
26723 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
26725 * common/config/epiphany/epiphany-common.c
26726 (epiphany_option_optimization_table): Enable section anchors by
26727 default at -O1 or higher.
26728 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
26729 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
26730 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
26731 carries no extra cost.
26732 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
26733 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
26734 * config/epiphany/predicates.md (memclob_operand): New predicate.
26735 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
26736 Use memclob_operand predicate and X constraint for operand 3.
26738 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
26740 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
26741 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
26744 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
26746 PR rtl-optimization/60651
26747 * mode-switching.c (optimize_mode_switching): Make sure to emit
26748 sets of a lower numbered entity before sets of a higher numbered
26749 entity to a mode of the same or lower priority.
26750 When creating a seginfo for a basic block that starts with a code
26751 label, move the insertion point past the code label.
26752 (new_seginfo): Document and enforce requirement that
26753 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
26754 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
26755 * doc/tm.texi: Regenerate.
26757 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
26760 * config/arc/arc.c (arc_save_restore): Fix assert typo.
26762 2013-04-11 Jakub Jelinek <jakub@redhat.com>
26764 * BASE-VER: Set to 4.10.0.
26766 2014-04-11 Tobias Burnus <burnus@net-b.de>
26769 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
26770 * doc/gcc.texi (Service): Update description in the @menu
26771 * doc/invoke.texi (Option Summary): Remove misplaced and
26774 2014-04-11 Steve Ellcey <sellcey@mips.com>
26775 Jakub Jelinek <jakub@redhat.com>
26777 PR middle-end/60556
26778 * expr.c (convert_move): Use emit_store_flag_force instead of
26779 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
26782 2014-04-11 Richard Biener <rguenther@suse.de>
26784 PR middle-end/60797
26785 * varasm.c (assemble_alias): Avoid endless error reporting
26786 recursion by setting TREE_ASM_WRITTEN.
26788 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26790 * config/s390/s390.md: Add a splitter for NOT rtx.
26792 2014-04-11 Jakub Jelinek <jakub@redhat.com>
26794 PR rtl-optimization/60663
26795 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
26797 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
26798 Jakub Jelinek <jakub@redhat.com>
26801 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
26802 flag from decl_node to node.
26804 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26807 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
26808 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
26809 ameliorating the cases where it can be.
26811 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
26814 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
26816 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
26817 (loadsync_<mode>): Change mode.
26818 (load_quadpti, store_quadpti): New.
26819 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
26820 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
26821 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
26823 2014-04-09 Cong Hou <congh@google.com>
26826 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
26829 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26831 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
26832 instead of vnor to exploit possible fusion opportunity in the
26834 (altivec_expand_vec_perm_const_le): Likewise.
26836 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
26838 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
26839 (loadsync_<mode>): Change mode.
26840 (load_quadpti, store_quadpti): New.
26841 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
26842 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
26844 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
26847 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
26848 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
26849 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
26851 2014-04-08 Richard Biener <rguenther@suse.de>
26853 PR middle-end/60706
26854 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
26855 a 64bit widest int print double-int similar to on HWI64 hosts.
26857 2014-04-08 Richard Biener <rguenther@suse.de>
26859 PR tree-optimization/60785
26860 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
26861 default defs properly.
26863 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
26865 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
26866 (Weffc++): Likewise.
26868 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
26870 * ipa-devirt.c (maybe_record_node): When node is not recorded,
26871 set completep to false rather than true.
26873 2014-04-07 Douglas B Rupp <rupp@adacore.com>
26876 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
26877 ARM_TARGET2_DWARF_FORMAT.
26879 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
26882 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
26883 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
26886 2014-04-07 Richard Biener <rguenther@suse.de>
26888 PR tree-optimization/60766
26889 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
26890 (may_eliminate_iv): Convert cand_value_at result to desired type.
26892 2014-04-07 Jason Merrill <jason@redhat.com>
26895 * common.opt (-fno-gnu-unique): Add.
26896 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
26898 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26900 * haifa-sched.c: Fix outdated function reference and minor
26901 grammar errors in introductory comment.
26903 2014-04-07 Richard Biener <rguenther@suse.de>
26905 PR middle-end/60750
26906 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
26907 for noreturn calls.
26908 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
26910 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
26913 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
26914 size accounting for thunks.
26915 (pa_asm_output_mi_thunk): Use final_start_function() and
26916 final_end_function() to output function start and end directives.
26918 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
26920 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
26921 device specific ISA/ feature information. Remove short_sp and
26922 errata_skip ds. Add avr_device_specific_features enum to have device
26924 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
26925 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
26926 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
26927 updated device specific info.
26928 * config/avr/avr-mcus.def: Merge device specific details to
26929 dev_attribute field.
26930 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
26932 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
26933 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
26934 assembler if RMW isa supported by current device.
26935 * config/avr/genmultilib.awk: Update as device info structure changed.
26936 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
26938 2014-04-04 Cong Hou <congh@google.com>
26940 PR tree-optimization/60656
26941 * tree-vect-stmts.c (supportable_widening_operation):
26942 Fix a bug that elements in a vector with vect_used_by_reduction
26943 property are incorrectly reordered when the operation on it is not
26944 consistant with the one in reduction operation.
26946 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
26948 PR rtl-optimization/60155
26949 * gcse.c (record_set_data): New function.
26950 (single_set_gcse): New function.
26951 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
26952 (hoist_code): Likewise.
26953 (get_pressure_class_and_nregs): Likewise.
26955 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
26957 * explow.c (probe_stack_range): Emit a final optimization blockage.
26959 2014-04-04 Anthony Green <green@moxielogic.com>
26961 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
26964 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
26967 * lto-cgraph.c (input_overwrite_node): Check that partitioning
26968 flags are set only during streaming.
26969 * ipa.c (process_references, walk_polymorphic_call_targets,
26970 symtab_remove_unreachable_nodes): Drop bodies of always inline
26971 after early inlining.
26972 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
26974 2014-04-04 Jakub Jelinek <jakub@redhat.com>
26975 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26978 * dwarf2out.c (const_ok_for_output_1): Reject expressions
26981 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26984 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
26986 (cortex_a53_fdivd): Likewise.
26988 2014-04-04 Martin Jambor <mjambor@suse.cz>
26991 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
26992 Adjust all callers.
26993 * cgraph.c (clone_of_p): Also return true if thunks match.
26994 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
26995 cgraph_function_or_thunk_node and an obsolete comment.
26996 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
26998 (build_function_decl_skip_args): Likewise.
26999 (set_new_clone_decl_and_node_flags): New function.
27000 (duplicate_thunk_for_node): Likewise.
27001 (redirect_edge_duplicating_thunks): Likewise.
27002 (cgraph_clone_node): New parameter args_to_skip, pass it to
27003 redirect_edge_duplicating_thunks which is called instead of
27004 cgraph_redirect_edge_callee.
27005 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
27006 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
27008 2014-04-04 Jeff Law <law@redhat.com>
27011 * config/arm/predicates.md (const_int_I_operand): New predicate.
27012 (const_int_M_operand): Similarly.
27013 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
27015 (insv_t2, extv_reg, extzv_t2): Likewise.
27016 (load_multiple_with_writeback): Similarly for const_int_I_operand.
27017 (pop_multiple_with_writeback_and_return): Likewise.
27018 (vfp_pop_multiple_with_writeback): Likewise
27020 2014-04-04 Richard Biener <rguenther@suse.de>
27023 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
27024 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
27026 * gimplify.h (gimple_add_tmp_var_fn): Declare.
27027 * gimplify.c (gimple_add_tmp_var_fn): New function.
27028 * gimple-expr.h (create_tmp_reg_fn): Declare.
27029 * gimple-expr.c (create_tmp_reg_fn): New function.
27030 * gimple-low.c (record_vars_into): Don't change cfun.
27031 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
27032 code generation without cfun.
27034 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
27037 * Makefile.in (install-driver): Fix shell scripting.
27039 2014-04-03 Cong Hou <congh@google.com>
27041 PR tree-optimization/60505
27042 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
27043 threshold of number of iterations below which no vectorization
27045 * tree-vect-loop.c (new_loop_vec_info):
27046 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
27047 * tree-vect-loop.c (vect_analyze_loop_operations):
27048 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
27049 * tree-vect-loop.c (vect_transform_loop):
27050 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
27051 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
27052 of iterations of the loop and see if we should build the epilogue.
27054 2014-04-03 Richard Biener <rguenther@suse.de>
27056 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
27057 (streamer_tree_cache_create): Adjust.
27058 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
27059 to allow optional nodes array.
27060 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
27061 (streamer_tree_cache_append): Likewise.
27062 (streamer_tree_cache_create): Create nodes array optionally
27063 as specified by parameter.
27064 * lto-streamer-out.c (create_output_block): Avoid maintaining
27065 the node array in the writer cache.
27066 (DFS_write_tree): Remove assertion.
27067 (produce_asm_for_decls): Free the out decl state hash table early.
27068 * lto-streamer-in.c (lto_data_in_create): Adjust for
27069 streamer_tree_cache_create prototype change.
27071 2014-04-03 Richard Biener <rguenther@suse.de>
27073 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
27074 set TREE_CHAIN to NULL_TREE.
27076 2014-04-03 Richard Biener <rguenther@suse.de>
27078 PR tree-optimization/60740
27079 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
27080 over all GIMPLE_COND operands.
27082 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
27084 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
27085 (Weffc++): Remove Scott's numbering, merge lists and reference
27088 2014-04-03 Nick Clifton <nickc@redhat.com>
27090 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
27093 2014-04-03 Martin Jambor <mjambor@suse.cz>
27095 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
27096 mention gcc_unreachable before failing.
27097 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
27100 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
27103 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
27104 inconsistent code and instead mark the context inconsistent.
27105 (possible_polymorphic_call_targets): For inconsistent contexts
27106 return empty complete list.
27108 2014-04-02 Anthony Green <green@moxielogic.com>
27110 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
27111 (extendqisi2, extendhisi2): Define.
27112 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
27113 (WCHAR_TYPE): Change to unsigned int.
27115 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27117 PR tree-optimization/60733
27118 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
27119 insertion point for PHI candidates to be the end of the feeding
27120 block for the PHI argument.
27122 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
27124 PR rtl-optimization/60650
27125 * lra-constraints.c (process_alt_operands): Decrease reject for
27126 earlyclobber matching.
27128 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27130 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
27132 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27134 * config/spu/spu.c (pad_bb): Do not crash when the last
27135 insn is CODE_FOR_blockage.
27137 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27139 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
27140 lies outside the target mode.
27142 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
27145 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
27146 software floating point or no floating point registers, do not
27147 allow any type in the FPRs. Eliminate a test for SPE SIMD types
27148 in GPRs that occurs after we tested for GPRs that would never be
27151 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
27152 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
27153 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
27154 specifically allow DDmode, since that does not use the SPE SIMD
27157 2014-04-02 Richard Biener <rguenther@suse.de>
27159 PR middle-end/60729
27160 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
27161 MODE_INTs. Properly use negv_optab.
27162 (expand_abs): Likewise.
27164 2014-04-02 Richard Biener <rguenther@suse.de>
27167 * Makefile.in (install-driver): Guard extra installs with special
27170 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
27172 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27173 Document vec_vgbbd.
27175 2014-04-01 Richard Henderson <rth@redhat.com>
27178 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
27179 alternative enabled before register allocation.
27181 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
27183 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
27184 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
27186 (nios2_large_got_address): Remove unneeded 'sym' parameter.
27187 (nios2_got_address): Update nios2_large_got_address call site.
27188 (nios2_delegitimize_address): New function.
27189 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
27190 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
27191 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
27193 2014-04-01 Martin Husemann <martin@duskware.de>
27195 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
27198 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
27200 PR rtl-optimization/60604
27201 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
27202 check from register_operand.
27203 (register_operand): Redefine in terms of general_operand.
27204 (nonmemory_operand): Use register_operand for the non-constant cases.
27206 2014-04-01 Richard Biener <rguenther@suse.de>
27208 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
27210 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
27212 * doc/invoke.texi (mapp-regs): Clarify.
27214 2014-03-31 Ulrich Drepper <drepper@gmail.com>
27216 * config/i386/avx512fintrin.h (__v32hi): Define type.
27217 (__v64qi): Likewise.
27218 (_mm512_set1_epi8): Define.
27219 (_mm512_set1_epi16): Define.
27220 (_mm512_set4_epi32): Define.
27221 (_mm512_set4_epi64): Define.
27222 (_mm512_set4_pd): Define.
27223 (_mm512_set4_ps): Define.
27224 (_mm512_setr4_epi64): Define.
27225 (_mm512_setr4_epi32): Define.
27226 (_mm512_setr4_pd): Define.
27227 (_mm512_setr4_ps): Define.
27228 (_mm512_setzero_epi32): Define.
27230 2014-03-31 Martin Jambor <mjambor@suse.cz>
27232 PR middle-end/60647
27233 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
27234 callsite_arguments_match_p. Updated all callers. Also check types of
27235 corresponding formal parameters and actual arguments.
27236 (not_all_callers_have_enough_arguments_p) Renamed to
27237 some_callers_have_mismatched_arguments_p.
27239 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
27241 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
27243 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
27246 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
27249 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
27251 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
27252 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
27254 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
27255 Use FMAMODE_NOVF512 mode iterator.
27256 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
27257 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
27258 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
27259 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
27261 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
27262 Use VF_128_256 mode iterator.
27263 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
27266 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
27268 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
27269 static chain if needed.
27271 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
27274 * lra-constraints.c (index_part_to_reg): New.
27275 (process_address): Use it.
27277 2014-03-27 Jeff Law <law@redhat.com>
27278 Jakub Jelinek <jakub@redhat.com>
27281 * expr.c (do_tablejump): Use simplify_gen_binary rather than
27282 gen_rtx_{PLUS,MULT} to build up the address expression.
27284 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
27285 creating non-canonical RTL.
27287 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
27290 * ipa-inline.c (want_inline_small_function_p): Short circuit large
27291 functions; reorganize to make cheap checks first.
27292 (inline_small_functions): Do not estimate growth when dumping;
27294 * ipa-inline.h (inline_summary): Add min_size.
27295 (growth_likely_positive): New function.
27296 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
27297 (set_cond_stmt_execution_predicate): Cleanup.
27298 (estimate_edge_size_and_time): Compute min_size.
27299 (estimate_calls_size_and_time): Likewise.
27300 (estimate_node_size_and_time): Likewise.
27301 (inline_update_overall_summary): Update min_size.
27302 (do_estimate_edge_time): Likewise.
27303 (do_estimate_edge_size): Update.
27304 (do_estimate_edge_hints): Update.
27305 (growth_likely_positive): New function.
27307 2014-03-28 Jakub Jelinek <jakub@redhat.com>
27310 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
27311 also if addr has VOIDmode.
27313 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27315 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
27316 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
27318 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
27319 instructions as well as AdvancedSIMD loads.
27321 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27323 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
27324 Use crypto_aese type.
27325 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
27326 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
27327 crypto_aese, crypto_aesmc. Move to types.md.
27328 * config/arm/types.md (crypto_aes): Split into crypto_aese,
27330 * config/arm/iterators.md (crypto_type): Likewise.
27332 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
27334 * cgraph.c: Include expr.h and tree-dfa.h.
27335 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
27338 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
27341 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
27342 regs from checking multi-reg pseudos.
27344 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27346 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
27348 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27350 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
27351 if it would clobber the stack pointer, even temporarily.
27353 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
27355 * mode-switching.c: Make small adjustments to the top comment.
27357 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
27359 * config/rs6000/constraints.md (wD constraint): New constraint to
27360 match the constant integer to get the top DImode/DFmode out of a
27361 vector in a VSX register.
27363 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
27364 match the constant integer to get the top DImode/DFmode out of a
27365 vector in a VSX register.
27367 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
27370 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
27373 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
27374 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
27376 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
27377 Optimize vec_extract of 64-bit values, where the value being
27378 extracted is in the top word, where we can use scalar
27379 instructions. Add direct move and store support. Combine the big
27380 endian/little endian vector select load support into a single insn.
27381 (vsx_extract_<mode>_internal1): Likewise.
27382 (vsx_extract_<mode>_internal2): Likewise.
27383 (vsx_extract_<mode>_load): Likewise.
27384 (vsx_extract_<mode>_store): Likewise.
27385 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
27386 combined into vsx_extract_<mode>_load.
27387 (vsx_extract_<mode>_one_le): Likewise.
27389 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
27390 define the top 64-bit vector element.
27392 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
27395 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27396 Document vec_vbpermq builtin.
27399 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
27400 enable use of xxsldwi and xxpermdi builtin functions.
27401 (vec_xxpermdi): Likewise.
27403 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
27404 Document use of vec_xxsldwi and vec_xxpermdi builtins.
27406 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
27408 PR rtl-optimization/60650
27409 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
27411 (find_spills_for): New.
27412 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
27413 Spill all pseudos on the second iteration.
27415 2014-03-27 Marek Polacek <polacek@redhat.com>
27418 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
27421 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27423 * config/s390/s390.c (s390_can_use_return_insn): Check for
27424 call-saved FPRs on 31 bit.
27426 2014-03-27 Jakub Jelinek <jakub@redhat.com>
27428 PR middle-end/60682
27429 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
27430 if they need regimplification, just drop them instead of
27431 calling gimple_regimplify_operands on them.
27433 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
27436 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
27437 (aarch64_frame_pointer_required): Adjust logic.
27438 (aarch64_can_eliminate): Adjust logic.
27439 (aarch64_override_options_after_change): Adjust logic.
27441 2014-03-27 Dehao Chen <dehao@google.com>
27443 * ipa-inline.c (early_inliner): Update node's inline info.
27445 2014-03-26 Dehao Chen <dehao@google.com>
27447 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
27448 compiler inserted conditional jumps for NAN float check.
27450 2014-03-26 Jakub Jelinek <jakub@redhat.com>
27452 * ubsan.h (ubsan_create_data): Change second argument's type
27453 to const location_t *.
27454 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
27456 (ubsan_create_data): Change second argument to const location_t *PLOC.
27457 Create Loc field whenever PLOC is non-NULL.
27458 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
27459 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
27463 * real.c (real_to_integer2): Change type of low to UHWI.
27465 2014-03-26 Tobias Burnus <burnus@net-b.de>
27467 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
27468 (CILK_SELF_SPECS): New define.
27469 (driver_self_specs): Use it.
27471 2014-03-26 Richard Biener <rguenther@suse.de>
27473 * tree-pretty-print.c (percent_K_format): Implement special
27474 case for LTO and its stripped down BLOCK tree.
27476 2014-03-26 Jakub Jelinek <jakub@redhat.com>
27479 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
27481 * tree-vrp.c (simplify_internal_call_using_ranges): If only
27482 one range is range_int_cst_p, but not both, at least optimize
27483 addition/subtraction of 0 and multiplication by 0 or 1.
27484 * gimple-fold.c (gimple_fold_call): Fold
27485 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
27486 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
27487 INTEGER_CSTs, try to fold at least x * 0 and y - y.
27489 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
27491 PR rtl-optimization/60452
27492 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
27493 <case REG>: Return 1 for invalid offsets from the frame pointer.
27495 2014-03-26 Marek Polacek <polacek@redhat.com>
27498 * doc/extend.texi (C Extensions): Mention variable-length arrays in
27501 2014-03-26 Marek Polacek <polacek@redhat.com>
27504 * doc/extend.texi (Designated Inits): Describe what happens to omitted
27507 2014-03-26 Marek Polacek <polacek@redhat.com>
27510 * ira-color.c (update_conflict_hard_regno_costs): Perform the
27511 multiplication in unsigned type.
27513 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
27515 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
27517 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
27519 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
27521 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
27524 * cif-code.def (UNREACHABLE) New code.
27525 * ipa-inline.c (inline_small_functions): Skip edges to
27526 __builtlin_unreachable.
27527 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
27528 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
27529 predicate to __bulitin_unreachable.
27530 (set_cond_stmt_execution_predicate): Fix issue when
27531 invert_tree_comparison returns ERROR_MARK.
27532 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
27533 propagate to inline clones.
27534 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
27536 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
27537 * cgraphclones.c (cgraph_clone_node): If call destination is already
27538 ureachable, do not redirect it back.
27539 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
27542 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
27544 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
27545 Do not modify inline clones.
27547 2014-03-25 Jakub Jelinek <jakub@redhat.com>
27549 * config/i386/i386.md (general_sext_operand): New mode attr.
27550 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
27551 don't generate (sign_extend (const_int)).
27552 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
27553 operands[2]. Use We constraint instead of <i> and
27554 <general_sext_operand> predicate instead of <general_operand>.
27555 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
27556 * config/i386/constraints.md (We): New constraint.
27557 * config/i386/predicates.md (x86_64_sext_operand,
27558 sext_operand): New predicates.
27560 2014-03-25 Martin Jambor <mjambor@suse.cz>
27563 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
27564 inconsistent devirtualizations to __builtin_unreachable.
27566 2014-03-25 Marek Polacek <polacek@redhat.com>
27569 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
27571 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
27573 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
27574 order of elements for big-endian.
27576 2014-03-25 Richard Biener <rguenther@suse.de>
27578 PR middle-end/60635
27579 * gimplify-me.c (gimple_regimplify_operands): Update the
27582 2014-03-25 Martin Jambor <mjambor@suse.cz>
27585 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
27586 (lto_output_varpool_node): Likewise.
27587 (input_overwrite_node): Likewise.
27588 (input_varpool_node): Likewise.
27590 2014-03-25 Richard Biener <rguenther@suse.de>
27592 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
27593 (run_gcc): Likewise.
27595 2014-03-25 Jakub Jelinek <jakub@redhat.com>
27597 * combine.c (simplify_compare_const): Add MODE argument.
27598 Handle mode_width 0 as very large mode_width.
27599 (try_combine, simplify_comparison): Adjust callers.
27601 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
27602 type to avoid signed integer overflow.
27603 * explow.c (plus_constant): Likewise.
27605 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
27607 * doc/generic.texi: Correct typos.
27609 2014-03-24 Tobias Burnus <burnus@net-b.de>
27611 * doc/invoke.texi (-flto): Expand section about
27612 using static libraries with LTO.
27614 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27616 PR rtl-optimization/60501
27617 * optabs.def (addptr3_optab): New optab.
27618 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
27619 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
27620 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
27622 * lra.c (emit_add3_insn): Use the addptr pattern if available.
27624 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
27626 2014-03-24 Ulrich Drepper <drepper@gmail.com>
27628 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
27631 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
27632 (_mm256_undefined_ps): Define.
27633 (_mm256_undefined_pd): Define.
27634 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
27635 (_mm_undefined_pd): Define.
27636 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
27637 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
27638 (_mm512_undefined_ps): Define.
27639 (_mm512_undefined_pd): Define.
27640 Use _mm*_undefined_*.
27641 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
27643 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
27645 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
27646 (lshr_simd): DI mode added.
27647 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
27648 (aarch64_ushr_simddi): Likewise.
27649 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
27650 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
27651 (vshrd_n_u64): Likewise.
27653 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27655 * Makefile.in (s-macro_list): Depend on cc1.
27657 2014-03-23 Teresa Johnson <tejohnson@google.com>
27659 * ipa-utils.c (ipa_print_order): Use specified dump file.
27661 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
27663 PR rtl-optimization/60601
27664 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
27666 * gcc.c (eval_spec_function): Initialize save_growing_value.
27668 2014-03-22 Jakub Jelinek <jakub@redhat.com>
27671 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
27672 code == MINUS_EXPR, never swap op0 with op1.
27674 * toplev.c (init_local_tick): Avoid signed integer multiplication
27676 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
27677 shift by first operand's bitsize.
27679 2014-03-21 Jakub Jelinek <jakub@redhat.com>
27682 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
27683 redefine to 1 or 0.
27684 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
27685 TARGET_ISA_64BIT_P(x).
27687 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27689 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
27690 pattern for vector nor instead of subtract from splat(-1).
27691 (altivec_expand_vec_perm_const_le): Likewise.
27693 2014-03-21 Richard Henderson <rth@twiddle.net>
27696 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
27697 related insns after epilogue_completed.
27699 2014-03-21 Martin Jambor <mjambor@suse.cz>
27702 * cgraph.h (symtab_node): New flag body_removed.
27703 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
27704 when removing bodies.
27705 * symtab.c (dump_symtab_base): Dump body_removed flag.
27706 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
27707 had their bodies removed.
27709 2014-03-21 Martin Jambor <mjambor@suse.cz>
27712 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
27715 2014-03-21 Richard Biener <rguenther@suse.de>
27717 PR tree-optimization/60577
27718 * tree-core.h (struct tree_base): Document nothrow_flag use
27719 in DECL_NONALIASED.
27720 * tree.h (DECL_NONALIASED): New.
27721 (may_be_aliased): Adjust.
27722 * coverage.c (build_var): Set DECL_NONALIASED.
27724 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
27726 * expr.c (expand_expr_real_1): Remove outdated comment.
27728 2014-03-20 Jakub Jelinek <jakub@redhat.com>
27730 PR middle-end/60597
27731 * ira.c (adjust_cleared_regs): Call copy_rtx on
27732 *reg_equiv[REGNO (loc)].src_p before passing it to
27733 simplify_replace_fn_rtx.
27736 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
27737 into CONST, put pic register as first operand of PLUS. Use
27738 gen_const_mem for both 32-bit and 64-bit PIC got loads.
27740 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27742 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
27744 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
27746 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
27747 around for store forwarding issue in the FPU on the UT699.
27748 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
27749 loads and operations if -mfix-ut699 is specified.
27750 (divtf3_hq): Tweak attribute.
27751 (sqrttf2_hq): Likewise.
27753 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
27755 * calls.c (store_one_arg): Remove incorrect const qualification on the
27756 type of the temporary.
27757 * cfgexpand.c (expand_return): Likewise.
27758 * expr.c (expand_constructor): Likewise.
27759 (expand_expr_real_1): Likewise.
27761 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27763 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
27766 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
27769 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
27771 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
27773 * config/arm/aarch-common-protos.h
27774 (alu_cost_table): Fix spelling of "extend".
27775 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
27777 2014-03-19 Richard Biener <rguenther@suse.de>
27779 PR middle-end/60553
27780 * tree-core.h (tree_type_common): Re-order pointer members
27781 to reduce recursion depth during GC walks.
27783 2014-03-19 Marek Polacek <polacek@redhat.com>
27786 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
27787 before accessing it.
27789 2014-03-19 Richard Biener <rguenther@suse.de>
27792 * lto-streamer-in.c (input_function): In WPA stage do not drop
27795 2014-03-19 Jakub Jelinek <jakub@redhat.com>
27797 PR tree-optimization/60559
27798 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
27799 with build_zero_cst assignment.
27801 2014-03-18 Kai Tietz <ktietz@redhat.com>
27803 PR rtl-optimization/56356
27804 * sdbout.c (sdbout_parms): Verify that parms'
27805 incoming argument is valid.
27806 (sdbout_reg_parms): Likewise.
27808 2014-03-18 Richard Henderson <rth@redhat.com>
27811 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
27812 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
27813 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
27815 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
27817 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
27818 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
27819 Italicize plugin event names in description. Explain that
27820 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
27821 Remind that no GCC functions should be called after PLUGIN_FINISH.
27822 Explain what pragmas with expansion are.
27824 2014-03-18 Martin Liska <mliska@suse.cz>
27826 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
27827 gimple call statement is update.
27828 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
27829 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
27831 2014-03-18 Jakub Jelinek <jakub@redhat.com>
27834 * ubsan.c (ubsan_instrument_unreachable): Call
27835 initialize_sanitizer_builtins.
27836 (ubsan_pass): Likewise.
27839 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
27840 varpool_finalize_decl instead of rest_of_decl_compilation.
27842 2014-03-18 Richard Biener <rguenther@suse.de>
27844 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
27845 by using bitmap_and_compl instead of bitmap_and_compl_into.
27846 (df_rd_transfer_function): Likewise.
27848 2014-03-18 Richard Biener <rguenther@suse.de>
27850 * doc/lto.texi (fresolution): Fix typo.
27852 2014-03-18 Richard Biener <rguenther@suse.de>
27854 * doc/invoke.texi (flto): Update for changes in 4.9.
27856 2014-03-18 Richard Biener <rguenther@suse.de>
27858 * doc/loop.texi: Remove section on the removed lambda framework.
27859 Update loop docs with recent changes in preserving loop structure.
27861 2014-03-18 Richard Biener <rguenther@suse.de>
27863 * doc/lto.texi (-fresolution): Document.
27865 2014-03-18 Richard Biener <rguenther@suse.de>
27867 * doc/contrib.texi: Adjust my name.
27869 2014-03-18 Jakub Jelinek <jakub@redhat.com>
27872 * internal-fn.c: Include diagnostic-core.h.
27873 (expand_BUILTIN_EXPECT): New function.
27874 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
27875 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
27876 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
27877 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
27878 IFN_BUILTIN_EXPECT.
27879 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
27880 Revert 3 argument __builtin_expect code.
27881 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
27882 * gimple-fold.c (gimple_fold_call): Likewise.
27883 * tree.h (fold_builtin_expect): New prototype.
27884 * builtins.c (build_builtin_expect_predicate): Add predictor
27885 argument, if non-NULL, create 3 argument __builtin_expect.
27886 (fold_builtin_expect): No longer static. Add ARG2 argument,
27887 pass it through to build_builtin_expect_predicate.
27888 (fold_builtin_2): Adjust caller.
27889 (fold_builtin_3): Handle BUILT_IN_EXPECT.
27890 * internal-fn.def (BUILTIN_EXPECT): New.
27892 2014-03-18 Tobias Burnus <burnus@net-b.de>
27895 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
27896 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
27897 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
27899 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
27902 * predict.c (combine_predictions_for_bb): Fix up formatting.
27903 (expr_expected_value_1, expr_expected_value): Add predictor argument,
27904 fill what it points to if non-NULL.
27905 (tree_predict_by_opcode): Adjust caller, use the predictor.
27906 * predict.def (PRED_COMPARE_AND_SWAP): Add.
27908 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
27910 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
27911 proper constant for the store mode.
27913 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
27915 * symtab.c (change_decl_assembler_name): Fix transparent alias
27916 chain construction.
27918 2014-03-16 Renlin Li <Renlin.Li@arm.com>
27920 * config/aarch64/aarch64.c: Correct the comments about the
27921 aarch64 stack layout.
27923 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
27925 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
27926 check for GF_OMP_FOR_KIND_FOR.
27928 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
27930 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
27931 ymm and zmm register names.
27933 2014-03-17 Jakub Jelinek <jakub@redhat.com>
27936 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
27937 note creation for the 2010-08-31 changes.
27939 2014-03-17 Marek Polacek <polacek@redhat.com>
27941 PR middle-end/60534
27942 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
27943 as -fno-tree-loop-vectorize.
27944 (expand_omp_simd): Likewise.
27946 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
27948 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
27949 (eligible_for_call_delay): New prototype.
27950 * config/sparc/sparc.c (tls_call_delay): Rename into...
27951 (eligible_for_call_delay): ...this. Return false if the instruction
27952 cannot be put in the delay slot of a branch.
27953 (eligible_for_restore_insn): Simplify.
27954 (eligible_for_return_delay): Return false if the instruction cannot be
27955 put in the delay slot of a branch and simplify.
27956 (eligible_for_sibcall_delay): Return false if the instruction cannot be
27957 put in the delay slot of a branch.
27958 * config/sparc/sparc.md (fix_ut699): New attribute.
27959 (tls_call_delay): Delete.
27960 (in_call_delay): Reimplement.
27961 (eligible_for_sibcall_delay): Rename into...
27962 (in_sibcall_delay): ...this.
27963 (eligible_for_return_delay): Rename into...
27964 (in_return_delay): ...this.
27965 (in_branch_delay): Reimplement.
27966 (in_uncond_branch_delay): Delete.
27967 (in_annul_branch_delay): Delete.
27969 2014-03-14 Richard Henderson <rth@redhat.com>
27972 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
27973 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
27974 (*floathi<X87MODEF>2_i387_with_temp): Remove.
27975 (floathi splitters): Remove.
27976 (float<SWI48x>xf2): New pattern.
27977 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
27978 code that tried to handle DImode for 32-bit, but which was excluded
27979 by the pattern's condition. Drop allocation of stack temporary.
27980 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
27981 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
27982 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
27983 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
27984 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
27985 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
27986 (*float<SWI48><MODEF>2_sse_interunit): Remove.
27987 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
27988 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
27989 (*float<SWI48x><X87MODEF>2_i387): Remove.
27990 (all float _with_temp splitters): Remove.
27991 (*float<SWI48x><MODEF>2_i387): New pattern.
27992 (*float<SWI48><MODEF>2_sse): New pattern.
27993 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
27994 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
27996 2014-03-14 Jakub Jelinek <jakub@redhat.com>
27997 Marek Polacek <polacek@redhat.com>
27999 PR middle-end/60484
28000 * common.opt (dump_base_name_prefixed): New Variable.
28001 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
28002 if x_dump_base_name_prefixed is already set, set it at the end.
28004 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
28006 PR rtl-optimization/60508
28007 * lra-constraints.c (get_reload_reg): Add new parameter
28009 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
28010 Pass the new parameter values.
28012 2014-03-14 Richard Biener <rguenther@suse.de>
28014 * common.opt: Revert unintented changes from r205065.
28015 * opts.c: Likewise.
28017 2014-03-14 Richard Biener <rguenther@suse.de>
28019 PR middle-end/60518
28020 * cfghooks.c (split_block): Properly adjust all loops the
28021 block was a latch of.
28023 2014-03-14 Martin Jambor <mjambor@suse.cz>
28026 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
28029 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
28032 * config/avr/avr.c (avr_set_current_function): Pass function name
28033 through default_strip_name_encoding before sanity checking instead
28034 of skipping the first char of the assembler name.
28036 2014-03-13 Richard Henderson <rth@redhat.com>
28039 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
28040 (ix86_force_to_memory, ix86_free_from_memory): Remove.
28041 * config/i386/i386-protos.h: Likewise.
28042 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
28043 in the expander instead of a splitter.
28044 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
28045 any possibility of requiring a memory.
28046 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
28047 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
28048 (fp branch splitters): Update for ix86_split_fp_branch.
28049 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
28050 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
28051 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
28052 (*fop_<MODEF>_2_i387): Remove f/r alternative.
28053 (*fop_<MODEF>_3_i387): Likewise.
28054 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
28055 (splitters for the fop_* register patterns): Remove.
28056 (fscalexf4_i387): Rename from *fscalexf4_i387.
28057 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
28059 2014-03-13 Jakub Jelinek <jakub@redhat.com>
28061 PR tree-optimization/59779
28062 * tree-dfa.c (get_ref_base_and_extent): Use double_int
28063 type for bitsize and maxsize instead of HOST_WIDE_INT.
28065 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
28067 PR rtl-optimization/57320
28068 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
28069 the CFG after thread_prologue_and_epilogue_insns.
28071 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
28073 PR rtl-optimization/57189
28074 * lra-constraints.c (process_alt_operands): Disfavor spilling
28077 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
28079 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
28081 2014-03-13 Jakub Jelinek <jakub@redhat.com>
28083 PR tree-optimization/59025
28084 PR middle-end/60418
28085 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
28086 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
28088 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
28091 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
28092 calls of avr_out_plus_1.
28094 2014-03-13 Bin Cheng <bin.cheng@arm.com>
28096 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
28097 BB's single pred and update the father loop's latch info later.
28099 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
28101 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
28105 (VEC_base): Likewise.
28106 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
28107 registers, we need to swap double words in little endian mode.
28109 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
28110 to be a container mode for 128-bit integer operations added in ISA
28111 2.07. Unlike TImode and PTImode, the preferred register set is
28112 the Altivec/VMX registers for the 128-bit operations.
28114 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
28116 (rs6000_split_128bit_ok_p): Likewise.
28118 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
28119 macros for creating ISA 2.07 normal and overloaded builtin
28120 functions with 3 arguments.
28121 (BU_P8V_OVERLOAD_3): Likewise.
28122 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
28123 for use as overloaded functions.
28124 (VPERM_1TI_UNS): Likewise.
28125 (VSEL_1TI): Likewise.
28126 (VSEL_1TI_UNS): Likewise.
28127 (ST_INTERNAL_1ti): Likewise.
28128 (LD_INTERNAL_1ti): Likewise.
28129 (XXSEL_1TI): Likewise.
28130 (XXSEL_1TI_UNS): Likewise.
28131 (VPERM_1TI): Likewise.
28132 (VPERM_1TI_UNS): Likewise.
28133 (XXPERMDI_1TI): Likewise.
28134 (SET_1TI): Likewise.
28135 (LXVD2X_V1TI): Likewise.
28136 (STXVD2X_V1TI): Likewise.
28137 (VEC_INIT_V1TI): Likewise.
28138 (VEC_SET_V1TI): Likewise.
28139 (VEC_EXT_V1TI): Likewise.
28140 (EQV_V1TI): Likewise.
28141 (NAND_V1TI): Likewise.
28142 (ORC_V1TI): Likewise.
28143 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
28144 added in ISA 2.07. Add both normal 'altivec' builtins, and the
28145 overloaded builtin.
28146 (VADDUQM): Likewise.
28147 (VSUBCUQ): Likewise.
28148 (VADDEUQM): Likewise.
28149 (VADDECUQ): Likewise.
28150 (VSUBEUQM): Likewise.
28151 (VSUBECUQ): Likewise.
28153 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
28154 __int128_t and __uint128_t types.
28155 (__uint128_type): Likewise.
28156 (altivec_categorize_keyword): Add support for vector __int128_t,
28157 vector __uint128_t, vector __int128, and vector unsigned __int128
28158 as a container type for TImode operations that need to be done in
28159 VSX/Altivec registers.
28160 (rs6000_macro_to_expand): Likewise.
28161 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
28162 to support 128-bit integer instructions vaddcuq, vadduqm,
28163 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
28164 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
28166 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
28167 for V1TImode, and set up preferences to use VSX/Altivec registers.
28168 Setup VSX reload handlers.
28169 (rs6000_debug_reg_global): Likewise.
28170 (rs6000_init_hard_regno_mode_ok): Likewise.
28171 (rs6000_preferred_simd_mode): Likewise.
28172 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
28173 (easy_altivec_constant): Likewise.
28174 (output_vec_const_move): Likewise.
28175 (rs6000_expand_vector_set): Convert V1TImode set and extract to
28177 (rs6000_expand_vector_extract): Likewise.
28178 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
28180 (rs6000_const_vec): Add support for V1TImode.
28181 (rs6000_emit_le_vsx_load): Swap double words when loading or
28182 storing TImode/V1TImode.
28183 (rs6000_emit_le_vsx_store): Likewise.
28184 (rs6000_emit_le_vsx_move): Likewise.
28185 (rs6000_emit_move): Add support for V1TImode.
28186 (altivec_expand_ld_builtin): Likewise.
28187 (altivec_expand_st_builtin): Likewise.
28188 (altivec_expand_vec_init_builtin): Likewise.
28189 (altivec_expand_builtin): Likewise.
28190 (rs6000_init_builtins): Add support for V1TImode type. Add
28191 support for ISA 2.07 128-bit integer builtins. Define type names
28192 for the VSX/Altivec vector types.
28193 (altivec_init_builtins): Add support for overloaded vector
28194 functions with V1TImode type.
28195 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
28196 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
28198 (rs6000_split_128bit_ok_p): Likewise.
28199 (rs6000_handle_altivec_attribute): Create V1TImode from vector
28200 __int128_t and vector __uint128_t.
28202 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
28203 and mode attributes.
28205 (VSX_M2): Likewise.
28210 (VS_scalar): Likewise.
28211 (VS_double): Likewise.
28212 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
28214 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
28215 we support the ISA 2.07 128-bit integer arithmetic instructions.
28216 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
28217 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
28218 and TImode types for use with the builtin functions.
28219 (V1TI_type_node): Likewise.
28220 (unsigned_V1TI_type_node): Likewise.
28221 (intTI_type_internal_node): Likewise.
28222 (uintTI_type_internal_node): Likewise.
28224 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
28225 128-bit builtin functions.
28226 (UNSPEC_VADDEUQM): Likewise.
28227 (UNSPEC_VADDECUQ): Likewise.
28228 (UNSPEC_VSUBCUQ): Likewise.
28229 (UNSPEC_VSUBEUQM): Likewise.
28230 (UNSPEC_VSUBECUQ): Likewise.
28231 (VM): Add V1TImode to vector mode iterators.
28233 (VI_unit): Likewise.
28234 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
28235 (altivec_vaddcuq): Likewise.
28236 (altivec_vsubuqm): Likewise.
28237 (altivec_vsubcuq): Likewise.
28238 (altivec_vaddeuqm): Likewise.
28239 (altivec_vaddecuq): Likewise.
28240 (altivec_vsubeuqm): Likewise.
28241 (altivec_vsubecuq): Likewise.
28243 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
28245 (BOOL_128): Likewise.
28246 (BOOL_REGS_OUTPUT): Likewise.
28247 (BOOL_REGS_OP1): Likewise.
28248 (BOOL_REGS_OP2): Likewise.
28249 (BOOL_REGS_UNARY): Likewise.
28250 (BOOL_REGS_AND_CR0): Likewise.
28252 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
28253 128-bit integer builtin support.
28254 (vec_vadduqm): Likewise.
28255 (vec_vaddecuq): Likewise.
28256 (vec_vaddeuqm): Likewise.
28257 (vec_vsubecuq): Likewise.
28258 (vec_vsubeuqm): Likewise.
28259 (vec_vsubcuq): Likewise.
28260 (vec_vsubuqm): Likewise.
28262 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
28263 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
28264 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
28265 128-bit integer add/subtract to ISA 2.07.
28267 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
28269 * config/arc/arc.c (arc_predicate_delay_insns):
28270 Fix third argument passed to conditionalize_nonjump.
28272 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
28274 * config/aarch64/aarch64-builtins.c
28275 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
28276 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
28277 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
28278 instead of __builtin_lfloor.
28279 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
28281 2014-03-12 Jakub Jelinek <jakub@redhat.com>
28283 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
28284 (tree_ssa_ifcombine_bb_1): New function.
28285 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
28286 is an empty forwarder block to then_bb or vice versa and then_bb
28287 and else_bb are effectively swapped.
28289 2014-03-12 Christian Bruel <christian.bruel@st.com>
28292 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
28293 REG_CFA_DEF_CFA note.
28294 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
28295 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
28297 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
28299 PR tree-optimization/60454
28300 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
28302 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28304 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
28305 Do not define target_cpu_default2 to generic.
28306 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
28307 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
28308 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
28310 2014-03-12 Jakub Jelinek <jakub@redhat.com>
28311 Marc Glisse <marc.glisse@inria.fr>
28313 PR tree-optimization/60502
28314 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
28315 instead of build_low_bits_mask.
28317 2014-03-12 Jakub Jelinek <jakub@redhat.com>
28319 PR middle-end/60482
28320 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
28321 if there are multiple uses, but op doesn't live on E edge.
28322 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
28323 clobber stmts before __builtin_unreachable.
28325 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
28327 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
28328 hard_frame_pointer_rtx.
28329 * cse.c (cse_insn): Remove volatile check.
28330 * cselib.c (cselib_process_insn): Likewise.
28331 * dse.c (scan_insn): Likewise.
28333 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
28335 * config/arc/arc.c (conditionalize_nonjump): New function,
28337 (arc_ifcvt): ... this.
28338 (arc_predicate_delay_insns): Use it.
28340 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
28342 * config/arc/predicates.md (extend_operand): During/after reload,
28343 allow const_int_operand.
28344 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
28345 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
28346 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
28348 (umulsi3_highpart_i): Likewise.
28350 2014-03-11 Richard Biener <rguenther@suse.de>
28352 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
28353 Add asserts to guard possible wrong-code bugs.
28355 2014-03-11 Richard Biener <rguenther@suse.de>
28357 PR tree-optimization/60429
28358 PR tree-optimization/60485
28359 * tree-ssa-structalias.c (set_union_with_increment): Properly
28360 take into account all fields that overlap the shifted vars.
28361 (do_sd_constraint): Likewise.
28362 (do_ds_constraint): Likewise.
28363 (get_constraint_for_ptr_offset): Likewise.
28365 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
28367 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
28368 (nios2_compute_frame_layout):
28369 Add calculation of cfun->machine->fp_save_offset.
28370 (nios2_expand_prologue): Correct setting of frame pointer register
28372 (nios2_expand_epilogue): Update recovery of stack pointer from
28373 frame pointer accordingly.
28374 (nios2_initial_elimination_offset): Update calculation of offset
28375 for eliminating to HARD_FRAME_POINTER_REGNUM.
28377 2014-03-10 Jakub Jelinek <jakub@redhat.com>
28380 * ipa.c (symtab_remove_unreachable_nodes): Don't call
28381 cgraph_get_create_node on VAR_DECLs.
28383 2014-03-10 Richard Biener <rguenther@suse.de>
28385 PR middle-end/60474
28386 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
28388 2014-03-08 Douglas B Rupp <rupp@gnat.com>
28390 * config/vms/vms.opt (vms_float_format): New variable.
28392 2014-03-08 Tobias Burnus <burnus@net-b.de>
28394 * doc/invoke.texi (-fcilkplus): Update implementation status.
28396 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
28397 Richard Biener <rguenther@suse.de>
28399 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
28400 consistently accross all TUs.
28401 (run_gcc): Enable -fshort-double automatically at link at link-time
28402 and disallow override.
28404 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
28407 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
28408 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
28409 if they can't be used.
28411 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28413 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
28414 for Solaris 11/x86 ld.
28415 * configure: Regenerate.
28417 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28419 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
28420 (LIB_TLS_SPEC): Save as ld_tls_libs.
28421 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
28422 (HAVE_AS_IX86_TLSLDM): New test.
28423 * configure, config.in: Regenerate.
28424 * config/i386/i386.c (legitimize_tls_address): Fall back to
28425 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
28426 cannot support TLS_MODEL_LOCAL_DYNAMIC.
28427 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
28428 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
28430 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
28432 * common.opt (fira-loop-pressure): Mark as optimization.
28434 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
28436 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
28437 an OpenMP mappable type.
28439 2014-03-06 Matthias Klose <doko@ubuntu.com>
28441 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
28442 MULTILIB_OSDIRNAMES is not defined.
28444 2014-03-06 Jakub Jelinek <jakub@redhat.com>
28445 Meador Inge <meadori@codesourcery.com>
28448 * config/arm/arm.c (arm_tls_symbol_p): Remove.
28449 (arm_legitimize_address): Call legitimize_tls_address for any
28450 arm_tls_referenced_p expression, handle constant addend. Call it
28451 before testing for !TARGET_ARM.
28452 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
28454 2014-03-06 Richard Biener <rguenther@suse.de>
28456 PR middle-end/60445
28460 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
28462 * tree-streamer.c (record_common_node): Assert we don't record
28463 nodes with type double.
28464 (preload_common_node): Skip type double, complex double and double
28465 pointer since it is now frontend dependent due to fshort-double option.
28467 2014-03-06 Richard Biener <rguenther@suse.de>
28469 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
28470 or -fno-lto is specified and the linker has full plugin support.
28471 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
28472 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
28473 * lto-wrapper.c (merge_and_complain): Merge compile-time
28474 optimization levels.
28475 (run_gcc): And pass it through to the link options.
28477 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
28481 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
28483 * cselib.c (remove_useless_values): Skip to avoid quadratic
28484 behavior if the condition moved from...
28485 (cselib_process_insn): ... here holds.
28487 2014-03-05 Jakub Jelinek <jakub@redhat.com>
28490 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
28491 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
28494 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
28495 (TM_H): Add x86-tune.def.
28497 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28499 * config/aarch64/aarch64.c (generic_tunings):
28500 Use cortexa57_extra_costs.
28502 2014-03-05 Jakub Jelinek <jakub@redhat.com>
28505 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
28506 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
28507 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
28510 2014-03-04 Heiher <r@hev.cc>
28512 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
28513 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
28515 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
28517 * config/i386/predicates.md (const2356_operand): Change to ...
28518 (const2367_operand): ... this.
28519 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
28521 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28522 (*avx512pf_scatterpf<mode>sf): Ditto.
28523 (avx512pf_scatterpf<mode>df): Ditto.
28524 (*avx512pf_scatterpf<mode>df_mask): Ditto.
28525 (*avx512pf_scatterpf<mode>df): Ditto.
28526 * config/i386/i386.c (ix86_expand_builtin): Update
28527 incorrect hint operand error message.
28529 2014-03-04 Richard Biener <rguenther@suse.de>
28531 * lto-section-in.c (lto_get_section_data): Fix const cast.
28533 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
28535 * tree-streamer.c (record_common_node): Assert we don't record
28536 nodes with type double.
28537 (preload_common_node): Skip type double, complex double and double
28538 pointer since it is now frontend dependent due to fshort-double option.
28540 2014-03-04 Richard Biener <rguenther@suse.de>
28543 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
28544 (lto_input_toplevel_asms): Likewise.
28545 * lto-section-in.c (lto_get_section_data): Instead do it here
28548 2014-03-04 Richard Biener <rguenther@suse.de>
28550 PR tree-optimization/60382
28551 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
28552 dead PHIs a reduction.
28554 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
28556 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
28558 (_mm_prefetch): Move out of GCC target("sse") pragma.
28559 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
28560 GCC target("prfchw") pragma.
28561 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
28563 * config/i386/i386.c (ix86_option_override_internal): Enable
28564 -mprfchw with -mprefetchwt1.
28566 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
28568 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
28571 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
28573 * opts.h (CL_PCH_IGNORE): Define.
28574 * targhooks.c (option_affects_pch_p):
28575 Return false for options that have CL_PCH_IGNORE set.
28576 * opt-functions.awk: Process PchIgnore.
28577 * doc/options.texi: Document PchIgnore.
28579 * config/arc/arc.opt (misize): Add PchIgnore property.
28581 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28583 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
28584 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
28585 constraint on constants to permit them being loaded into
28586 GENERAL_REGS or BASE_REGS.
28588 2014-03-03 Nick Clifton <nickc@redhat.com>
28590 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
28591 anti-cacnonical alternatives.
28592 (negandhi3_real): New pattern.
28593 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
28595 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
28597 * config/avr/avr-mcus.def: Remove atxmega16x1.
28598 * config/avr/avr-tables.opt: Regenerate.
28599 * config/avr/t-multilib: Regenerate.
28600 * doc/avr-mmcu.texi: Regenerate.
28602 2014-03-03 Tobias Grosser <tobias@grosser.es>
28603 Mircea Namolaru <mircea.namolaru@inria.fr>
28605 PR tree-optimization/58028
28606 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
28609 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28611 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
28612 not handled by recognizers.
28614 2014-03-03 Jakub Jelinek <jakub@redhat.com>
28616 PR middle-end/60175
28617 * function.c (expand_function_end): Don't emit
28618 clobber_return_register sequence if clobber_after is a BARRIER.
28619 * cfgexpand.c (construct_exit_block): Append instructions before
28620 return_label to prev_bb.
28622 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28624 * config/rs6000/constraints.md: Document reserved use of "wc".
28626 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
28629 * ipa.c (function_and_variable_visibility): When dissolving comdat
28630 group, also set all symbols to local.
28632 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
28637 2013-12-14 Jan Hubicka <jh@suse.cz>
28638 PR middle-end/58477
28639 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
28641 2014-03-02 Jon Beniston <jon@beniston.com>
28647 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
28648 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
28649 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
28650 (simple_return, *simple_return): New patterns
28651 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
28652 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
28654 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
28656 * dwarf2out.c (gen_subprogram_die): Tidy.
28658 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
28661 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
28662 (*mov_t_msb_neg_negc): ... this new insn.
28664 2014-02-28 Jason Merrill <jason@redhat.com>
28667 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
28670 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
28673 * dwarf2out.c (decltype_auto_die): New static.
28674 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
28675 (gen_type_die_with_usage): Handle 'decltype(auto)'.
28676 (is_cxx_auto): Likewise.
28678 2014-02-28 Ian Bolton <ian.bolton@arm.com>
28680 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
28681 we are not using general regs only.
28683 2014-02-28 Richard Biener <rguenther@suse.de>
28686 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
28687 previous fix and only allow to remove trivial pre-headers
28688 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
28689 (remove_forwarder_block): Properly update the latch of a loop.
28691 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
28694 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
28695 (cselib_preserved_hash_table): New.
28696 (preserve_constants_and_equivs): Move preserved vals to it.
28697 (cselib_find_slot): Look it up first.
28698 (cselib_init): Initialize it.
28699 (cselib_finish): Release it.
28700 (dump_cselib_table): Dump it.
28702 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
28705 * cselib.c (remove_useless_values): Skip to avoid quadratic
28706 behavior if the condition moved from...
28707 (cselib_process_insn): ... here holds.
28709 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
28712 * var-tracking.c (vt_initialize): Apply the same condition to
28713 preserve the CFA base value.
28715 2014-02-28 Joey Ye <joey.ye@arm.com>
28718 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
28719 if reload in progress or completed.
28721 2014-02-28 Tobias Burnus <burnus@net-b.de>
28723 PR middle-end/60147
28724 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
28727 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
28729 * doc/tm.texi.in (Condition Code Status): Update documention for
28730 relative locations of cc0-setter and cc0-user.
28732 2014-02-27 Jeff Law <law@redhat.com>
28734 PR rtl-optimization/52714
28735 * combine.c (try_combine): When splitting an unrecognized PARALLEL
28736 into two independent simple sets, if I3 is a jump, ensure the
28737 pattern we place into I3 is a (set (pc) ...).
28739 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
28740 Jeff Law <law@redhat.com>
28742 PR rtl-optimization/49847
28743 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
28744 are in different blocks.
28745 * doc/tm.texi (Condition Code Status): Update documention for
28746 relative locations of cc0-setter and cc0-user.
28748 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
28751 * lra.c (lra_emit_add): Check SUBREG too.
28753 2014-02-27 Andreas Schwab <schwab@suse.de>
28755 * config/m68k/m68k.c (m68k_option_override): Disable
28756 -flive-range-shrinkage for classic m68k.
28757 (m68k_override_options_after_change): Likewise.
28759 2014-02-27 Marek Polacek <polacek@redhat.com>
28761 PR middle-end/59223
28762 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
28763 -Wmaybe-uninitialized.
28765 2014-02-27 Alan Modra <amodra@gmail.com>
28768 * reload1.c (emit_input_reload_insns): When reload_override_in,
28769 set old to rl->in_reg when rl->in_reg is a subreg.
28771 2014-02-26 Richard Biener <rguenther@suse.de>
28774 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
28776 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
28778 * common/config/i386/predicates.md (const1256_operand): Remove.
28779 (const2356_operand): New.
28780 (const_1_to_2_operand): Remove.
28781 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
28782 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28783 (*avx512pf_gatherpf<mode>sf): Ditto.
28784 (avx512pf_gatherpf<mode>df): Ditto.
28785 (*avx512pf_gatherpf<mode>df_mask): Ditto.
28786 (*avx512pf_gatherpf<mode>df): Ditto.
28787 (avx512pf_scatterpf<mode>sf): Ditto.
28788 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28789 (*avx512pf_scatterpf<mode>sf): Ditto.
28790 (avx512pf_scatterpf<mode>df): Ditto.
28791 (*avx512pf_scatterpf<mode>df_mask): Ditto.
28792 (*avx512pf_scatterpf<mode>df): Ditto.
28793 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
28795 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
28797 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
28798 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
28799 (_mm512_mask_testn_epi64_mask): Move to ...
28800 * config/i386/avx512cdintrin.h: Here.
28801 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
28802 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
28803 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
28804 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
28805 TARGET_AVX512F from TARGET_AVX512CD.
28807 2014-02-26 Richard Biener <rguenther@suse.de>
28810 * ipa.c (walk_polymorphic_call_targets): Properly guard
28811 call to inline_update_overall_summary.
28813 2014-02-26 Bin Cheng <bin.cheng@arm.com>
28816 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
28817 and latches only if requested. Fix latch if it is removed.
28818 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
28819 LOOPS_HAVE_PREHEADERS.
28821 2014-02-25 Andrew Pinski <apinski@cavium.com>
28823 * builtins.c (expand_builtin_thread_pointer): Create a new target
28824 when the target is NULL.
28826 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
28828 PR rtl-optimization/60317
28829 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
28830 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
28831 * lra-assigns.c: Include params.h.
28832 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
28833 other reload pseudos considerations.
28835 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28837 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
28838 to use canonical form for nor<mode>3.
28840 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28843 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
28846 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
28848 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
28849 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
28850 (ix86_handle_option): Handle OPT_mprefetchwt1.
28851 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
28852 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
28854 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28855 OPTION_MASK_ISA_PREFETCHWT1.
28856 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
28857 (PTA_PREFETCHWT1): New.
28858 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
28859 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
28860 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
28861 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
28862 (*prefetch_avx512pf_<mode>_: Change into ...
28863 (*prefetch_prefetchwt1_<mode>: This.
28864 * config/i386/i386.opt (mprefetchwt1): New.
28865 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
28866 (_mm_prefetch): Handle intent to write.
28867 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
28869 2014-02-25 Richard Biener <rguenther@suse.de>
28871 PR middle-end/60291
28872 * emit-rtl.c (mem_attrs_htab): Remove.
28873 (mem_attrs_htab_hash): Likewise.
28874 (mem_attrs_htab_eq): Likewise.
28875 (set_mem_attrs): Always allocate new mem-attrs when something changed.
28876 (init_emit_once): Do not allocate mem_attrs_htab.
28878 2014-02-25 Richard Biener <rguenther@suse.de>
28881 * lto-opts.c (lto_write_options): Output non-explicit conservative
28882 -fwrapv, -fno-trapv and -fno-strict-overflow.
28883 * lto-wrapper.c (merge_and_complain): Handle merging those options.
28884 (run_gcc): And pass them through.
28886 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
28888 * sel-sched.c (calculate_new_fences): New parameter ptime.
28889 Calculate it as a maximum over all fence cycles.
28890 (sel_sched_region_2): Adjust the call to calculate_new_fences.
28891 Print the final schedule timing when sched_verbose.
28893 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
28895 PR rtl-optimization/60292
28896 * sel-sched.c (fill_vec_av_set): Do not reset target availability
28897 bit fot the fence instruction.
28899 2014-02-24 Alangi Derick <alangiderick@gmail.com>
28901 * calls.h: Fix typo in comment.
28903 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
28905 * config/pa/pa.c (pa_output_move_double): Don't valididate when
28906 adjusting offsetable addresses.
28908 2014-02-24 Guozhi Wei <carrot@google.com>
28910 * sparseset.h (sparseset_pop): Fix the wrong index.
28912 2014-02-24 Walter Lee <walt@tilera.com>
28914 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
28915 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
28917 * common/config/tilegx/tilegx-common.c
28918 (TARGET_DEFAULT_TARGET_FLAGS): Define.
28919 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
28920 (LINK_SPEC): Ditto.
28921 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
28922 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
28923 (tilegx_gimplify_va_arg_expr): Handle big endian.
28924 (tilegx_expand_unaligned_load): Ditto.
28925 (tilegx_expand_unaligned_store): Ditto.
28926 (TARGET_RETURN_IN_MSB): New.
28927 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
28928 (TARGET_ENDIAN_DEFAULT): New.
28929 (TARGET_BIG_ENDIAN): Handle big endian.
28930 (BYTES_BIG_ENDIAN): Ditto.
28931 (WORDS_BIG_ENDIAN): Ditto.
28932 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
28933 (ENDIAN_SPEC): New.
28934 (EXTRA_SPECS): New.
28935 * config/tilegx/tilegx.md (extv): Handle big endian.
28937 (insn_st<n>): Ditto.
28938 (insn_st<n>_add<bitsuffix>): Ditto.
28939 (insn_stnt<n>): Ditto.
28940 (insn_stnt<n>_add<bitsuffix>):Ditto.
28941 (vec_interleave_highv8qi): Handle big endian.
28942 (vec_interleave_highv8qi_be): New.
28943 (vec_interleave_highv8qi_le): New.
28944 (insn_v1int_h): Handle big endian.
28945 (vec_interleave_lowv8qi): Handle big endian.
28946 (vec_interleave_lowv8qi_be): New.
28947 (vec_interleave_lowv8qi_le): New.
28948 (insn_v1int_l): Handle big endian.
28949 (vec_interleave_highv4hi): Handle big endian.
28950 (vec_interleave_highv4hi_be): New.
28951 (vec_interleave_highv4hi_le): New.
28952 (insn_v2int_h): Handle big endian.
28953 (vec_interleave_lowv4hi): Handle big endian.
28954 (vec_interleave_lowv4hi_be): New.
28955 (vec_interleave_lowv4hi_le): New.
28956 (insn_v2int_l): Handle big endian.
28957 (vec_interleave_highv2si): Handle big endian.
28958 (vec_interleave_highv2si_be): New.
28959 (vec_interleave_highv2si_le): New.
28960 (insn_v4int_h): Handle big endian.
28961 (vec_interleave_lowv2si): Handle big endian.
28962 (vec_interleave_lowv2si_be): New.
28963 (vec_interleave_lowv2si_le): New.
28964 (insn_v4int_l): Handle big endian.
28965 * config/tilegx/tilegx.opt (mbig-endian): New option.
28966 (mlittle-endian): New option.
28967 * doc/install.texi: Document tilegxbe-linux.
28968 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
28970 2014-02-24 Martin Jambor <mjambor@suse.cz>
28973 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
28974 there are no parameter descriptors.
28976 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
28978 PR rtl-optimization/60268
28979 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
28980 initialization to ...
28981 (sched_rgn_init): ... here.
28982 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
28984 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
28986 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
28989 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
28991 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
28994 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
28996 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
28997 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
28999 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
29001 * config/microblaze/predicates.md: Add cmp_op predicate.
29002 * config/microblaze/microblaze.md: Add branch_compare instruction
29003 which uses cmp_op predicate and emits cmp insn before branch.
29004 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
29005 to microblaze_expand_conditional_branch and consolidate logic.
29006 (microblaze_expand_conditional_branch): emit branch_compare
29007 insn instead of handling cmp op separate from branch insn.
29009 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29011 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
29014 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29016 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
29017 define_insn with define_expand and new define_insn
29018 *altivec_lve<VI_char>x_internal.
29019 (altivec_stve<VI_char>x): Replace define_insn with define_expand
29020 and new define_insn *altivec_stve<VI_char>x_internal.
29021 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
29023 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
29025 (altivec_expand_stvex_be): New function.
29027 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
29029 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
29030 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
29031 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
29032 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
29034 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
29037 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
29038 instead of emit_move_insn.
29040 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29042 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
29043 vspltw with vsldoi.
29044 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
29045 gen_altivec_vsumsws.
29047 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29049 * config/rs6000/altivec.md (altivec_lvxl): Rename as
29050 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
29051 (altivec_lvxl_<mode>): New define_expand incorporating
29052 -maltivec=be semantics where needed.
29053 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
29054 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
29055 semantics where needed.
29056 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
29057 (altivec_stvx_<mode>): New define_expand incorporating
29058 -maltivec=be semantics where needed.
29059 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
29060 VM2 iterator instead of V4SI.
29061 (altivec_stvxl_<mode>): New define_expand incorporating
29062 -maltivec=be semantics where needed.
29063 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
29064 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
29065 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
29066 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
29067 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
29068 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
29069 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
29070 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
29071 ALTIVEC_BUILTIN_STVXL.
29072 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
29073 (altivec_expand_stvx_be): Likewise.
29074 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
29075 (altivec_expand_lvx_be): Likewise.
29076 (altivec_expand_stvx_be): Likewise.
29077 (altivec_expand_builtin): Add cases for
29078 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
29079 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
29080 (altivec_init_builtins): Add definitions for
29081 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
29082 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
29084 2014-02-21 Catherine Moore <clm@codesourcery.com>
29086 * doc/invoke.texi (mvirt, mno-virt): Document.
29087 * config/mips/mips.opt (mvirt): New option.
29088 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
29090 2014-02-21 Richard Biener <rguenther@suse.de>
29092 PR tree-optimization/60276
29093 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
29094 (STMT_VINFO_MIN_NEG_DIST): New macro.
29095 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
29096 STMT_VINFO_MIN_NEG_DIST.
29097 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
29098 made for negative dependence distances still hold.
29100 2014-02-21 Richard Biener <rguenther@suse.de>
29102 PR middle-end/60291
29103 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
29104 DECL_INITIAL for globals not in the current function context.
29106 2014-02-21 Jakub Jelinek <jakub@redhat.com>
29108 PR tree-optimization/56490
29109 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
29110 * tree-ssa-uninit.c: Include params.h.
29111 (compute_control_dep_chain): Add num_calls argument, return false
29112 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
29113 num_calls to recursive call.
29114 (find_predicates): Change dep_chain into normal array,
29115 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
29116 variable and adjust compute_control_dep_chain caller.
29117 (find_def_preds): Likewise.
29119 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
29121 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
29122 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
29124 2014-02-21 Nick Clifton <nickc@redhat.com>
29126 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
29127 (pushhi1): Likewise.
29128 (popqi1): Add mode to pre_dec.
29129 (pophi1): Likewise.
29131 2014-02-21 Jakub Jelinek <jakub@redhat.com>
29133 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
29134 mode for mask of V8SFmode permutation.
29136 2014-02-20 Richard Henderson <rth@redhat.com>
29139 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
29140 a new pseudo for OLDVAL.
29142 2014-02-20 Jakub Jelinek <jakub@redhat.com>
29145 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
29146 gen_reg_rtx if d->testing_p.
29147 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
29148 if d->testing_p and we will certainly return true.
29149 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
29152 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
29154 * emit-rtl.c (gen_reg_rtx): Assert that
29155 crtl->emit.regno_pointer_align_length is non-zero.
29157 2014-02-20 Richard Henderson <rth@redhat.com>
29160 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
29161 on failure the store back into EXPECT.
29163 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
29164 Sandra Loosemore <sandra@codesourcery.com>
29166 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
29167 * config/nios2/nios2.c (nios2_function_profiler): Add
29168 -fPIC (flag_pic == 2) support.
29169 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
29170 (nios2_large_offset_p): New function.
29171 (nios2_unspec_reloc_p): Move up position, update to use
29172 nios2_large_offset_p.
29173 (nios2_unspec_address): Remove function.
29174 (nios2_unspec_offset): New function.
29175 (nios2_large_got_address): New function.
29176 (nios2_got_address): Add large offset support.
29177 (nios2_legitimize_tls_address): Update usage of removed and new
29179 (nios2_symbol_binds_local_p): New function.
29180 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
29181 (nios2_legitimize_address): Update to use nios2_large_offset_p.
29182 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
29183 (nios2_print_operand): Merge H/L processing, add hiadj/lo
29184 processing for (const (unspec ...)).
29185 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
29187 2014-02-20 Richard Biener <rguenther@suse.de>
29189 * tree-cfg.c (replace_uses_by): Mark altered BBs before
29190 doing the substitution.
29191 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
29193 2014-02-20 Martin Jambor <mjambor@suse.cz>
29196 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
29197 info when checking whether lattices are bottom.
29199 2014-02-20 Richard Biener <rguenther@suse.de>
29201 PR middle-end/60221
29202 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
29205 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
29208 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
29209 parameter specifying the scaling.
29210 (inline_call): Update.
29211 (want_inline_recursively): Guard division by zero.
29212 (recursive_inlining): Update.
29213 * ipa-inline.h (clone_inlined_nodes): Update.
29215 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
29218 * config/i386/i386.c (classify_argument): Pass structures of size
29219 64 bytes or less in register.
29221 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
29222 Kirill Yukhin <kirill.yukhin@intel.com>
29224 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
29225 (_mm_rcp28_round_ss): Ditto.
29226 (_mm_rsqrt28_round_sd): Ditto.
29227 (_mm_rsqrt28_round_ss): Ditto.
29228 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
29229 (_mm_rcp14_round_ss): Ditto.
29230 (_mm_rsqrt14_round_sd): Ditto.
29231 (_mm_rsqrt14_round_ss): Ditto.
29232 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
29233 the first input operand, get rid of match_dup.
29234 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
29236 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
29238 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
29239 operand as the first input operand, set type attribute.
29240 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
29241 Set type attribute.
29242 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
29243 operand as the first input operand, set type attribute.
29245 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29247 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
29250 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
29253 * config/i386/i386.c (construct_container): Remove TFmode check
29254 for X86_64_INTEGER_CLASS.
29256 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
29259 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
29260 only when -Wpsabi is enabled.
29262 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
29265 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
29266 passing arrays in registers are the same as for structs, so remove the
29267 special case for them.
29269 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
29271 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
29272 destination type, extract only the valid bits if the source type is not
29273 integral and has a different mode.
29275 2014-02-19 Richard Biener <rguenther@suse.de>
29278 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
29281 2014-02-19 Richard Biener <rguenther@suse.de>
29284 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
29285 (ipa_modify_call_arguments): Emit an argument load explicitely and
29286 preserve virtual SSA form there and for the replacement call.
29287 Do not update SSA form nor free dominance info.
29289 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
29291 * ipa.c (function_and_variable_visibility): Also clear WEAK
29292 flag when disolving COMDAT_GROUP.
29294 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
29296 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
29297 * ipa-prop.c (ipa_set_jf_known_type): Return early when
29298 not devirtualizing.
29299 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
29300 do more sanity checks.
29301 (detect_type_change): Return true when giving up early.
29302 (compute_complex_assign_jump_func): Fix type parameter of
29303 ipa_set_ancestor_jf.
29304 (compute_complex_ancestor_jump_func): Likewise.
29305 (update_jump_functions_after_inlining): Fix updating of
29307 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
29309 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
29311 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
29312 inline clones when edge disappears.
29314 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
29317 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
29318 Split 64-bit moves into 2 patterns. Do not allow the use of
29319 direct move for TDmode in little endian, since the decimal value
29320 has little endian bytes within a word, but the 64-bit pieces are
29321 ordered in a big endian fashion, and normal subreg's of TDmode are
29323 (mov<mode>_64bit_dm): Likewise.
29324 (movtd_64bit_nodm): Likewise.
29326 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
29328 PR tree-optimization/60174
29329 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
29330 statement of an SSA_NAME that occurs in an abnormal PHI node.
29332 2014-02-18 Jakub Jelinek <jakub@redhat.com>
29335 * final.c (SEEN_BB): Remove.
29336 (SEEN_NOTE, SEEN_EMITTED): Renumber.
29337 (final_scan_insn): Don't force_source_line on second
29338 NOTE_INSN_BASIC_BLOCK.
29340 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
29343 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
29344 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
29345 (type_natural_mode): Warn ABI change when %zmm register is not
29346 available for AVX512F vector value passing.
29348 2014-02-18 Kai Tietz <ktietz@redhat.com>
29351 * config/i386/i386.c (ix86_expand_prologue): Use value in
29352 rax register as displacement when restoring %r10 or %rax.
29353 Fix wrong offset when restoring both registers.
29355 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
29357 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
29358 assertion with conditional return.
29360 2014-02-18 Jakub Jelinek <jakub@redhat.com>
29361 Uros Bizjak <ubizjak@gmail.com>
29364 * config/i386/driver-i386.c (host_detect_local_cpu): If
29365 YMM state is not saved by the OS, also clear has_f16c. Move
29366 CPUID 0x80000001 handling before YMM state saving checking.
29368 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
29370 PR rtl-optimization/58960
29371 * haifa-sched.c (alloc_global_sched_pressure_data): New,
29372 factored out from ...
29373 (sched_init): ... here.
29374 (free_global_sched_pressure_data): New, factored out from ...
29375 (sched_finish): ... here.
29376 * sched-int.h (free_global_sched_pressure_data): Declare.
29377 * sched-rgn.c (nr_regions_initial): New static global.
29378 (haifa_find_rgns): Initialize it.
29379 (schedule_region): Disable sched-pressure for the newly
29382 2014-02-17 Richard Biener <rguenther@suse.de>
29384 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
29385 release SSA defs of pattern stmts.
29387 2014-02-17 Richard Biener <rguenther@suse.de>
29389 * tree-inline.c (expand_call_inline): Release the virtual
29390 operand defined by the call we are about to inline.
29392 2014-02-17 Richard Biener <rguenther@suse.de>
29394 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
29396 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
29397 Ilya Tocar <ilya.tocar@intel.com>
29399 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
29400 arguments order in builtin.
29401 (_mm512_permutexvar_epi64): Ditto.
29402 (_mm512_mask_permutexvar_epi64): Ditto
29403 (_mm512_maskz_permutexvar_epi32): Ditto
29404 (_mm512_permutexvar_epi32): Ditto
29405 (_mm512_mask_permutexvar_epi32): Ditto
29407 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29409 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
29410 (p8_vmrgow): Likewise.
29412 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29414 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
29417 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
29420 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
29421 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
29422 into 64-bit and 32-bit moves. On 64-bit moves, add support for
29423 using direct move instructions on ISA 2.07. Also adjust
29424 instruction length for 64-bit.
29425 (mov<mode>_64bit, TFmode/TDmode): Likewise.
29426 (mov<mode>_32bit, TFmode/TDmode): Likewise.
29428 2014-02-15 Alan Modra <amodra@gmail.com>
29432 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
29433 find_replacement on parts of insn rtl that might be reloaded.
29435 2014-02-15 Richard Biener <rguenther@suse.de>
29437 PR tree-optimization/60183
29438 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
29439 (tree_ssa_phiprop): Calculate and free post-dominators.
29441 2014-02-14 Jeff Law <law@redhat.com>
29443 PR rtl-optimization/60131
29444 * ree.c (get_extended_src_reg): New function.
29445 (combine_reaching_defs): Use it rather than assuming location of REG.
29446 (find_and_remove_re): Verify first operand of extension is
29447 a REG before adding the insns to the copy list.
29449 2014-02-14 Roland McGrath <mcgrathr@google.com>
29451 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
29452 * configure: Regenerated.
29453 * config.in: Regenerated.
29454 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
29455 instead of ASM_SHORT.
29457 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
29458 Richard Earnshaw <rearnsha@arm.com>
29460 PR rtl-optimization/59535
29461 * lra-constraints.c (process_alt_operands): Encourage alternative
29462 when unassigned pseudo class is superset of the alternative class.
29463 (inherit_reload_reg): Don't inherit when optimizing for code size.
29464 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
29465 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
29466 modes not less than 4 for Thumb1.
29468 2014-02-14 Kyle McMartin <kyle@redhat.com>
29471 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
29473 2014-02-14 Richard Biener <rguenther@suse.de>
29475 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
29476 (get_frame_arg): Drop the assert with langhook types_compatible_p.
29477 Do not strip INDIRECT_REFs.
29479 2014-02-14 Richard Biener <rguenther@suse.de>
29482 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
29483 DECL_FUNCTION_SPECIFIC_TARGET.
29484 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
29485 * tree-streamer-out.c (pack_ts_target_option): Remove.
29486 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
29487 (write_ts_function_decl_tree_pointers): Do not stream
29488 DECL_FUNCTION_SPECIFIC_TARGET.
29489 * tree-streamer-in.c (unpack_ts_target_option): Remove.
29490 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
29491 (lto_input_ts_function_decl_tree_pointers): Do not stream
29492 DECL_FUNCTION_SPECIFIC_TARGET.
29494 2014-02-14 Jakub Jelinek <jakub@redhat.com>
29496 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
29497 (get_initial_def_for_induction, vectorizable_induction): Ignore
29498 debug stmts when looking for exit_phi.
29499 (vectorizable_live_operation): Fix up condition.
29501 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
29503 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
29504 nreverse() because it changes the content of original tree list.
29506 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
29508 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
29509 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
29511 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
29513 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
29514 GNU coding standards.
29516 2014-02-13 Jakub Jelinek <jakub@redhat.com>
29519 * dwarf2out.c (gen_subprogram_die): Don't call
29520 add_calling_convention_attribute if subr_die is old_die.
29522 2014-02-13 Sharad Singhai <singhai@google.com>
29524 * doc/optinfo.texi: Fix order of nodes.
29526 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
29528 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
29529 operands[2], not operands[3].
29531 2014-02-13 Richard Biener <rguenther@suse.de>
29534 * doc/install.texi (ISL): Update recommended version to 0.12.2,
29535 mention the possibility of an in-tree build.
29536 (CLooG): Update recommended version to 0.18.1, mention the
29537 possibility of an in-tree build and clarify that the ISL
29538 bundled with CLooG does not work.
29540 2014-02-13 Jakub Jelinek <jakub@redhat.com>
29543 * expr.c (compress_float_constant): If x is a hard register,
29544 extend into a pseudo and then move to x.
29546 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
29548 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
29549 caused by bad second argument to warning_at() with -mhotpatch and
29550 nested functions (e.g. with gfortran).
29552 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
29554 * opts.c (option_name): Remove "enabled by default" rider.
29556 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
29558 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
29560 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
29561 Uros Bizjak <ubizjak@gmail.com>
29564 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
29565 * configure: Regenerated.
29567 2014-02-12 Richard Biener <rguenther@suse.de>
29569 * vec.c (vec_prefix::calculate_allocation): Move as
29570 inline variant to vec.h.
29571 (vec_prefix::calculate_allocation_1): New out-of-line version.
29572 * vec.h (vec_prefix::calculate_allocation_1): Declare.
29573 (vec_prefix::m_has_auto_buf): Rename to ...
29574 (vec_prefix::m_using_auto_storage): ... this.
29575 (vec_prefix::calculate_allocation): Inline the easy cases
29576 and dispatch to calculate_allocation_1 which doesn't need the
29578 (va_heap::reserve): Use gcc_checking_assert.
29579 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
29580 m_using_auto_storage.
29581 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
29583 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
29584 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
29585 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
29587 2014-02-12 Richard Biener <rguenther@suse.de>
29589 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
29590 when we found a dependence.
29592 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
29594 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
29596 (maybe_fold_stmt): ... into this new function.
29597 * omp-low.c (lower_omp): Update comment.
29599 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
29602 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
29605 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
29607 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
29608 identifiers in comments.
29609 (cortexa53_extra_costs): Likewise.
29610 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
29611 (cortexa7_extra_costs): Likewise.
29612 (cortexa12_extra_costs): Likewise.
29613 (cortexa15_extra_costs): Likewise.
29614 (v7m_extra_costs): Likewise.
29616 2014-02-12 Richard Biener <rguenther@suse.de>
29618 PR middle-end/60092
29619 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
29620 of posix_memalign being successful.
29621 (lower_stmt): Restrict lowering of posix_memalign to when
29622 -ftree-bit-ccp is enabled.
29624 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
29626 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
29628 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
29630 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
29632 PR rtl-optimization/60116
29633 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
29634 other_insn once the combination has been validated.
29636 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
29639 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
29641 * ipa-devirt.c: Include demangle.h
29642 (odr_violation_reported): New static variable.
29643 (add_type_duplicate): Update odr_violations.
29644 (maybe_record_node): Add completep parameter; update it.
29645 (record_target_from_binfo): Add COMPLETEP parameter;
29646 update it as needed.
29647 (possible_polymorphic_call_targets_1): Likewise.
29648 (struct polymorphic_call_target_d): Add nonconstruction_targets;
29649 rename FINAL to COMPLETE.
29650 (record_targets_from_bases): Sanity check we found the binfo;
29651 fix COMPLETEP updating.
29652 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
29653 parameter, fix computing of COMPLETEP.
29654 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
29655 at LTO time do demangling.
29656 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
29657 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
29659 (gimple_get_virt_method_for_binfo): Likewise.
29660 * gimple-fold.h (gimple_get_virt_method_for_binfo,
29661 gimple_get_virt_method_for_vtable): Update prototypes.
29663 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
29666 * genautomata.c (add_presence_absence): Fix typo with
29667 {final_}presence_list.
29669 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
29672 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
29673 for VSX/Altivec vectors that land in GPR registers.
29675 2014-02-11 Richard Henderson <rth@redhat.com>
29676 Jakub Jelinek <jakub@redhat.com>
29679 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
29680 around drhs if type conversion to lacc->type is not useless.
29682 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29684 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
29686 (cortex-a57.cortex-a53): Likewise.
29687 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
29689 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29691 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
29694 2014-02-11 Renlin Li <Renlin.Li@arm.com>
29696 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
29697 add_options_for_arm_vfp3.
29699 2014-02-11 Jeff Law <law@redhat.com>
29701 PR middle-end/54041
29702 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
29703 object with an undesirable mode.
29705 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29708 * config/i386/sol2-9.h: New file.
29709 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
29710 *-*-solaris2.9*): Use it.
29712 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
29714 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
29715 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
29717 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
29719 * config/microblaze/microblaze.c: Extend mcpu version format
29721 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
29723 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
29725 2014-02-10 Richard Henderson <rth@redhat.com>
29728 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
29729 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
29730 ms-abi vs -mno-accumulate-outgoing-args.
29731 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
29732 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
29735 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
29737 PR middle-end/60080
29738 * cfgexpand.c (expand_asm_operands): Attach source location to
29739 ASM_INPUT rtx objects.
29740 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
29742 2014-02-10 Nick Clifton <nickc@redhat.com>
29744 * config/mn10300/mn10300.c (popcount): New function.
29745 (mn10300_expand_prologue): Include saved registers in stack usage
29748 2014-02-10 Jeff Law <law@redhat.com>
29750 PR middle-end/52306
29751 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
29752 when changing the SET_DEST of a prior insn to avoid an input reload.
29754 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29756 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
29757 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
29758 -mcall-openbsd, or -mcall-linux.
29759 (CC1_ENDIAN_BIG_SPEC): Remove.
29760 (CC1_ENDIAN_LITTLE_SPEC): Remove.
29761 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
29762 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
29763 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
29764 and %cc1_endian_default.
29765 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
29767 2014-02-10 Richard Biener <rguenther@suse.de>
29769 PR tree-optimization/60115
29770 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
29771 MEM_REF handling. Properly verify that the accesses are not
29772 out of the objects bound.
29774 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29776 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
29779 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
29781 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
29782 proper constants and fix formatting.
29783 (possible_polymorphic_call_targets): Fix formatting.
29785 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
29786 Ilya Tocar <ilya.tocar@intel.com>
29788 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
29789 (_mm512_loadu_epi32): Renamed into...
29790 (_mm512_loadu_si512): This.
29791 (_mm512_storeu_epi32): Renamed into...
29792 (_mm512_storeu_si512): This.
29793 (_mm512_maskz_ceil_ps): Removed.
29794 (_mm512_maskz_ceil_pd): Ditto.
29795 (_mm512_maskz_floor_ps): Ditto.
29796 (_mm512_maskz_floor_pd): Ditto.
29797 (_mm512_floor_round_ps): Ditto.
29798 (_mm512_floor_round_pd): Ditto.
29799 (_mm512_ceil_round_ps): Ditto.
29800 (_mm512_ceil_round_pd): Ditto.
29801 (_mm512_mask_floor_round_ps): Ditto.
29802 (_mm512_mask_floor_round_pd): Ditto.
29803 (_mm512_mask_ceil_round_ps): Ditto.
29804 (_mm512_mask_ceil_round_pd): Ditto.
29805 (_mm512_maskz_floor_round_ps): Ditto.
29806 (_mm512_maskz_floor_round_pd): Ditto.
29807 (_mm512_maskz_ceil_round_ps): Ditto.
29808 (_mm512_maskz_ceil_round_pd): Ditto.
29809 (_mm512_expand_pd): Ditto.
29810 (_mm512_expand_ps): Ditto.
29811 * config/i386/i386.c (ix86_builtins): Remove
29812 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
29813 (bdesc_args): Ditto.
29814 * config/i386/predicates.md (const1256_operand): New.
29815 (const_1_to_2_operand): Ditto.
29816 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
29817 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
29818 (*avx512pf_gatherpf<mode>sf): Ditto.
29819 (avx512pf_gatherpf<mode>df): Ditto.
29820 (*avx512pf_gatherpf<mode>df_mask): Ditto.
29821 (*avx512pf_gatherpf<mode>df): Ditto.
29822 (avx512pf_scatterpf<mode>sf): Ditto.
29823 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
29824 (*avx512pf_scatterpf<mode>sf): Ditto.
29825 (avx512pf_scatterpf<mode>df): Ditto.
29826 (*avx512pf_scatterpf<mode>df_mask): Ditto.
29827 (*avx512pf_scatterpf<mode>df): Ditto.
29828 (avx512f_expand<mode>): Removed.
29829 (<shift_insn><mode>3<mask_name>): Change predicate type.
29831 2014-02-08 Jakub Jelinek <jakub@redhat.com>
29833 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
29834 not at the end of datarefs vector use ordered_remove to avoid
29835 reordering datarefs vector.
29838 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
29839 mark local addressable non-static vars as GOVD_PRIVATE
29840 instead of GOVD_LOCAL.
29841 * omp-low.c (lower_omp_for): Move gimple_bind_vars
29842 and BLOCK_VARS of gimple_bind_block to new_stmt rather
29845 PR middle-end/60092
29846 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
29847 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
29848 assume_aligned or alloc_align attributes.
29849 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
29850 arguments. Handle also assume_aligned and alloc_align attributes.
29851 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
29852 calls to functions with assume_aligned or alloc_align attributes.
29853 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
29855 2014-02-08 Terry Guo <terry.guo@arm.com>
29857 * doc/invoke.texi: Document ARM -march=armv7e-m.
29859 2014-02-08 Jakub Jelinek <jakub@redhat.com>
29861 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
29862 flag on __cilkrts_rethrow builtin.
29865 * ipa-cp.c (determine_versionability): Fail at -O0
29866 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
29867 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
29870 2014-02-04 Jakub Jelinek <jakub@redhat.com>
29873 * tree-inline.c (copy_forbidden): Fail for
29874 __attribute__((optimize (0))) functions.
29876 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
29878 * varpool.c: Include pointer-set.h.
29879 (varpool_remove_unreferenced_decls): Variables in other partitions
29880 will not be output; be however careful to not lose information
29881 about partitioning.
29883 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
29885 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
29886 lookup in the vtable constructor.
29888 2014-02-07 Jeff Law <law@redhat.com>
29891 * config/m68k/m68k.md (ashldi_extsi): Turn into a
29892 define_insn_and_split.
29894 * ipa-inline.c (inline_small_functions): Fix typos.
29896 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29898 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
29899 (s390_can_use_return_insn): Declare.
29900 * config/s390/s390.h (EPILOGUE_USES): Define.
29901 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
29903 (s390_chunkify_start): Handle return JUMP_LABELs.
29904 (s390_early_mach): Emit a main_pool instruction on the entry edge.
29905 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
29906 (s390_can_use_return_insn): New functions.
29907 (s390_fix_long_loop_prediction): Handle conditional returns.
29908 (TARGET_SET_UP_BY_PROLOGUE): Define.
29909 * config/s390/s390.md (ANY_RETURN): New code iterator.
29910 (*creturn, *csimple_return, return, simple_return): New patterns.
29912 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29914 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
29915 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
29916 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
29917 REG_CFA_RESTORE list when deciding not to restore a register.
29919 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29921 * config/s390/s390.c: Include tree-pass.h and context.h.
29922 (s390_early_mach): New function, split out from...
29923 (s390_emit_prologue): ...here.
29924 (pass_data_s390_early_mach): New pass structure.
29925 (pass_s390_early_mach): New class.
29926 (s390_option_override): Create and register early_mach pass.
29927 Move to end of file.
29929 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29931 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
29932 to match for the exit block.
29934 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29936 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
29937 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
29938 Reject misaligned operands.
29940 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29942 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
29944 2014-02-07 Richard Biener <rguenther@suse.de>
29946 PR middle-end/60092
29947 * gimple-low.c (lower_builtin_posix_memalign): New function.
29948 (lower_stmt): Call it to lower posix_memalign in a way
29949 to make alignment info accessible.
29951 2014-02-07 Jakub Jelinek <jakub@redhat.com>
29954 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
29955 __builtin_setjmp_receiver.
29957 2014-02-07 Richard Biener <rguenther@suse.de>
29959 PR middle-end/60092
29960 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
29961 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
29962 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
29963 Handle BUILT_IN_POSIX_MEMALIGN.
29964 (find_func_clobbers): Likewise.
29965 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
29966 (call_may_clobber_ref_p_1): Likewise.
29968 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
29971 * ipa-devirt.c (record_target_from_binfo): Remove overactive
29974 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
29977 * lto-cgraph.c (lto_output_node): Use
29978 symtab_get_symbol_partitioning_class.
29979 (lto_output_varpool_node): likewise.
29980 (symtab_get_symbol_partitioning_class): Move here from
29981 lto/lto-partition.c
29982 * cgraph.h (symbol_partitioning_class): Likewise.
29983 (symtab_get_symbol_partitioning_class): Declare.
29985 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
29987 * ggc.h (ggc_internal_cleared_alloc): New macro.
29988 * vec.h (vec_safe_copy): Handle memory stats.
29989 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
29990 * target-globals.c (save_target_globals): Likewise.
29992 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
29995 * expr.c (emit_move_resolve_push): Export; be bit more selective
29996 on when to clear alias set.
29997 * expr.h (emit_move_resolve_push): Declare.
29998 * function.h (struct function): Add tail_call_marked.
29999 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
30000 * config/i386/i386-protos.h (ix86_expand_push): Remove.
30001 * config/i386/i386.md (TImode move expander): De not call
30003 (FP push expanders): Preserve memory attributes.
30004 * config/i386/sse.md (push<mode>1): Remove.
30005 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
30006 (ix86_expand_push): Remove.
30007 * config/i386/mmx.md (push<mode>1): Remove.
30009 2014-02-06 Jakub Jelinek <jakub@redhat.com>
30011 PR rtl-optimization/60030
30012 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
30013 lopart with paradoxical subreg before shifting it up by hprec.
30015 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30017 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
30018 Remove extra newline at end of file.
30019 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
30020 (arm_issue_rate): Handle cortexa57.
30021 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
30022 (cortex-a57.cortex-a53): Likewise.
30024 2014-02-06 Jakub Jelinek <jakub@redhat.com>
30027 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
30028 don't record in REG_FRAME_RELATED_EXPR registers not set in that
30030 (arm_expand_prologue): Adjust all callers.
30031 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
30032 info, registers also at the lowest numbered registers side. Use
30033 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
30037 * var-tracking.c (adjust_mems): Before adding a SET to
30038 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
30040 2014-02-06 Alan Modra <amodra@gmail.com>
30043 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
30044 change SDmode to DDmode when lra_in_progress.
30046 2014-02-06 Jakub Jelinek <jakub@redhat.com>
30048 PR middle-end/59150
30049 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
30050 free_data_ref on the dr first, and before goto again also set dr
30051 to the next dr. For simd_lane_access, free old datarefs[i] before
30052 overwriting it. For get_vectype_for_scalar_type failure, don't
30053 free_data_ref if simd_lane_access.
30055 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
30058 * tree.h (opts_for_fn): New inline function.
30059 (opt_for_fn): Define.
30060 * config/i386/i386.c (ix86_function_regparm): Use
30061 opt_for_fn (decl, optimize) instead of optimize.
30063 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
30065 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
30066 for SYMBOL_REF in large memory model.
30068 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30070 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
30071 and crypto support.
30072 (cortex-a57): Likewise.
30073 (cortex-a57.cortex-a53): Likewise.
30075 2014-02-06 Yury Gribov <y.gribov@samsung.com>
30076 Kugan Vivekanandarajah <kuganv@linaro.org>
30078 * config/arm/arm.c (arm_vector_alignment_reachable): Check
30080 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
30082 2014-02-06 Richard Biener <rguenther@suse.de>
30084 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
30085 set_loop_copy and initialize_original_copy_tables.
30087 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
30089 * config/aarch64/aarch64-simd.md
30090 (aarch64_ashr_simddi): Change QI to SI.
30092 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
30093 Jakub Jelinek <jakub@redhat.com>
30095 PR middle-end/60013
30096 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
30099 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30101 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
30102 CODE_FOR_altivec_vpku[hw]um to
30103 CODE_FOR_altivec_vpku[hw]um_direct.
30104 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
30105 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
30106 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
30107 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
30109 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30111 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
30112 generation for -maltivec=be.
30113 (altivec_vsumsws): Simplify redundant test.
30115 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30117 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
30118 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
30119 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
30120 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
30121 gen_altivec_vpkuwum.
30122 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
30124 (altivec_vpks<VI_char>ss): Likewise.
30125 (altivec_vpks<VI_char>us): Likewise.
30126 (altivec_vpku<VI_char>us): Likewise.
30127 (altivec_vpku<VI_char>um): Likewise.
30128 (altivec_vpku<VI_char>um_direct): New (copy of
30129 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
30131 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
30132 target is little endian and -maltivec=be is not specified.
30133 (*altivec_vupkhs<VU_char>_direct): New (copy of
30134 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
30135 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
30136 target is little endian and -maltivec=be is not specified.
30137 (*altivec_vupkls<VU_char>_direct): New (copy of
30138 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
30139 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
30140 little endian and -maltivec=be is not specified.
30141 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
30142 little endian and -maltivec=be is not specified.
30144 2014-02-05 Richard Henderson <rth@redhat.com>
30147 * combine-stack-adj.c: Revert r206943.
30148 * sched-int.h (struct deps_desc): Add last_args_size.
30149 * sched-deps.c (init_deps): Initialize it.
30150 (sched_analyze_insn): Add OUTPUT dependencies between insns that
30151 contain REG_ARGS_SIZE notes.
30153 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
30155 * lto-cgraph.c (asm_nodes_output): Make global.
30156 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
30157 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
30158 (driver_handle_option): Handle OPT_fwpa.
30160 2014-02-05 Jakub Jelinek <jakub@redhat.com>
30163 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
30164 a comment typo and formatting issue. If odr_hash hasn't been
30165 created, return vNULL and set *completep to false.
30167 PR middle-end/57499
30168 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
30169 bb with no successors.
30171 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
30174 * doc/invoke.texi (-march): Clarify documentation for ARM.
30175 (-mtune): Likewise.
30178 2014-02-05 Richard Biener <rguenther@suse.de>
30180 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
30181 when not vectorizing because of too many alias checks.
30182 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
30183 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
30185 2014-02-05 Nick Clifton <nickc@redhat.com>
30187 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
30188 accept extended registers in any mode when compiling for the MN10300.
30190 2014-02-05 Yury Gribov <y.gribov@samsung.com>
30192 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
30193 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
30194 sanitization attributes.
30195 (can_inline_edge_p): Likewise.
30196 (sanitize_attrs_match_for_inline_p): New function.
30198 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
30200 * ipa-prop.c (detect_type_change): Shor circuit testing of
30201 type changes on THIS pointer.
30203 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
30206 * config/pa/pa.c (legitimize_tls_address): Return original address
30207 if not passed a SYMBOL_REF rtx.
30208 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
30210 (pa_emit_move_sequence): Simplify TLS source operands.
30211 (pa_legitimate_constant_p): Reject all TLS constants.
30212 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
30213 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
30215 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
30217 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
30218 groups when we know they are controlled by LTO.
30219 * varasm.c (default_binds_local_p_1): If object is in other partition,
30220 it will be resolved locally.
30222 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
30224 * config/host-linux.c (linux_gt_pch_use_address): Don't
30225 use SSIZE_MAX because it is not always defined.
30227 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
30230 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
30231 threshold for pseudo splitting.
30232 (update_ebb_live_info): Process call argument hard registers and
30233 hard registers from insn definition too.
30234 (max_small_class_regs_num): New constant.
30235 (inherit_in_ebb): Update live hard regs through EBBs. Update
30236 reloads_num only for small register classes. Don't split for
30239 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
30242 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
30245 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
30247 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
30248 visibility is safe.
30250 2014-02-04 Marek Polacek <polacek@redhat.com>
30252 * gdbinit.in (pel): Define.
30254 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
30256 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
30259 2014-02-04 Richard Biener <rguenther@suse.de>
30262 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
30263 in function context local.
30264 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
30265 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
30266 similar to LTO_imported_decl_ref.
30268 2014-02-04 Jakub Jelinek <jakub@redhat.com>
30270 PR tree-optimization/60002
30271 * cgraphclones.c (build_function_decl_skip_args): Clear
30272 DECL_LANG_SPECIFIC.
30274 PR tree-optimization/60023
30275 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
30276 false to gsi_replace.
30277 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
30278 has been in some EH region and vec_stmt could throw, add
30279 vec_stmt into the same EH region.
30280 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
30281 has no lhs, ignore it.
30282 * internal-fn.c (expand_MASK_LOAD): Likewise.
30285 * tree-inline.c (copy_forbidden): Fail for
30286 __attribute__((optimize (0))) functions.
30289 * omp-low.c (simd_clone_struct_copy): If from->inbranch
30290 is set, copy one less argument.
30291 (expand_simd_clones): Don't subtract clone_info->inbranch
30292 from simd_clone_struct_alloc argument.
30294 PR rtl-optimization/57915
30295 * recog.c (simplify_while_replacing): If all unary/binary/relational
30296 operation arguments are constant, attempt to simplify those.
30298 PR middle-end/59261
30299 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
30300 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
30302 2014-02-04 Richard Biener <rguenther@suse.de>
30304 PR tree-optimization/60012
30305 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
30306 TBAA disambiguation to all DDRs.
30308 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30311 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
30312 (LINK_SPEC): Use it for -shared, -shared-libgcc.
30314 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
30317 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
30319 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
30321 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
30322 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
30324 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
30327 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
30328 to figure out targets of polymorphic calls with known decl.
30329 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
30330 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
30331 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
30332 (get_polymorphic_call_info): ... here.
30333 (get_polymorphic_call_info_from_invariant): New function.
30335 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
30337 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
30338 lookup via vtable pointer; check for type consistency
30339 and turn inconsitent facts into UNREACHABLE.
30340 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
30341 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
30342 type inconsistent querries; return UNREACHABLE instead.
30344 2014-02-03 Richard Henderson <rth@twiddle.net>
30347 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
30348 already processed this node.
30349 (normalize_one_pred_1): Pass along mark_set.
30350 (normalize_one_pred): Create and destroy a pointer_set_t.
30351 (normalize_one_pred_chain): Likewise.
30353 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
30355 PR gcov-profile/58602
30356 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
30358 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
30361 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
30362 -fno-devirtualize; try to devirtualize by the knowledge of
30363 virtual table pointer given by aggregate propagation.
30364 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
30365 (ipa_print_node_jump_functions): Dump also offset that
30366 is relevant for polymorphic calls.
30367 (determine_known_aggregate_parts): Add arg_type parameter; use it
30368 instead of determining the type from pointer type.
30369 (ipa_compute_jump_functions_for_edge): Update call of
30370 determine_known_aggregate_parts.
30371 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
30372 (gimple_get_virt_method_for_binfo): ... here; simplify using
30373 vtable_pointer_value_to_vtable.
30374 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
30375 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
30376 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
30377 (vtable_pointer_value_to_vtable): Break out from ...; handle also
30379 (vtable_pointer_value_to_binfo): ... here.
30380 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
30382 2014-02-03 Teresa Johnson <tejohnson@google.com>
30384 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
30385 redef of outer loop index variable.
30387 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
30391 * doc/extend.texi (Function Attributes): Typo.
30393 2014-02-03 Cong Hou <congh@google.com>
30395 PR tree-optimization/60000
30396 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
30397 if the vectorized statement is a store. A store statement can only
30398 appear at the end of pattern statements.
30400 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
30402 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
30403 (ix86_option_override_internal): Default long double to 64-bit for
30404 32-bit Bionic and to 128-bit for 64-bit Bionic.
30406 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
30407 TARGET_LONG_DOUBLE_128 is true.
30408 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
30410 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
30411 (mlong-double-64): Negate -mlong-double-128.
30412 (mlong-double-128): New option.
30414 * config/i386/i386-c.c (ix86_target_macros): Define
30415 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
30417 * doc/invoke.texi: Document -mlong-double-128.
30419 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
30421 PR rtl-optimization/60024
30422 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
30424 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
30426 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
30428 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
30430 PR rtl-optimization/57662
30431 * sel-sched.c (code_motion_path_driver): Do not mark already not
30432 existing blocks in the visiting bitmap.
30434 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
30436 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
30437 on the insn being emitted.
30439 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
30440 Will Deacon <will.deacon@arm.com>
30442 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
30444 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30446 * config/arm/arm-tables.opt: Regenerate.
30448 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30450 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
30451 for vector types other than V16QImode.
30452 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
30453 define_expand, and call altivec_expand_vec_perm_le when producing
30454 code with little endian element order.
30455 (*altivec_vperm_<mode>_internal): New insn having previous
30456 behavior of altivec_vperm_<mode>.
30457 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
30458 altivec_expand_vec_perm_le when producing code with little endian
30460 (*altivec_vperm_<mode>_uns_internal): New insn having previous
30461 behavior of altivec_vperm_<mode>_uns.
30463 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30465 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
30466 (altivec_vsumsws): Add handling for -maltivec=be with a little
30468 (altivec_vsumsws_direct): New.
30469 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
30470 gen_altivec_vsumsws.
30472 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
30474 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
30475 vtable_pointer_value_to_binfo): New functions.
30476 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
30477 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
30479 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
30481 * config/nios2/nios2.md (load_got_register): Initialize GOT
30482 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
30483 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
30485 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
30487 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
30488 preserverd by passthrough, do not propagate the type.
30490 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
30492 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
30493 (mips_atomic_assign_expand_fenv): New function.
30494 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
30496 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
30498 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
30499 (__builtin_mips_set_fcsr): Likewise.
30500 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
30501 MIPS_USI_FTYPE_VOID.
30502 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
30503 (mips16_expand_set_fcsr): Likewise.
30504 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
30505 (mips16_set_fcsr_stub): Likewise.
30506 (mips16_get_fcsr_one_only_stub): New class.
30507 (mips16_set_fcsr_one_only_stub): Likewise.
30508 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
30509 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
30510 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
30511 (hard_float): New availability predicate.
30512 (mips_builtins): Add get_fcsr and set_fcsr.
30513 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
30514 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
30515 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
30516 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
30517 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
30520 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
30522 * config/mips/mips.c (mips_one_only_stub): New class.
30523 (mips_need_mips16_rdhwr_p): Replace with...
30524 (mips16_rdhwr_stub): ...this new variable.
30525 (mips16_stub_call_address): New function.
30526 (mips16_rdhwr_one_only_stub): New class.
30527 (mips_expand_thread_pointer): Use mips16_stub_call_address.
30528 (mips_output_mips16_rdhwr): Delete.
30529 (mips_finish_stub): New function.
30530 (mips_code_end): Use it to handle rdhwr stubs.
30532 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
30535 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
30536 when calculating size of integer atomic types.
30538 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
30540 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
30542 2014-02-01 Jakub Jelinek <jakub@redhat.com>
30544 PR tree-optimization/60003
30545 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
30546 * profile.c (branch_prob): Use gimple_call_builtin_p
30547 to check for BUILT_IN_SETJMP_RECEIVER.
30548 * tree-inline.c (copy_bb): Call notice_special_calls.
30550 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
30553 * lra-constraints.c (process_alt_operands): Update reload_sum only
30556 2014-01-31 Richard Henderson <rth@redhat.com>
30558 PR middle-end/60004
30559 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
30560 until after else_eh is processed.
30562 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
30564 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
30565 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
30566 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
30567 in smmintrin.h, remove them.
30568 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
30569 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
30570 * config/i386/i386.md (ROUND_SAE): Fix value.
30571 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
30572 (const48_operand): New.
30573 * config/i386/subst.md (round), (round_expand): Use
30574 const_4_or_8_to_11_operand.
30575 (round_saeonly), (round_saeonly_expand): Use const48_operand.
30577 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
30579 * config/i386/constraints.md (Yk): Swap meaning with k.
30580 * config/i386/i386.md (movhi_internal): Change Yk to k.
30581 (movqi_internal): Ditto.
30582 (*k<logic><mode>): Ditto.
30585 (kandn<mode>): Ditto.
30586 (*<code>hi_1): Ditto.
30587 (*<code>qi_1): Ditto.
30588 (kxnor<mode>): Ditto.
30589 (kortestzhi): Ditto.
30590 (kortestchi): Ditto.
30592 (*one_cmplhi2_1): Ditto.
30593 (*one_cmplqi2_1): Ditto.
30594 * config/i386/sse.md (): Change k to Yk.
30595 (avx512f_load<mode>_mask): Ditto.
30596 (avx512f_blendm<mode>): Ditto.
30597 (avx512f_store<mode>_mask): Ditto.
30598 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
30599 (avx512f_storedqu<mode>_mask): Ditto.
30600 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
30602 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
30603 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
30604 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
30605 (avx512f_maskcmp<mode>3): Ditto.
30606 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
30607 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
30608 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
30609 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
30610 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
30611 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
30612 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
30613 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
30614 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
30615 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
30616 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
30617 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
30618 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
30619 (vec_extract_lo_<mode>_maskm): Ditto.
30620 (vec_extract_hi_<mode>_maskm): Ditto.
30621 (avx512f_vternlog<mode>_mask): Ditto.
30622 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
30623 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
30624 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
30625 (avx512f_<code>v8div16qi2_mask): Ditto.
30626 (avx512f_<code>v8div16qi2_mask_store): Ditto.
30627 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
30628 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
30629 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
30630 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
30631 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
30632 (*avx512pf_gatherpf<mode>df_mask): Ditto.
30633 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
30634 (*avx512pf_scatterpf<mode>df_mask): Ditto.
30635 (avx512cd_maskb_vec_dupv8di): Ditto.
30636 (avx512cd_maskw_vec_dupv16si): Ditto.
30637 (avx512f_vpermi2var<mode>3_maskz): Ditto.
30638 (avx512f_vpermi2var<mode>3_mask): Ditto.
30639 (avx512f_vpermi2var<mode>3_mask): Ditto.
30640 (avx512f_vpermt2var<mode>3_maskz): Ditto.
30641 (*avx512f_gathersi<mode>): Ditto.
30642 (*avx512f_gathersi<mode>_2): Ditto.
30643 (*avx512f_gatherdi<mode>): Ditto.
30644 (*avx512f_gatherdi<mode>_2): Ditto.
30645 (*avx512f_scattersi<mode>): Ditto.
30646 (*avx512f_scatterdi<mode>): Ditto.
30647 (avx512f_compress<mode>_mask): Ditto.
30648 (avx512f_compressstore<mode>_mask): Ditto.
30649 (avx512f_expand<mode>_mask): Ditto.
30650 * config/i386/subst.md (mask): Change k to Yk.
30651 (mask_scalar_merge): Ditto.
30654 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
30656 * doc/extend.texi (Vector Extensions): Document ?: in C++.
30658 2014-01-31 Richard Biener <rguenther@suse.de>
30660 PR middle-end/59990
30661 * builtins.c (fold_builtin_memory_op): Make sure to not
30662 use a floating-point mode or a boolean or enumeral type for
30663 the copy operation.
30665 2014-01-30 DJ Delorie <dj@redhat.com>
30667 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
30668 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
30669 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
30670 whenever main() has an epilogue.
30672 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30674 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
30675 unused variable "field".
30676 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
30677 (vsx_mergeh_<mode>): Likewise.
30678 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
30679 (altivec_vmrghh): Likewise.
30680 (altivec_vmrghw): Likewise.
30681 (altivec_vmrglb): Likewise.
30682 (altivec_vmrglh): Likewise.
30683 (altivec_vmrglw): Likewise.
30684 (altivec_vspltb): Add missing uses.
30685 (altivec_vsplth): Likewise.
30686 (altivec_vspltw): Likewise.
30687 (altivec_vspltsf): Likewise.
30689 2014-01-30 Jakub Jelinek <jakub@redhat.com>
30692 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
30693 frame related instructions.
30695 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
30697 PR rtl-optimization/59959
30698 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
30699 any reload of register whose subreg is invalid.
30701 2014-01-30 Jakub Jelinek <jakub@redhat.com>
30703 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
30704 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
30705 Add missing return type - void.
30707 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30709 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
30710 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
30711 remove element index adjustment for endian (now handled in vsx.md
30713 (altivec_expand_vec_perm_const): Use
30714 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
30715 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
30716 (vsx_xxspltw_<mode>): Adjust element index for little endian.
30717 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
30718 define_expand and a new define_insn *altivec_vspltb_internal;
30719 adjust for -maltivec=be on a little endian target.
30720 (altivec_vspltb_direct): New.
30721 (altivec_vsplth): Divide into a define_expand and a new
30722 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
30723 little endian target.
30724 (altivec_vsplth_direct): New.
30725 (altivec_vspltw): Divide into a define_expand and a new
30726 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
30727 little endian target.
30728 (altivec_vspltw_direct): New.
30729 (altivec_vspltsf): Divide into a define_expand and a new
30730 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
30731 a little endian target.
30733 2014-01-30 Richard Biener <rguenther@suse.de>
30735 PR tree-optimization/59993
30736 * tree-ssa-forwprop.c (associate_pointerplus): Check we
30737 can propagate form the earlier stmt and avoid the transform
30738 when the intermediate result is needed.
30740 2014-01-30 Alangi Derick <alangiderick@gmail.com>
30742 * README.Portability: Fix typo.
30744 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
30746 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
30747 comparison_operator with ordered_comparison_operator.
30749 2014-01-30 Nick Clifton <nickc@redhat.com>
30751 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
30752 Rename to mn10300_store_multiple_regs.
30753 * config/mn10300/mn10300.c: Likewise.
30754 * config/mn10300/mn10300.md (store_movm): Fix typo: call
30755 store_multiple_regs.
30756 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
30757 Call mn10300_store_multiple_regs.
30759 2014-01-30 Nick Clifton <nickc@redhat.com>
30760 DJ Delorie <dj@redhat.com>
30762 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
30763 %fp 2 to keep registers after it properly word-aligned.
30764 (rl78_alloc_physical_registers_umul): Handle the case where both
30765 input operands are the same.
30767 2014-01-30 Richard Biener <rguenther@suse.de>
30769 PR tree-optimization/59903
30770 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
30773 2014-01-30 Jason Merrill <jason@redhat.com>
30776 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
30779 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
30781 2014-01-30 Richard Biener <rguenther@suse.de>
30783 PR tree-optimization/59951
30784 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
30786 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
30789 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
30790 SFmode to DFmode case.
30792 2014-01-29 DJ Delorie <dj@redhat.com>
30794 * config/msp430/msp430.opt (-minrt): New.
30795 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
30797 (ENDFILE_SPEC): Likewise.
30799 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
30801 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
30802 (estimate_function_body_sizes): Use it.
30804 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
30807 * dwarf2out.c (is_cxx_auto): New.
30808 (is_base_type): Use it.
30809 (gen_type_die_with_usage): Likewise.
30811 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30813 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
30814 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
30815 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
30816 -maltivec=be with LE targets.
30817 (vsx_mergeh_<mode>): Likewise.
30818 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
30819 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
30820 (altivec_vmrghb): Replace with define_expand and new
30821 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
30822 (altivec_vmrghb_direct): New define_insn.
30823 (altivec_vmrghh): Replace with define_expand and new
30824 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
30825 (altivec_vmrghh_direct): New define_insn.
30826 (altivec_vmrghw): Replace with define_expand and new
30827 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
30828 (altivec_vmrghw_direct): New define_insn.
30829 (*altivec_vmrghsf): Adjust for endianness.
30830 (altivec_vmrglb): Replace with define_expand and new
30831 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
30832 (altivec_vmrglb_direct): New define_insn.
30833 (altivec_vmrglh): Replace with define_expand and new
30834 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
30835 (altivec_vmrglh_direct): New define_insn.
30836 (altivec_vmrglw): Replace with define_expand and new
30837 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
30838 (altivec_vmrglw_direct): New define_insn.
30839 (*altivec_vmrglsf): Adjust for endianness.
30840 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
30841 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
30842 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
30843 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
30844 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
30845 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
30846 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
30847 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
30849 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
30851 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
30852 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
30855 2014-01-29 Richard Biener <rguenther@suse.de>
30857 PR tree-optimization/58742
30858 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
30859 associate_pointerplus_align.
30860 (associate_pointerplus_diff): New function.
30861 (associate_pointerplus): Likewise. Call associate_pointerplus_align
30862 and associate_pointerplus_diff.
30864 2014-01-29 Richard Biener <rguenther@suse.de>
30866 * lto-streamer.h (LTO_major_version): Bump to 3.
30867 (LTO_minor_version): Reset to 0.
30869 2014-01-29 Renlin Li <Renlin.Li@arm.com>
30871 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
30872 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
30873 (arm_file_start): Generate correct asm header for armv7ve.
30874 * config/arm/bpabi.h: Add multilib support for armv7ve.
30875 * config/arm/driver-arm.c: Change the architectures of cortex-a7
30876 and cortex-a15 to armv7ve.
30877 * config/arm/t-aprofile: Add multilib support for armv7ve.
30878 * doc/invoke.texi: Document -march=armv7ve.
30880 2014-01-29 Richard Biener <rguenther@suse.de>
30882 PR tree-optimization/58742
30883 * tree-ssa-forwprop.c (associate_plusminus): Return true
30884 if we changed sth, defer EH cleanup to ...
30885 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
30886 (simplify_mult): New function.
30888 2014-01-29 Jakub Jelinek <jakub@redhat.com>
30890 PR middle-end/59917
30891 PR tree-optimization/59920
30892 * tree.c (build_common_builtin_nodes): Remove
30893 __builtin_setjmp_dispatcher initialization.
30894 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
30895 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
30896 instead of gsi_after_labels + manually skipping debug stmts.
30897 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
30898 ignore bbs with IFN_ABNORMAL_DISPATCHER.
30899 * tree-inline.c (copy_edges_for_bb): Remove
30900 can_make_abnormal_goto argument, instead add abnormal_goto_dest
30901 argument. Ignore computed_goto_p stmts. Don't call
30902 make_abnormal_goto_edges. If a call might need abnormal edges
30903 for non-local gotos, see if it already has an edge to
30904 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
30905 with true argument, don't do anything then, otherwise add
30906 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
30907 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
30909 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
30910 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
30911 (lower_stmt): Don't set data->calls_builtin_setjmp.
30912 (lower_builtin_setjmp): Adjust comment.
30913 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
30914 * tree-cfg.c (found_computed_goto): Remove.
30915 (factor_computed_gotos): Remove.
30916 (make_goto_expr_edges): Return bool, true for computed gotos.
30917 Don't call make_abnormal_goto_edges.
30918 (build_gimple_cfg): Don't set found_computed_goto, don't call
30919 factor_computed_gotos.
30920 (computed_goto_p): No longer static.
30921 (make_blocks): Don't set found_computed_goto.
30922 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
30923 (make_edges): If make_goto_expr_edges returns true, push bb
30924 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
30925 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
30926 vector. Record mapping between bbs and OpenMP regions if there
30927 are any, adjust make_gimple_omp_edges caller. Call
30928 handle_abnormal_edges.
30929 (make_abnormal_goto_edges): Remove.
30930 * tree-cfg.h (make_abnormal_goto_edges): Remove.
30931 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
30932 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
30933 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
30934 * internal-fn.def (ABNORMAL_DISPATCHER): New.
30935 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
30936 filling *region also set *region_idx to (*region)->entry->index.
30939 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
30940 For REGs set ORIGINAL_REGNO.
30942 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
30944 * doc/md.texi: Mention that a target shouldn't implement
30945 vec_widen_(s|u)mul_even/odd pair if it is less efficient
30948 2014-01-29 Jakub Jelinek <jakub@redhat.com>
30950 PR tree-optimization/59594
30951 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
30952 a copy of the datarefs vector rather than the vector itself.
30954 2014-01-28 Jason Merrill <jason@redhat.com>
30957 * dwarf2out.c (auto_die): New static.
30958 (gen_type_die_with_usage): Handle C++1y 'auto'.
30959 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
30962 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
30965 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
30966 (SPEC_X32): Likewise.
30967 (SPEC_64): Likewise.
30968 * config/i386/i386.c (ix86_option_override_internal): Turn off
30969 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
30971 (x86_file_start): Output .code16gcc for TARGET_16BIT.
30972 * config/i386/i386.h (TARGET_16BIT): New macro.
30973 (TARGET_16BIT_P): Likewise.
30974 * config/i386/i386.opt: Add m16.
30975 * doc/invoke.texi: Document -m16.
30977 2014-01-28 Jakub Jelinek <jakub@redhat.com>
30979 PR preprocessor/59935
30980 * input.c (location_get_source_line): Bail out on when line number
30981 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
30983 2014-01-28 Richard Biener <rguenther@suse.de>
30985 PR tree-optimization/58742
30986 * tree-ssa-forwprop.c (associate_plusminus): Handle
30987 pointer subtraction of the form (T)(P + A) - (T)P.
30989 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30991 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
30994 2014-01-28 Richard Biener <rguenther@suse.de>
30997 2014-01-28 Richard Biener <rguenther@suse.de>
30999 PR rtl-optimization/45364
31000 PR rtl-optimization/59890
31001 * var-tracking.c (local_get_addr_clear_given_value): Handle
31002 already cleared slot.
31003 (val_reset): Handle not allocated local_get_addr_cache.
31004 (vt_find_locations): Use post-order on the inverted CFG.
31006 2014-01-28 Richard Biener <rguenther@suse.de>
31008 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
31010 2014-01-28 Richard Biener <rguenther@suse.de>
31012 PR rtl-optimization/45364
31013 PR rtl-optimization/59890
31014 * var-tracking.c (local_get_addr_clear_given_value): Handle
31015 already cleared slot.
31016 (val_reset): Handle not allocated local_get_addr_cache.
31017 (vt_find_locations): Use post-order on the inverted CFG.
31019 2014-01-28 Alan Modra <amodra@gmail.com>
31021 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
31022 * configure.ac <recursive call for build != host>: Define
31023 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
31024 and LD_FOR_BUILD too.
31025 * configure: Regenerate.
31027 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
31029 * config/i386/i386.c (get_builtin_code_for_version): Separate
31030 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
31031 Broadwell from Haswell.
31033 2014-01-27 Steve Ellcey <sellcey@mips.com>
31035 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
31036 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
31037 * config/mips/mips.c (mips_option_override): Change setting
31039 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
31040 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
31041 Change from Mask to Var.
31043 2014-01-27 Jeff Law <law@redhat.com>
31045 * ipa-inline.c (inline_small_functions): Fix typo.
31047 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
31049 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
31050 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
31051 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
31052 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
31053 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
31054 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
31055 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
31056 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
31057 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
31058 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
31059 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
31060 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
31061 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
31062 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
31063 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
31064 (_mm512_storeu_epi64): Ditto.
31065 (_mm512_cmpge_epi32_mask): Ditto.
31066 (_mm512_cmpge_epu32_mask): Ditto.
31067 (_mm512_cmpge_epi64_mask): Ditto.
31068 (_mm512_cmpge_epu64_mask): Ditto.
31069 (_mm512_cmple_epi32_mask): Ditto.
31070 (_mm512_cmple_epu32_mask): Ditto.
31071 (_mm512_cmple_epi64_mask): Ditto.
31072 (_mm512_cmple_epu64_mask): Ditto.
31073 (_mm512_cmplt_epi32_mask): Ditto.
31074 (_mm512_cmplt_epu32_mask): Ditto.
31075 (_mm512_cmplt_epi64_mask): Ditto.
31076 (_mm512_cmplt_epu64_mask): Ditto.
31077 (_mm512_cmpneq_epi32_mask): Ditto.
31078 (_mm512_cmpneq_epu32_mask): Ditto.
31079 (_mm512_cmpneq_epi64_mask): Ditto.
31080 (_mm512_cmpneq_epu64_mask): Ditto.
31081 (_mm512_expand_pd): Ditto.
31082 (_mm512_expand_ps): Ditto.
31083 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
31084 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
31085 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
31086 * config/i386/i386.c (ix86_builtins): Add
31087 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
31088 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
31089 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
31090 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
31091 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
31092 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
31093 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
31094 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
31095 IX86_BUILTIN_PMOVUSQW512_MEM.
31096 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
31097 __builtin_ia32_pmovsqd512mem_mask,
31098 __builtin_ia32_pmovqd512mem_mask,
31099 __builtin_ia32_pmovusqw512mem_mask,
31100 __builtin_ia32_pmovsqw512mem_mask,
31101 __builtin_ia32_pmovqw512mem_mask,
31102 __builtin_ia32_pmovusdw512mem_mask,
31103 __builtin_ia32_pmovsdw512mem_mask,
31104 __builtin_ia32_pmovdw512mem_mask,
31105 __builtin_ia32_pmovqb512mem_mask,
31106 __builtin_ia32_pmovusqb512mem_mask,
31107 __builtin_ia32_pmovsqb512mem_mask,
31108 __builtin_ia32_pmovusdb512mem_mask,
31109 __builtin_ia32_pmovsdb512mem_mask,
31110 __builtin_ia32_pmovdb512mem_mask.
31111 (bdesc_args): Add __builtin_ia32_expanddf512,
31112 __builtin_ia32_expandsf512.
31113 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
31114 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
31115 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
31116 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
31117 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
31118 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
31119 (avx512f_<code>v8div16qi2_mask_store): This.
31120 (avx512f_expand<mode>): New.
31122 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
31124 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
31126 (_mm512_mask_prefetch_i64gather_pd): Ditto.
31127 (_mm512_prefetch_i32scatter_pd): Ditto.
31128 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
31129 (_mm512_prefetch_i64scatter_pd): Ditto.
31130 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
31131 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
31132 (_mm512_mask_prefetch_i64gather_ps): Ditto.
31133 (_mm512_prefetch_i32scatter_ps): Ditto.
31134 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
31135 (_mm512_prefetch_i64scatter_ps): Ditto.
31136 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
31137 * config/i386/i386-builtin-types.def: Define
31138 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
31139 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
31140 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
31141 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
31142 IX86_BUILTIN_SCATTERPFQPD.
31143 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
31144 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
31145 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
31146 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
31147 __builtin_ia32_scatterpfqps.
31148 (ix86_expand_builtin): Expand new built-ins.
31149 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
31150 fix memory access data type.
31151 (*avx512pf_gatherpf<mode>_mask): Ditto.
31152 (*avx512pf_gatherpf<mode>): Ditto.
31153 (avx512pf_scatterpf<mode>): Ditto.
31154 (*avx512pf_scatterpf<mode>_mask): Ditto.
31155 (*avx512pf_scatterpf<mode>): Ditto.
31156 (GATHER_SCATTER_SF_MEM_MODE): New.
31157 (avx512pf_gatherpf<mode>df): Ditto.
31158 (*avx512pf_gatherpf<mode>df_mask): Ditto.
31159 (*avx512pf_scatterpf<mode>df): Ditto.
31161 2014-01-27 Jakub Jelinek <jakub@redhat.com>
31164 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
31165 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
31168 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
31170 * common/config/arm/arm-common.c
31171 (arm_rewrite_mcpu): Handle multiple names.
31173 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
31175 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
31177 * gimple-builder.h (create_gimple_tmp): Delete.
31179 2014-01-27 Christian Bruel <christian.bruel@st.com>
31181 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
31184 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
31186 * config/pa/pa.md (call): Generate indirect long calls to non-local
31187 functions when outputing 32-bit code.
31188 (call_value): Likewise except for special call to buggy powf function.
31190 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
31191 portable runtime and PIC indirect calls.
31192 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
31193 and PIC call sequences. Use ldo instead of blr to set return register
31194 in PIC call sequence.
31196 2014-01-25 Walter Lee <walt@tilera.com>
31198 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
31199 avoid clobbering a live register.
31201 2014-01-25 Walter Lee <walt@tilera.com>
31203 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
31204 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
31205 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
31206 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
31208 2014-01-25 Walter Lee <walt@tilera.com>
31210 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
31211 arguments on even registers.
31212 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
31214 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
31215 (BIGGEST_ALIGNMENT): Ditto.
31216 (BIGGEST_FIELD_ALIGNMENT): Ditto.
31218 2014-01-25 Walter Lee <walt@tilera.com>
31220 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
31221 insns before bundling.
31222 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
31224 2014-01-25 Walter Lee <walt@tilera.com>
31226 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
31227 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
31228 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
31230 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
31232 * config/mips/constraints.md (kl): Delete.
31233 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
31234 define expands, using...
31235 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
31236 instructions for MIPS16.
31237 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
31238 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
31240 2014-01-25 Walter Lee <walt@tilera.com>
31242 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
31246 2014-01-25 Walter Lee <walt@tilera.com>
31248 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
31249 (TARGET_EXPAND_TO_RTL_HOOK): Define.
31251 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
31253 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
31256 2014-01-25 Jakub Jelinek <jakub@redhat.com>
31258 * print-rtl.c (in_call_function_usage): New var.
31259 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
31260 EXPR_LIST mode as mode and not as reg note name.
31262 PR middle-end/59561
31263 * cfgloopmanip.c (copy_loop_info): If
31264 loop->warned_aggressive_loop_optimizations, make sure
31265 the flag is set in target loop too.
31267 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
31269 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
31271 * builtins.def: Likewise.
31272 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
31273 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
31274 * ira.c (ira_setup_eliminable_regset): Likewise.
31275 * omp-low.c (gate_expand_omp): Likewise.
31276 (execute_lower_omp): Likewise.
31277 (diagnose_sb_0): Likewise.
31278 (gate_diagnose_omp_blocks): Likewise.
31279 (simd_clone_clauses_extract): Likewise.
31282 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31284 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
31285 correction for little endian...
31286 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
31289 2014-01-24 Jeff Law <law@redhat.com>
31291 PR tree-optimization/59919
31292 * tree-vrp.c (find_assert_locations_1): Do not register asserts
31293 for non-returning calls.
31295 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
31297 * common/config/aarch64/aarch64-common.c
31298 (aarch64_rewrite_mcpu): Handle multiple names.
31299 * config/aarch64/aarch64.h
31300 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
31302 2014-01-24 Dodji Seketeli <dodji@redhat.com>
31304 * input.c (add_file_to_cache_tab): Handle the case where fopen
31307 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
31310 * config/i386/i386.md (pushsf splitter): Get stack adjustment
31311 from push operand if code of push isn't PRE_DEC.
31313 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
31316 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
31317 -mquad-memory-atomic. Update -mquad-memory documentation to say
31318 it is only used for non-atomic loads/stores.
31320 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
31321 -mquad-memory or -mquad-memory-atomic switches.
31323 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
31324 -mquad-memory-atomic to ISA 2.07 support.
31326 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
31327 to separate support of normal quad word memory operations (ldq, stq)
31328 from the atomic quad word memory operations.
31330 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
31331 support to separate non-atomic quad word operations from atomic
31332 quad word operations. Disable non-atomic quad word operations in
31333 little endian mode so that we don't have to swap words after the
31334 load and before the store.
31335 (quad_load_store_p): Add comment about atomic quad word support.
31336 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
31337 options printed with -mdebug=reg.
31339 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
31340 -mquad-memory-atomic as the test for whether we have quad word
31341 atomic instructions.
31342 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
31343 or -mp8-vector are used, allow byte/half-word atomic operations.
31345 * config/rs6000/sync.md (load_lockedti): Insure that the address
31346 is a proper indexed or indirect address for the lqarx instruction.
31347 On little endian systems, swap the hi/lo registers after the lqarx
31349 (load_lockedpti): Use indexed_or_indirect_operand predicate to
31350 insure the address is valid for the lqarx instruction.
31351 (store_conditionalti): Insure that the address is a proper indexed
31352 or indirect address for the stqcrx. instruction. On little endian
31353 systems, swap the hi/lo registers before doing the stqcrx.
31355 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
31356 insure the address is valid for the stqcrx. instruction.
31358 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
31359 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
31360 type of quad memory support is available.
31362 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
31364 PR regression/59915
31365 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
31366 there is a danger of looping.
31368 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
31370 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
31371 force flag_ira_loop_pressure if set via command line.
31373 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
31375 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
31376 (ashr_simd): New builtin handling DI mode.
31377 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
31378 (aarch64_sshr_simddi): New match pattern.
31379 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
31380 (vshrd_n_s64): Likewise.
31381 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
31383 2014-01-23 Nick Clifton <nickc@redhat.com>
31385 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
31386 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
31387 favour of mcu specific scripts.
31388 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
31391 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
31392 Alex Velenko <Alex.Velenko@arm.com>
31394 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
31395 (vaddv_s16): Likewise.
31396 (vaddv_s32): Likewise.
31397 (vaddv_u8): Likewise.
31398 (vaddv_u16): Likewise.
31399 (vaddv_u32): Likewise.
31400 (vaddvq_s8): Likewise.
31401 (vaddvq_s16): Likewise.
31402 (vaddvq_s32): Likewise.
31403 (vaddvq_s64): Likewise.
31404 (vaddvq_u8): Likewise.
31405 (vaddvq_u16): Likewise.
31406 (vaddvq_u32): Likewise.
31407 (vaddvq_u64): Likewise.
31408 (vaddv_f32): Likewise.
31409 (vaddvq_f32): Likewise.
31410 (vaddvq_f64): Likewise.
31411 (vmaxv_f32): Likewise.
31412 (vmaxv_s8): Likewise.
31413 (vmaxv_s16): Likewise.
31414 (vmaxv_s32): Likewise.
31415 (vmaxv_u8): Likewise.
31416 (vmaxv_u16): Likewise.
31417 (vmaxv_u32): Likewise.
31418 (vmaxvq_f32): Likewise.
31419 (vmaxvq_f64): Likewise.
31420 (vmaxvq_s8): Likewise.
31421 (vmaxvq_s16): Likewise.
31422 (vmaxvq_s32): Likewise.
31423 (vmaxvq_u8): Likewise.
31424 (vmaxvq_u16): Likewise.
31425 (vmaxvq_u32): Likewise.
31426 (vmaxnmv_f32): Likewise.
31427 (vmaxnmvq_f32): Likewise.
31428 (vmaxnmvq_f64): Likewise.
31429 (vminv_f32): Likewise.
31430 (vminv_s8): Likewise.
31431 (vminv_s16): Likewise.
31432 (vminv_s32): Likewise.
31433 (vminv_u8): Likewise.
31434 (vminv_u16): Likewise.
31435 (vminv_u32): Likewise.
31436 (vminvq_f32): Likewise.
31437 (vminvq_f64): Likewise.
31438 (vminvq_s8): Likewise.
31439 (vminvq_s16): Likewise.
31440 (vminvq_s32): Likewise.
31441 (vminvq_u8): Likewise.
31442 (vminvq_u16): Likewise.
31443 (vminvq_u32): Likewise.
31444 (vminnmv_f32): Likewise.
31445 (vminnmvq_f32): Likewise.
31446 (vminnmvq_f64): Likewise.
31448 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
31450 * config/aarch64/aarch64-simd.md
31451 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
31452 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
31453 (*aarch64_mul3_elt<mode>): Likewise.
31454 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
31455 (*aarch64_mul3_elt_to_64v2df): Likewise.
31456 (*aarch64_mla_elt<mode>): Likewise.
31457 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
31458 (*aarch64_mls_elt<mode>): Likewise.
31459 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
31460 (*aarch64_fma4_elt<mode>): Likewise.
31461 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
31462 (*aarch64_fma4_elt_to_64v2df): Likewise.
31463 (*aarch64_fnma4_elt<mode>): Likewise.
31464 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
31465 (*aarch64_fnma4_elt_to_64v2df): Likewise.
31466 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
31467 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
31468 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
31469 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
31470 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
31471 (aarch64_sqdmull_lane<mode>_internal): Likewise.
31472 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
31474 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
31476 * config/aarch64/aarch64-simd.md
31477 (aarch64_be_checked_get_lane<mode>): New define_expand.
31478 * config/aarch64/aarch64-simd-builtins.def
31479 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
31480 New builtin definition.
31481 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
31482 Use new safe be builtin.
31484 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
31486 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
31488 (aarch64_be_st1<mode>): Likewise.
31489 (aarch_ld1<VALL:mode>): Define_expand modified.
31490 (aarch_st1<VALL:mode>): Likewise.
31491 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
31492 (UNSPEC_ST1): Likewise.
31494 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
31496 * config/microblaze/microblaze.md: Add trap insn and attribute
31498 2014-01-23 Dodji Seketeli <dodji@redhat.com>
31500 PR preprocessor/58580
31501 * input.h (location_get_source_line): Take an additional line_size
31503 (void diagnostics_file_cache_fini): Declare new function.
31504 * input.c (struct fcache): New type.
31505 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
31506 New static constants.
31507 (diagnostic_file_cache_init, total_lines_num)
31508 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
31509 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
31510 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
31511 (get_next_line, read_next_line, goto_next_line, read_line_num):
31512 New static function definitions.
31513 (diagnostic_file_cache_fini): New function.
31514 (location_get_source_line): Take an additional output line_len
31515 parameter. Re-write using lookup_or_add_file_to_cache_tab and
31517 * diagnostic.c (diagnostic_finish): Call
31518 diagnostic_file_cache_fini.
31519 (adjust_line): Take an additional input parameter for the length
31520 of the line, rather than calculating it with strlen.
31521 (diagnostic_show_locus): Adjust the use of
31522 location_get_source_line and adjust_line with respect to their new
31523 signature. While displaying a line now, do not stop at the first
31524 null byte. Rather, display the zero byte as a space and keep
31525 going until we reach the size of the line.
31526 * Makefile.in: Add vec.o to OBJS-libcommon
31528 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
31529 Ilya Tocar <ilya.tocar@intel.com>
31531 * config/i386/avx512fintrin.h (_mm512_kmov): New.
31532 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
31533 (__builtin_ia32_kmov16): Ditto.
31534 * config/i386/i386.md (UNSPEC_KMOV): New.
31537 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
31539 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
31540 (_mm512_storeu_si512): Ditto.
31542 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
31545 * rtl.h (get_referenced_operands): Declare.
31546 * recog.c (get_referenced_operands): New function.
31547 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
31548 operands have been referenced when recording LO_SUM references.
31550 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
31552 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
31554 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
31556 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
31557 Enable for generic and recent AMD targets.
31559 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
31561 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
31562 ARG_SIZE note when adjustment was eliminated.
31564 2014-01-22 Jeff Law <law@redhat.com>
31566 PR tree-optimization/59597
31567 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
31568 in file. Accept new argument REGISTERING and use it to modify
31569 dump output appropriately.
31570 (register_jump_thread): Corresponding changes.
31571 (mark_threaded_blocks): Reinstate code to cancel unprofitable
31572 thread paths involving joiner blocks. Add code to dump cancelled
31573 jump threading paths.
31575 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
31577 PR rtl-optimization/59477
31578 * lra-constraints.c (inherit_in_ebb): Process call for living hard
31579 regs. Update reloads_num and potential_reload_hard_regs for all insns.
31581 2014-01-22 Tom Tromey <tromey@redhat.com>
31583 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
31585 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
31587 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
31589 PR rtl-optimization/59896
31590 * lra-constraints.c (process_alt_operands): Check unused note for
31591 matched operands of insn with no output reloads.
31593 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
31595 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
31596 (mips_move_from_gpr_cost): Likewise.
31598 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
31600 PR rtl-optimization/59858
31601 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
31602 ira_class_hard_regs_num.
31603 (process_alt_operands): Increase reject for dying matched operand.
31605 2014-01-21 Jakub Jelinek <jakub@redhat.com>
31608 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
31609 smaller than size, perform several stores or loads and stores
31610 at dst + count - size to store or copy all of size bytes, rather
31611 than just last modesize bytes.
31613 2014-01-20 DJ Delorie <dj@redhat.com>
31615 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
31616 that CLOBBERs are REGs before propogating their values.
31618 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
31620 PR middle-end/59789
31621 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
31622 (cgraph_inline_failed_type): New function.
31623 * cgraph.h (DEFCIFCODE): Add type.
31624 (cgraph_inline_failed_type_t): New enum.
31625 (cgraph_inline_failed_type): New prototype.
31626 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
31627 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
31628 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
31629 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
31630 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
31631 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
31632 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
31633 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
31634 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
31635 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
31636 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
31637 OPTIMIZATION_MISMATCH.
31638 * tree-inline.c (expand_call_inline): Emit errors during
31639 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
31641 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
31644 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
31645 mode attribute in insn output.
31647 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
31649 * output.h (output_constant): Delete.
31650 * varasm.c (output_constant): Make private.
31652 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
31654 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
31656 2014-01-20 Jakub Jelinek <jakub@redhat.com>
31658 PR middle-end/59860
31659 * tree.h (fold_builtin_strcat): New prototype.
31660 * builtins.c (fold_builtin_strcat): No longer static. Add len
31661 argument, if non-NULL, don't call c_strlen. Optimize
31662 directly into __builtin_memcpy instead of __builtin_strcpy.
31663 (fold_builtin_2): Adjust fold_builtin_strcat caller.
31664 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
31666 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
31668 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
31669 for SImode_address_operand operands, having only a REG argument.
31671 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
31673 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
31674 loader name using mbig-endian.
31675 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
31677 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
31679 * doc/invoke.texi (-march): Clarify documentation for AArch64.
31680 (-mtune): Likewise.
31683 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
31685 * config/aarch64/aarch64-protos.h
31686 (aarch64_cannot_change_mode_class_ptr): Declare.
31687 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
31688 aarch64_cannot_change_mode_class_ptr): New.
31689 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
31690 backend hook aarch64_cannot_change_mode_class.
31692 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
31694 * common/config/aarch64/aarch64-common.c
31695 (aarch64_handle_option): Don't handle any option order logic here.
31696 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
31697 selected_cpu, warn on architecture version mismatch.
31698 (aarch64_override_options): Fix parsing order for option strings.
31700 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
31701 Iain Sandoe <iain@codesourcery.com>
31704 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
31705 warning. Amend comment to reflect current functionality.
31707 2014-01-20 Richard Biener <rguenther@suse.de>
31709 PR middle-end/59860
31710 * builtins.c (fold_builtin_strcat): Remove case better handled
31711 by tree-ssa-strlen.c.
31713 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
31715 * config/aarch64/aarch64.opt
31716 (mcpu, march, mtune): Make case-insensitive.
31718 2014-01-20 Jakub Jelinek <jakub@redhat.com>
31721 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
31722 if operands[1] is a REG or ZERO_EXTEND of a REG.
31724 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
31726 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
31728 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
31730 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
31731 long non-pic millicode calls.
31733 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
31735 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
31737 2014-01-19 Kito Cheng <kito@0xlab.org>
31739 * builtins.c (expand_movstr): Check movstr expand done or fail.
31741 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
31742 H.J. Lu <hongjiu.lu@intel.com>
31745 * config/i386/i386.md (*lea<mode>): Zero-extend return register
31746 to DImode for zero-extended addresses.
31748 2014-01-19 Jakub Jelinek <jakub@redhat.com>
31750 PR rtl-optimization/57763
31751 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
31752 on the new indirect jump_insn and increment LABEL_NUSES (label).
31754 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
31758 * config.gcc (x86_archs): New variable.
31759 (x86_64_archs): Likewise.
31760 (x86_cpus): Likewise.
31761 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
31762 --with-arch/--with-cpu= options.
31763 Support --with-arch=/--with-cpu={nehalem,westmere,
31764 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
31766 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
31768 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
31769 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
31771 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
31773 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
31775 2014-01-18 Jakub Jelinek <jakub@redhat.com>
31778 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
31779 clear cpp_get_options (parse_in)->warn_unused_macros for
31780 ix86_target_macros_internal with cpp_define.
31782 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
31784 * jump.c (delete_related_insns): Keep (use (insn))s.
31785 * reorg.c (redundant_insn): Check for barriers too.
31787 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
31789 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
31791 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
31793 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
31794 call to $$dyncall when TARGET_LONG_CALLS is true.
31796 2014-01-17 Jeff Law <law@redhat.com>
31798 * ree.c (combine_set_extension): Temporarily disable test for
31799 changing number of hard registers.
31801 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
31803 PR middle-end/58125
31804 * ipa-inline-analysis.c (inline_free_summary):
31805 Do not free summary of aliases.
31807 2014-01-17 Jakub Jelinek <jakub@redhat.com>
31809 PR middle-end/59706
31810 * gimplify.c (gimplify_expr): Use create_tmp_var
31811 instead of create_tmp_var_raw. If cond doesn't have
31812 integral type, don't add the IFN_ANNOTATE builtin at all.
31814 2014-01-17 Martin Jambor <mjambor@suse.cz>
31817 * ipa-cp.c (prev_edge_clone): New variable.
31818 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
31819 Also resize prev_edge_clone vector.
31820 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
31821 (ipcp_edge_removal_hook): New function.
31822 (ipcp_driver): Register ipcp_edge_removal_hook.
31824 2014-01-17 Andrew Pinski <apinski@cavium.com>
31825 Steve Ellcey <sellcey@mips.com>
31828 * config/mips/mips.c (mips_print_operand): Check operand mode instead
31831 2014-01-17 Jeff Law <law@redhat.com>
31833 PR middle-end/57904
31834 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
31835 so that pass_ccp runs first.
31837 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
31839 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
31840 (ix86_adjust_cost): Use !TARGET_XXX.
31841 (do_reorder_for_imul): Likewise.
31842 (swap_top_of_ready_list): Likewise.
31843 (ix86_sched_reorder): Likewise.
31845 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
31847 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
31848 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
31849 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
31850 (intel_memset): New. Duplicate slm_memset.
31851 (intel_cost): New. Duplicate slm_cost.
31852 (m_INTEL): New macro.
31853 (processor_target_table): Add "intel".
31854 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
31855 with PROCESSOR_INTEL for "intel".
31856 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
31857 PROCESSOR_SILVERMONT.
31858 (ix86_issue_rate): Likewise.
31859 (ix86_adjust_cost): Likewise.
31860 (ia32_multipass_dfa_lookahead): Likewise.
31861 (swap_top_of_ready_list): Likewise.
31862 (ix86_sched_reorder): Likewise.
31863 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
31864 instead of TARGET_OPT_AGU.
31865 * config/i386/i386.h (TARGET_INTEL): New.
31866 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
31867 (processor_type): Add PROCESSOR_INTEL.
31868 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
31869 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
31871 2014-01-17 Marek Polacek <polacek@redhat.com>
31874 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
31877 2014-01-17 Richard Biener <rguenther@suse.de>
31879 PR tree-optimization/46590
31880 * opts.c (default_options_table): Add entries for
31881 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
31882 all enabled at -O1 but not for -Og.
31883 * common.opt (fbranch-count-reg): Remove Init(1).
31884 (fmove-loop-invariants): Likewise.
31885 (ftree-pta): Likewise.
31887 2014-01-17 Jakub Jelinek <jakub@redhat.com>
31889 * config/i386/i386.c (ix86_data_alignment): For compatibility with
31890 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
31891 decls to at least the GCC 4.8 used alignments.
31894 * tree-nested.c (convert_nonlocal_reference_stmt,
31895 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
31896 of GIMPLE_BIND stmts, adjust associated decls.
31898 2014-01-17 Richard Biener <rguenther@suse.de>
31900 PR tree-optimization/46590
31901 * vec.h (vec<>::bseach): New member function implementing
31902 binary search according to C89 bsearch.
31903 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
31904 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
31905 bitmap pointer again. Make accesses_in_loop a flat array.
31906 (mem_ref_obstack): New global.
31907 (outermost_indep_loop): Adjust for mem_ref->stored changes.
31908 (mark_ref_stored): Likewise.
31909 (ref_indep_loop_p_2): Likewise.
31910 (set_ref_stored_in_loop): New helper function.
31911 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
31912 (memref_free): Adjust.
31913 (record_mem_ref_loc): Simplify.
31914 (gather_mem_refs_stmt): Adjust.
31915 (sort_locs_in_loop_postorder_cmp): New function.
31916 (analyze_memory_references): Sort accesses_in_loop after
31917 loop postorder number.
31918 (find_ref_loc_in_loop_cmp): New function.
31919 (for_all_locs_in_loop): Find relevant cluster of locs in
31920 accesses_in_loop and iterate without recursion.
31921 (execute_sm): Avoid uninit warning.
31922 (struct ref_always_accessed): Simplify.
31923 (ref_always_accessed::operator ()): Likewise.
31924 (ref_always_accessed_p): Likewise.
31925 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
31926 loop postorder numbers here.
31927 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
31930 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
31933 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
31934 on decls for which assemble_alias has been called.
31936 2014-01-17 Nick Clifton <nickc@redhat.com>
31938 * config/msp430/msp430.opt: (mcpu): New option.
31939 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
31940 (msp430_option_override): Parse target_cpu. If the MCU name
31941 matches a generic string, clear target_mcu.
31942 (msp430_attr): Allow numeric interrupt values up to 63.
31943 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
31944 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
31946 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
31948 * config/msp430/msp430.md (popm): Use %J rather than %I.
31949 (addsi3): Use msp430_nonimmediate_operand for operand 2.
31950 (addhi_cy_i): Use immediate_operand for operand 2.
31951 * doc/invoke.texi: Document -mcpu option.
31953 2014-01-17 Richard Biener <rguenther@suse.de>
31955 PR rtl-optimization/38518
31956 * df.h (df_analyze_loop): Declare.
31957 * df-core.c: Include cfgloop.h.
31958 (df_analyze_1): Split out main part of df_analyze.
31959 (df_analyze): Adjust.
31960 (loop_inverted_post_order_compute): New function.
31961 (loop_post_order_compute): Likewise.
31962 (df_analyze_loop): New function avoiding whole-function
31963 postorder computes.
31964 * loop-invariant.c (find_defs): Use df_analyze_loop.
31965 (find_invariants): Adjust.
31966 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
31968 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
31970 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
31971 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
31973 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
31975 * ipa-ref.c (ipa_remove_stmt_references): Fix references
31976 traversal when removing references.
31978 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
31981 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
31983 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
31985 PR middle-end/56791
31986 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
31987 pushing a reload for an autoinc when we had previously reloaded an
31988 inner part of the address.
31990 2014-01-16 Jakub Jelinek <jakub@redhat.com>
31992 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
31994 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
31995 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
31996 when not giving up or versioning for alias only because of
31998 (vect_analyze_data_ref_dependences): Set to true.
31999 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
32001 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
32002 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
32005 PR middle-end/58344
32006 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
32009 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
32010 operand 0 predicate for gathers, use a new pseudo as subtarget.
32012 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
32014 PR middle-end/59609
32015 * lra-constraints.c (process_alt_operands): Add printing debug info.
32016 Check absence of input/output reloads for matched operands too.
32018 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
32020 PR rtl-optimization/59835
32021 * ira.c (ira_init_register_move_cost): Increase cost for
32024 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
32026 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
32028 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
32031 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
32032 non-register objects. Use gen_(high/low)part more consistently.
32035 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
32038 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
32039 endian support, remove tests for WORDS_BIG_ENDIAN.
32040 (p8_mfvsrd_3_<mode>): Likewise.
32041 (reload_gpr_from_vsx<mode>): Likewise.
32042 (reload_gpr_from_vsxsf): Likewise.
32043 (p8_mfvsrd_4_disf): Likewise.
32045 2014-01-16 Richard Biener <rguenther@suse.de>
32047 PR rtl-optimization/46590
32048 * lcm.c (compute_antinout_edge): Use postorder iteration.
32049 (compute_laterin): Use inverted postorder iteration.
32051 2014-01-16 Nick Clifton <nickc@redhat.com>
32053 PR middle-end/28865
32054 * varasm.c (output_constant): Return the number of bytes actually
32056 (output_constructor_array_range): Update the field size with the
32057 number of bytes emitted by output_constant.
32058 (output_constructor_regular_field): Likewise. Also do not
32059 complain if the total number of bytes emitted is now greater
32060 than the expected fieldpos.
32061 * output.h (output_constant): Update prototype and descriptive comment.
32063 2014-01-16 Marek Polacek <polacek@redhat.com>
32065 PR middle-end/59827
32066 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
32067 it is error_mark_node.
32069 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
32071 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
32072 VALID_AVX256_REG_OR_OI_MODE.
32074 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
32076 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
32077 current procedure should be profiled.
32079 2014-01-15 Andrew Pinski <apinski@cavium.com>
32081 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
32082 of moving from/to the STACK_REG register class.
32084 2014-01-15 Richard Henderson <rth@redhat.com>
32087 * reginfo.c (global_regs_decl): Globalize.
32088 * rtl.h (global_regs_decl): Declare.
32089 * ira.c (do_reload): Diagnose frame_pointer_needed and it
32090 reserved via global_regs.
32092 2014-01-15 Teresa Johnson <tejohnson@google.com>
32094 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
32096 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
32098 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
32099 and vmulosh rather than call gen_vec_widen_smult_*.
32100 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
32101 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
32102 (vec_widen_smult_even_v16qi): Likewise.
32103 (vec_widen_umult_even_v8hi): Likewise.
32104 (vec_widen_smult_even_v8hi): Likewise.
32105 (vec_widen_umult_odd_v16qi): Likewise.
32106 (vec_widen_smult_odd_v16qi): Likewise.
32107 (vec_widen_umult_odd_v8hi): Likewise.
32108 (vec_widen_smult_odd_v8hi): Likewise.
32109 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
32110 vmuloub rather than call gen_vec_widen_umult_*.
32111 (vec_widen_umult_lo_v16qi): Likewise.
32112 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
32113 vmulosb rather than call gen_vec_widen_smult_*.
32114 (vec_widen_smult_lo_v16qi): Likewise.
32115 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
32116 rather than call gen_vec_widen_umult_*.
32117 (vec_widen_umult_lo_v8hi): Likewise.
32118 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
32119 rather than call gen_vec_widen_smult_*.
32120 (vec_widen_smult_lo_v8hi): Likewise.
32122 2014-01-15 Jeff Law <law@redhat.com>
32124 PR tree-optimization/59747
32125 * ree.c (find_and_remove_re): Properly handle case where a second
32126 eliminated extension requires widening a copy created for elimination
32127 of a prior extension.
32128 (combine_set_extension): Ensure that the number of hard regs needed
32129 for a destination register does not change when we widen it.
32131 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
32133 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
32134 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
32135 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
32136 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
32137 (avr-*-rtems*): Likewise.
32138 (bfin*-rtems*): Likewise.
32139 (moxie-*-rtems*): Likewise.
32140 (h8300-*-rtems*): Likewise.
32141 (i[34567]86-*-rtems*): Likewise.
32142 (lm32-*-rtems*): Likewise.
32143 (m32r-*-rtems*): Likewise.
32144 (m68k-*-rtems*): Likewise.
32145 (microblaze*-*-rtems*): Likewise.
32146 (mips*-*-rtems*): Likewise.
32147 (powerpc-*-rtems*): Likewise.
32148 (sh-*-rtems*): Likewise.
32149 (sparc-*-rtems*): Likewise.
32150 (sparc64-*-rtems*): Likewise.
32151 (v850-*-rtems*): Likewise.
32152 (m32c-*-rtems*): Likewise.
32154 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
32156 PR rtl-optimization/59511
32157 * ira.c (ira_init_register_move_cost): Use memory costs for some
32158 cases of register move cost calculations.
32159 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
32160 instead of BB frequency.
32161 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
32162 * lra-assigns.c (find_hard_regno_for): Ditto.
32164 2014-01-15 Richard Biener <rguenther@suse.de>
32166 PR tree-optimization/59822
32167 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
32168 (vectorizable_load): Use it to hoist defs of uses of invariant
32169 loads out of the loop.
32171 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
32172 Kugan Vivekanandarajah <kuganv@linaro.org>
32175 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
32178 2014-01-15 Richard Biener <rguenther@suse.de>
32180 PR rtl-optimization/59802
32181 * lcm.c (compute_available): Use inverted postorder to seed
32182 the initial worklist.
32184 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32187 * config/s390/s390.c (s390_preferred_reload_class): Don't return
32188 ADDR_REGS for invalid symrefs in non-PIC code.
32190 2014-01-15 Jakub Jelinek <jakub@redhat.com>
32193 * builtins.c (determine_block_size): Initialize *probable_max_size
32194 even if len_rtx is CONST_INT.
32196 2014-01-14 Andrew Pinski <apinski@cavium.com>
32198 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
32199 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
32200 (cortexa53_tunings): Likewise.
32201 (aarch64_sched_issue_rate): New function.
32202 (TARGET_SCHED_ISSUE_RATE): Define.
32204 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
32206 * ira-costs.c (find_costs_and_classes): Add missed
32207 ira_init_register_move_cost_if_necessary.
32209 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
32212 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
32214 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
32217 * config/i386/i386.c (type_natural_mode): Add a bool parameter
32218 to indicate if type is used for function return value. Warn ABI
32219 change if the vector mode isn't available for function return value.
32220 (ix86_function_arg_advance): Pass false to type_natural_mode.
32221 (ix86_function_arg): Likewise.
32222 (ix86_gimplify_va_arg): Likewise.
32223 (function_arg_32): Don't warn ABI change.
32224 (ix86_function_value): Pass true to type_natural_mode.
32225 (ix86_return_in_memory): Likewise.
32226 (ix86_struct_value_rtx): Removed.
32227 (TARGET_STRUCT_VALUE_RTX): Likewise.
32229 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32231 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
32232 converting a conditional jump into a conditional return.
32234 2014-01-14 Richard Biener <rguenther@suse.de>
32236 PR tree-optimization/58921
32237 PR tree-optimization/59006
32238 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
32239 hoisting invariant stmts.
32240 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
32241 invariant loads on the preheader edge if possible.
32243 2014-01-14 Joey Ye <joey.ye@arm.com>
32245 * doc/plugin.texi (Building GCC plugins): Update to C++.
32247 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
32249 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
32250 (_mm_rcp28_round_ss): Ditto.
32251 (_mm_rsqrt28_round_sd): Ditto.
32252 (_mm_rsqrt28_round_ss): Ditto.
32253 (_mm_rcp28_sd): Ditto.
32254 (_mm_rcp28_ss): Ditto.
32255 (_mm_rsqrt28_sd): Ditto.
32256 (_mm_rsqrt28_ss): Ditto.
32257 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
32258 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
32259 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
32260 (IX86_BUILTIN_RCP28SD): Ditto.
32261 (IX86_BUILTIN_RCP28SS): Ditto.
32262 (IX86_BUILTIN_RSQRT28SD): Ditto.
32263 (IX86_BUILTIN_RSQRT28SS): Ditto.
32264 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
32265 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
32266 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
32267 (ix86_expand_special_args_builtin): Expand new FTYPE.
32268 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
32269 (srcp14<mode>): Make insn unary.
32270 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
32271 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
32272 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
32273 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
32274 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
32275 Fix rounding: make it SAE only.
32276 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32278 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32280 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
32281 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
32282 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
32283 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
32284 (round_saeonly_mask_scalar_operand4): Ditto.
32285 (round_saeonly_mask_scalar_op3): Ditto.
32286 (round_saeonly_mask_scalar_op4): Ditto.
32288 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32290 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
32291 Implement -maltivec=be for vec_insert and vec_extract.
32293 2014-01-10 DJ Delorie <dj@redhat.com>
32295 * config/msp430/msp430.md (call_internal): Don't allow memory
32296 references with SP as the base register.
32297 (call_value_internal): Likewise.
32298 * config/msp430/constraints.md (Yc): New. For memory references
32299 that don't use SP as a base register.
32301 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
32302 "an integer without a # prefix"
32303 * config/msp430/msp430.md (epilogue_helper): Use it.
32305 2014-01-13 Jakub Jelinek <jakub@redhat.com>
32308 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
32309 AVX512F gather builtins.
32310 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
32311 on gather decls with INTEGER_TYPE masktype.
32312 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
32313 directly into the builtin rather than hoisting it before loop.
32315 PR tree-optimization/59387
32316 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
32317 (scev_const_prop): If folded_casts and type has undefined overflow,
32318 use force_gimple_operand instead of force_gimple_operand_gsi and
32319 for each added stmt if it is assign with
32320 arith_code_with_undefined_signed_overflow, call
32321 rewrite_to_defined_overflow.
32322 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
32323 gimple-fold.h instead.
32324 (arith_code_with_undefined_signed_overflow,
32325 rewrite_to_defined_overflow): Moved to ...
32326 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
32327 rewrite_to_defined_overflow): ... here. No longer static.
32328 Include gimplify-me.h.
32329 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
32330 rewrite_to_defined_overflow): New prototypes.
32332 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32334 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
32336 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
32338 * builtins.c (get_object_alignment_2): Minor tweak.
32339 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
32341 2014-01-13 Christian Bruel <christian.bruel@st.com>
32343 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
32344 optimized non constant lengths.
32346 2014-01-13 Jakub Jelinek <jakub@redhat.com>
32349 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
32350 load as __atomic_load_N if possible.
32352 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
32354 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
32356 (rs6000_expand_builtin): Adjust call.
32358 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
32361 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
32362 * config/rs6000/rs6000.c: Include target-globals.h.
32363 (rs6000_set_current_function): Instead of doing target_reinit
32364 unconditionally, use save_target_globals_default_opts and
32365 restore_target_globals.
32367 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
32369 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
32370 (rs6000_expand_builtin): Handle mffs and mtfsf.
32371 (rs6000_init_builtins): Define mffs and mtfsf.
32372 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
32373 (rs6000_mffs): New pattern.
32374 (rs6000_mtfsf): New pattern.
32376 2014-01-11 Bin Cheng <bin.cheng@arm.com>
32378 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
32379 Start narrowing with START. Apply candidate-use pair
32380 and check overall cost in narrowing.
32381 (iv_ca_prune): Pass new argument.
32383 2014-01-10 Jeff Law <law@redhat.com>
32385 PR middle-end/59743
32386 * ree.c (combine_reaching_defs): Ensure the defining statement
32387 occurs before the extension when optimizing extensions with
32388 different source and destination hard registers.
32390 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
32393 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
32394 vtables into the type inheritance graph.
32396 2014-01-10 Jakub Jelinek <jakub@redhat.com>
32398 PR rtl-optimization/59754
32399 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
32400 modes in the REGNO != REGNO case.
32402 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32404 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
32406 2014-01-10 Jakub Jelinek <jakub@redhat.com>
32408 PR tree-optimization/59745
32409 * tree-predcom.c (tree_predictive_commoning_loop): Call
32410 free_affine_expand_cache if giving up because components is NULL.
32412 * target-globals.c (save_target_globals): Allocate < 4KB structs using
32413 GC in payload of target_globals struct instead of allocating them on
32414 the heap and the larger structs separately using GC.
32415 * target-globals.h (struct target_globals): Make regs, hard_regs,
32416 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
32417 of GTY((skip)) and change type to void *.
32418 (reset_target_globals): Cast loads from those fields to corresponding
32421 2014-01-10 Steve Ellcey <sellcey@mips.com>
32424 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
32425 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
32426 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
32428 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
32431 * aarch64-modes.def (CC_Zmode): New flags mode.
32432 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
32433 represents an equality.
32434 (aarch64_get_condition_code): Handle CC_Zmode.
32435 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
32437 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32439 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
32440 extraction in good case.
32442 2014-01-10 Richard Biener <rguenther@suse.de>
32444 PR tree-optimization/59374
32445 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
32446 checking after SLP discovery. Mark stmts not participating
32447 in any SLP instance properly.
32449 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32451 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
32452 when handling a SET rtx.
32454 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32456 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
32457 (cortex-a57): Likewise.
32458 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
32460 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32462 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
32463 non-iwmmxt builtins.
32465 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
32469 * ipa-devirt.c record_target_from_binfo): Take as argument
32470 stack of binfos and lookup matching one for virtual inheritance.
32471 (possible_polymorphic_call_targets_1): Update.
32473 2014-01-10 Huacai Chen <chenhc@lemote.com>
32475 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
32476 kernel strings for Loongson-2E/2F/3A.
32478 2014-01-10 Jakub Jelinek <jakub@redhat.com>
32480 PR middle-end/59670
32481 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
32482 is_gimple_call before calling gimple_call_internal_p.
32484 2014-01-09 Steve Ellcey <sellcey@mips.com>
32486 * Makefile.in (TREE_FLOW_H): Remove.
32487 (TREE_SSA_H): Add file names from tree-flow.h.
32488 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
32489 * tree.h: Remove tree-flow.h reference.
32490 * hash-table.h: Remove tree-flow.h reference.
32491 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
32492 reference with tree-ssa-loop.h.
32494 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32496 * doc/invoke.texi: Add -maltivec={be,le} options, and document
32497 default element-order behavior for -maltivec.
32498 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
32499 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
32500 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
32501 when targeting big endian, at least for now.
32502 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
32504 2014-01-09 Jakub Jelinek <jakub@redhat.com>
32506 PR middle-end/47735
32507 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
32508 var satisfies use_register_for_decl, just take into account type
32509 alignment, rather than decl alignment.
32511 PR tree-optimization/59622
32512 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
32513 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
32514 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
32515 Don't devirtualize for inplace at all. For targets.length () == 1,
32516 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
32518 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
32520 * config/i386/i386.md (cpu): Remove the unused btver1.
32522 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
32524 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
32526 2014-01-09 Jakub Jelinek <jakub@redhat.com>
32529 * tree-core.h (struct target_globals): New forward declaration.
32530 (struct tree_target_option): Add globals field.
32531 * tree.h (TREE_TARGET_GLOBALS): Define.
32532 (prepare_target_option_nodes_for_pch): New prototype.
32533 * target-globals.h (struct target_globals): Define even if
32534 !SWITCHABLE_TARGET.
32535 * tree.c (prepare_target_option_node_for_pch,
32536 prepare_target_option_nodes_for_pch): New functions.
32537 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
32538 * config/i386/i386.c: Include target-globals.h.
32539 (ix86_set_current_function): Instead of doing target_reinit
32540 unconditionally, use save_target_globals_default_opts and
32541 restore_target_globals.
32543 2014-01-09 Richard Biener <rguenther@suse.de>
32545 PR tree-optimization/59715
32546 * tree-cfg.h (split_critical_edges): Declare.
32547 * tree-cfg.c (split_critical_edges): Export.
32548 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
32550 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
32552 * cfgexpand.c (expand_stack_vars): Optionally disable
32553 asan stack protection.
32554 (expand_used_vars): Likewise.
32555 (partition_stack_vars): Likewise.
32556 * asan.c (asan_emit_stack_protection): Optionally disable
32557 after return stack usage.
32558 (instrument_derefs): Optionally disable memory access instrumentation.
32559 (instrument_builtin_call): Likewise.
32560 (instrument_strlen_call): Likewise.
32561 (asan_protect_global): Optionally disable global variables protection.
32562 * doc/invoke.texi: Added doc for new options.
32563 * params.def: Added new options.
32564 * params.h: Likewise.
32566 2014-01-09 Jakub Jelinek <jakub@redhat.com>
32568 PR rtl-optimization/59724
32569 * ifcvt.c (cond_exec_process_if_block): Don't call
32570 flow_find_head_matching_sequence with 0 longest_match.
32571 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
32572 non-active insns if !stop_after.
32573 (try_head_merge_bb): Revert 2014-01-07 changes.
32575 2014-01-08 Jeff Law <law@redhat.com>
32577 * ree.c (get_sub_rtx): New function, extracted from...
32578 (merge_def_and_ext): Here.
32579 (combine_reaching_defs): Use get_sub_rtx.
32581 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
32583 * cgraph.h (varpool_variable_node): Do not choke on null node.
32585 2014-01-08 Catherine Moore <clm@codesourcery.com>
32587 * config/mips/mips.md (simple_return): Attempt to use JRC
32589 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
32591 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
32593 PR rtl-optimization/59137
32594 * reorg.c (steal_delay_list_from_target): Call update_block for
32596 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
32598 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32600 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
32601 two duplicate entries.
32603 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
32606 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
32608 * config/mips/mips.c (mips_truncated_op_cost): New function.
32609 (mips_rtx_costs): Adjust test for BADDU.
32610 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
32612 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
32614 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
32615 (*baddu_si): ...this new pattern.
32617 2014-01-08 Jakub Jelinek <jakub@redhat.com>
32620 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
32622 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
32624 PR middle-end/57748
32625 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
32627 (expand_expr, expand_normal): Adjust.
32628 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
32629 inner_reference_p. Use inner_reference_p to expand inner references.
32630 (store_expr): Adjust.
32631 * cfgexpand.c (expand_call_stmt): Adjust.
32633 2014-01-08 Rong Xu <xur@google.com>
32635 * gcov-io.c (gcov_var): Move from gcov-io.h.
32636 (gcov_position): Ditto.
32637 (gcov_is_error): Ditto.
32638 (gcov_rewrite): Ditto.
32639 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
32640 only part to libgcc/libgcov.h.
32642 2014-01-08 Marek Polacek <polacek@redhat.com>
32644 PR middle-end/59669
32645 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
32647 2014-01-08 Marek Polacek <polacek@redhat.com>
32650 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
32652 2014-01-08 Jakub Jelinek <jakub@redhat.com>
32654 PR rtl-optimization/59649
32655 * stor-layout.c (get_mode_bounds): For BImode return
32656 0 and STORE_FLAG_VALUE.
32658 2014-01-08 Richard Biener <rguenther@suse.de>
32660 PR middle-end/59630
32661 * gimple.h (is_gimple_builtin_call): Remove.
32662 (gimple_builtin_call_types_compatible_p): New.
32663 (gimple_call_builtin_p): New overload.
32664 * gimple.c (is_gimple_builtin_call): Remove.
32665 (validate_call): Rename to ...
32666 (gimple_builtin_call_types_compatible_p): ... this and export. Also
32667 check return types.
32668 (validate_type): New static function.
32669 (gimple_call_builtin_p): New overload and adjust.
32670 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
32671 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
32672 (gimple_fold_stmt_to_constant_1): Likewise.
32673 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
32675 2014-01-08 Richard Biener <rguenther@suse.de>
32677 PR middle-end/59471
32678 * gimplify.c (gimplify_expr): Gimplify register-register type
32679 VIEW_CONVERT_EXPRs to separate stmts.
32681 2014-01-07 Jeff Law <law@redhat.com>
32683 PR middle-end/53623
32684 * ree.c (combine_set_extension): Handle case where source
32685 and destination registers in an extension insn are different.
32686 (combine_reaching_defs): Allow source and destination registers
32687 in extension to be different under limited circumstances.
32688 (add_removable_extension): Remove restriction that the
32689 source and destination registers in the extension are the same.
32690 (find_and_remove_re): Emit a copy from the extension's
32691 destination to its source after the defining insn if
32692 the source and destination registers are different.
32694 PR middle-end/59285
32695 * ifcvt.c (merge_if_block): If we are merging a block with more than
32696 one successor with a block with no successors, remove any BARRIER
32697 after the second block.
32699 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
32701 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
32703 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
32706 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
32707 for 14-bit register offsets when INT14_OK_STRICT is false.
32709 2014-01-07 Roland Stigge <stigge@antcom.de>
32710 Michael Meissner <meissner@linux.vnet.ibm.com>
32713 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
32714 Only check TFmode for SPE constants. Don't check TImode or TDmode.
32716 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
32718 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
32721 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
32723 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
32724 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
32725 rtx is const0_rtx or not.
32727 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
32730 * target-globals.c (save_target_globals): Remove this_fn_optab
32732 * toplev.c: Include optabs.h.
32733 (target_reinit): Temporarily restore the global options if another
32734 set of options are in force.
32736 2014-01-07 Jakub Jelinek <jakub@redhat.com>
32738 PR rtl-optimization/58668
32739 * cfgcleanup.c (flow_find_cross_jump): Don't count
32740 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
32741 to determine what is counted.
32742 (flow_find_head_matching_sequence): Use active_insn_p to determine
32744 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
32746 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
32747 determine what is counted.
32749 PR tree-optimization/59643
32750 * tree-predcom.c (split_data_refs_to_components): If one dr is
32751 read and one write, determine_offset fails and the write isn't
32752 in the bad component, just put the read into the bad component.
32754 2014-01-07 Mike Stump <mikestump@comcast.net>
32755 Jakub Jelinek <jakub@redhat.com>
32758 * tree-core.h (struct tree_optimization_option): Change optabs
32759 type from unsigned char * to void *.
32760 * optabs.c (init_tree_optimization_optabs): Adjust
32761 TREE_OPTIMIZATION_OPTABS initialization.
32763 2014-01-06 Jakub Jelinek <jakub@redhat.com>
32766 * config/i386/i386.h (struct machine_function): Add
32767 no_drap_save_restore field.
32768 * config/i386/i386.c (ix86_save_reg): Use
32769 !cfun->machine->no_drap_save_restore instead of
32770 crtl->stack_realign_needed.
32771 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
32772 this function clears frame_pointer_needed. Set
32773 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
32774 and DRAP reg is needed.
32776 2014-01-06 Marek Polacek <polacek@redhat.com>
32779 * doc/implement-c.texi: Mention that other integer types are
32780 permitted as bit-field types in strictly conforming mode.
32782 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
32784 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
32785 is newly allocated.
32787 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
32789 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
32791 2014-01-06 Martin Jambor <mjambor@suse.cz>
32794 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
32796 * ipa-prop.c (ipa_print_node_params): Fix indentation.
32798 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
32802 * var-tracking.c (add_stores): Preserve the value of the source even if
32803 we don't record the store.
32805 2014-01-06 Terry Guo <terry.guo@arm.com>
32807 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
32809 2014-01-05 Iain Sandoe <iain@codesourcery.com>
32812 * config/darwin.c (darwin_function_section): Adjust return values to
32813 correspond to optimisation changes made in r206070.
32815 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
32817 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
32818 from prefetch_block tune setting.
32819 (nocona_cost): Correct size of prefetch block to 64.
32821 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
32823 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
32824 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
32825 used to save the static chain register in the computation of the offset
32826 from which the FP registers need to be restored.
32828 2014-01-04 Jakub Jelinek <jakub@redhat.com>
32830 PR tree-optimization/59519
32831 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
32832 ICE if get_current_def (current_new_name) is already non-NULL, as long
32833 as it is a phi result of some other phi in *new_exit_bb that has
32836 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
32837 or vmovdqu* for misaligned_operand.
32838 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
32839 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
32840 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
32841 aligned_mem for AVX512F masked aligned load and store builtins and for
32842 non-temporal moves.
32844 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
32846 PR tree-optimization/59651
32847 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
32848 Address range for negative step should be added by TYPE_SIZE_UNIT.
32850 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
32852 * config/m68k/m68k.c (handle_move_double): Handle pushes with
32853 overlapping registers also for registers other than the stack pointer.
32855 2014-01-03 Marek Polacek <polacek@redhat.com>
32858 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
32861 2014-01-03 Jakub Jelinek <jakub@redhat.com>
32864 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
32867 * config/i386/i386.md (MODE_SIZE): New mode attribute.
32868 (push splitter): Use <P:MODE_SIZE> instead of
32869 GET_MODE_SIZE (<P:MODE>mode).
32870 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
32871 (mov -1, reg peephole2): Likewise.
32872 * config/i386/sse.md (*mov<mode>_internal,
32873 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
32874 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
32875 *<code><mode>3, *andnot<mode>3<mask_name>,
32876 <mask_codefor><code><mode>3<mask_name>): Likewise.
32877 * config/i386/subst.md (mask_mode512bit_condition,
32878 sd_mask_mode512bit_condition): Likewise.
32880 2014-01-02 Xinliang David Li <davidxl@google.com>
32882 PR tree-optimization/59303
32883 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
32884 (dump_predicates): Better output format.
32885 (pred_equal_p): New function.
32886 (is_neq_relop_p): Ditto.
32887 (is_neq_zero_form_p): Ditto.
32888 (pred_expr_equal_p): Ditto.
32889 (pred_neg_p): Ditto.
32890 (simplify_pred): Ditto.
32891 (simplify_preds_2): Ditto.
32892 (simplify_preds_3): Ditto.
32893 (simplify_preds_4): Ditto.
32894 (simplify_preds): Ditto.
32895 (push_pred): Ditto.
32896 (push_to_worklist): Ditto.
32897 (get_pred_info_from_cmp): Ditto.
32898 (is_degenerated_phi): Ditto.
32899 (normalize_one_pred_1): Ditto.
32900 (normalize_one_pred): Ditto.
32901 (normalize_one_pred_chain): Ditto.
32902 (normalize_preds): Ditto.
32903 (normalize_cond_1): Remove function.
32904 (normalize_cond): Ditto.
32905 (is_gcond_subset_of): Ditto.
32906 (is_subset_of_any): Ditto.
32907 (is_or_set_subset_of): Ditto.
32908 (is_and_set_subset_of): Ditto.
32909 (is_norm_cond_subset_of): Ditto.
32910 (pred_chain_length_cmp): Ditto.
32911 (convert_control_dep_chain_into_preds): Type change.
32912 (find_predicates): Ditto.
32913 (find_def_preds): Ditto.
32914 (destroy_predicates_vecs): Ditto.
32915 (find_matching_predicates_in_rest_chains): Ditto.
32916 (use_pred_not_overlap_with_undef_path_pred): Ditto.
32917 (is_pred_expr_subset): Ditto.
32918 (is_pred_chain_subset_of): Ditto.
32919 (is_included_in): Ditto.
32920 (is_superset_of): Ditto.
32922 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
32924 Update copyright years.
32926 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
32928 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
32929 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
32930 config/arc/arc.md, config/arc/arc.opt,
32931 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
32932 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
32933 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
32934 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
32935 config/linux-protos.h, config/linux.c, config/winnt-c.c,
32936 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
32937 vtable-verify.c, vtable-verify.h: Use the standard form for the
32940 2014-01-02 Tobias Burnus <burnus@net-b.de>
32942 * gcc.c (process_command): Update copyright notice dates.
32943 * gcov-dump.c: Ditto.
32945 * doc/cpp.texi: Bump @copying's copyright year.
32946 * doc/cppinternals.texi: Ditto.
32947 * doc/gcc.texi: Ditto.
32948 * doc/gccint.texi: Ditto.
32949 * doc/gcov.texi: Ditto.
32950 * doc/install.texi: Ditto.
32951 * doc/invoke.texi: Ditto.
32953 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32955 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
32957 2014-01-01 Jakub Jelinek <jakub@redhat.com>
32959 * config/i386/sse.md (*mov<mode>_internal): Guard
32960 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
32962 PR rtl-optimization/59647
32963 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
32964 new_rtx into UNSIGNED_FLOAT rtxes.
32966 Copyright (C) 2014 Free Software Foundation, Inc.
32968 Copying and distribution of this file, with or without modification,
32969 are permitted in any medium without royalty provided the copyright
32970 notice and this notice are preserved.