1 2014-11-12 Joseph Myers <joseph@codesourcery.com>
3 * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
4 Define __NO_MATH_ERRNO__ if -fno-math-errno.
5 * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7 2014-11-12 Richard Biener <rguenther@suse.de>
9 * genmatch.c (::gen_transform): Add capture_info and
10 expand_compares arguments.
11 (struct expr): Add is_generic flag.
12 (lower_cond): New functions lowering [VEC_]COND_EXPR
13 conditions to a GENERIC and a GIMPLE variant.
14 (lower): Call lower_cond.
15 (cmp_operand): Also compare the is_generic flag.
16 (capture_info::cinfo): Add cond_expr_cond_p flag.
17 (capture_info::capture_info): Pass down whether the
18 expression argument is a COND_EXPR condition.
19 (capture_info::walk_match): Likewise, mark captures
20 capturing COND_EXPR conditions with cond_expr_cond_p.
21 (expr::gen_transform): Pass down whether we need to
22 expand compares from COND_EXPR conditions.
23 (capture::gen_transform): Expand compares substituted
24 from COND_EXPR conditions into non-COND_EXPR conditions.
25 (dt_operand::gen_gimple_expr): Handle explicitely marked
26 GENERIC expressions as generic.
27 (dt_simplify::gen): Pass whether we need to expand
28 conditions to gen_transform. Handle capture results
29 which are from COND_EXPR conditions.
30 (main): Pass gimple flag down to lower.
32 2014-11-12 Jakub Jelinek <jakub@redhat.com>
35 * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
36 * builtins.c (fold_builtin_arith_overflow): New function.
37 (fold_builtin_3): Use it.
38 * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
39 BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
40 BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
41 BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
42 BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
43 BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
44 BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
45 BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
46 BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
47 BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
48 * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
49 BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
50 BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
51 BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
52 BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
53 * expr.c (write_complex_part): Remove prototype, no longer static.
54 * expr.h (write_complex_part): New prototype.
55 * function.c (aggregate_value_p): For internal functions return 0.
56 * gimple-fold.c (arith_overflowed_p): New functions.
57 (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
58 * gimple-fold.h (arith_overflowed_p): New prototype.
59 * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
60 (find_non_realpart_uses, maybe_optimize_arith_overflow): New
62 (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
63 into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
65 * gimplify.c (gimplify_call_expr): Handle gimplification of
66 internal calls with lhs.
67 * internal-fn.c (get_range_pos_neg, get_min_precision,
68 expand_arith_overflow_result_store): New functions.
69 (ubsan_expand_si_overflow_addsub_check): Renamed to ...
70 (expand_addsub_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
71 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
72 Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
73 (ubsan_expand_si_overflow_neg_check): Renamed to ...
74 (expand_neg_overflow): ... this. Add LOC, LHS, ARG1, IS_UBSAN
75 arguments, remove STMT argument. Handle SUB_OVERFLOW with
76 0 as first argument expansion.
77 (ubsan_expand_si_overflow_mul_check): Renamed to ...
78 (expand_mul_overflow): ... this. Add LOC, LHS, ARG0, ARG1,
79 UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
80 Handle MUL_OVERFLOW expansion.
81 (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
83 (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
84 expand_neg_overflow, prepare arguments for it.
85 (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
87 (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
88 expand_MUL_OVERFLOW): New functions.
89 * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
91 * tree-vrp.c (check_for_binary_op_overflow): New function.
92 (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
93 is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
94 (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
96 * optabs.def (umulv4_optab): New optab.
97 * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
98 (*umulv<mode>4, *<u>mulvqi4): New define_insns.
99 * doc/extend.texi (Integer Overflow Builtins): Document
100 __builtin_*_overflow.
102 2014-11-12 Richard Biener <rguenther@suse.de>
104 * genmatch.c (capture_info::capture_info): Add missing
106 (capture_info::walk_match): Fix COND_EXPR handling.
107 (capture_info::walk_result): Likewise.
109 2014-11-12 Richard Biener <rguenther@suse.de>
112 * match.pd: Add missing conversion to the -(T)-X pattern.
114 2014-11-12 Richard Biener <rguenther@suse.de>
117 * hash-table.h: Include ggc.h also for generator programs.
118 * genmatch.c (ggc_internal_cleared_alloc): Properly define
119 using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
121 2014-11-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
123 PR tree-optimization/63761
124 * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
125 rather than taking it as a parameter. Add some comments to explain the
126 gsi_move_before in case of load and why canonicalization of bswap into
127 a rotation is only done for 16bit values.
128 (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
129 refer to the statement just before cur_stmt. Ignore 16bit bswap that
130 are already in canonical form. Adapt bswap_replace to removal of its
133 2014-11-12 Richard Sandiford <richard.sandiford@arm.com>
135 * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
136 * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
137 (for_each_rtx_in_insn): Delete.
138 (init_rtlanal): Remove initialization of non_rtx_starting_operands.
139 * df-core.c: Remove reference to for_each_rtx in comment.
141 2014-11-12 Tejas Belagod <tejas.belagod@arm.com>
143 * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
144 arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
145 * doc/aarch64-acle-intrinsics.texi: Remove.
146 * doc/arm-acle-intrinsics.texi: Remove.
147 * doc/arm-neon-intrinsics.texi: Remove.
148 * doc/extend.texi: Consolidate sections AArch64 intrinsics,
149 ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
150 Extension section. Add references to public ACLE specification.
152 2014-11-11 Patrick Palka <ppalka@gcc.gnu.org>
154 * tree-vrp.c (register_edge_assert_for_2): Change return type to
155 void and adjust accordingly.
156 (register_edge_assert_for_1): Likewise.
157 (register_edge_assert_for): Likewise.
158 (find_conditional_asserts): Likewise.
159 (find_switch_asserts): Likewise.
160 (find_assert_locations_1): Likewise.
161 (find_assert_locations): Likewise.
162 (insert_range_insertions): Inspect the need_assert_for bitmap.
164 2014-11-11 Andrew Pinski <apinski@cavium.com>
167 * config.gcc (aarch64*-*-*): Set target_gtfiles to include
169 * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
170 at the end of the file.
172 2014-11-11 Anthony Brandon <anthony.brandon@gmail.com>
173 Manuel López-Ibáñez <manu@gcc.gnu.org>
176 * diagnostic-core.h: Add prototype for fatal_error.
177 * diagnostic.c (fatal_error): New function fatal_error.
178 * gcc.c (store_arg): Remove have_o_argbuf_index.
179 (process_command): Check if input and output files are the same.
180 * toplev.c (init_asm_output): Check if input and output files are
183 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
185 * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
187 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
190 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
191 smaller than 8 bytes.
192 (sparc_function_arg_1): Tweak.
193 (sparc_function_value_1): Tweak.
195 2014-11-11 David Malcolm <dmalcolm@redhat.com>
197 * ChangeLog.jit: New.
198 * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
199 sphinx is installed, falling back to "texinfo" otherwise.
200 (FULL_DRIVER_NAME): New variable, adapted from the
201 install-driver target. New target, a symlink within the builddir,
202 linked to "xgcc", for use when running the JIT library from the
204 (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
205 (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
207 * configure.ac (doc_build_sys): New variable, set to "sphinx" if
208 sphinx is installed, falling back to "texinfo" otherwise.
209 (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
210 GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
211 * configure: Regenerate.
212 * doc/install.texi (--enable-host-shared): Specify that this is
213 required when building libgccjit.
214 (Tools/packages necessary for modifying GCC): Add Sphinx.
215 * timevar.def (TV_JIT_REPLAY): New.
220 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
223 * configure: Regenerate.
225 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com>
227 * config/aarch64/aarch64-simd.md
228 (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
229 (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
230 are punning between float vectors and integer vectors.
232 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
234 * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
235 open-coded swap with std::swap to swap values.
236 (alpha_emit_setcc): Ditto.
237 (alpha_emit_conditional_move): Ditto.
238 (alpha_split_tmode_pair): Ditto.
240 2014-11-11 Evgeny Stupachenko <evstupac@gmail.com>
242 * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
243 permutations on power of 2 cases.
245 2014-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
247 * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
248 (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
250 2014-11-11 Richard Biener <rguenther@suse.de>
252 * tree-core.h (pedantic_lvalues): Remove.
253 * fold-const.c (pedantic_lvalues): Likewise.
254 (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
256 2014-11-11 Martin Liska <mliska@suse.cz>
260 * ipa-icf.c (sem_function::merge): Add new target symbol alias
262 (sem_variable::merge): Likewise.
263 * ipa-icf.h (target_supports_symbol_aliases_p): New function.
265 2014-11-11 Richard Biener <rguenther@suse.de>
267 * match.pd: Implement patterns from associate_plusminus
268 and factor in differences from the fold-const.c implementation.
269 * fold-const.c (fold_binary_loc): Remove patterns here.
270 * tree-ssa-forwprop.c (associate_plusminus): Remove.
271 (pass_forwprop::execute): Don't call it.
272 * tree.c (tree_nop_conversion_p): New function, factored
273 from tree_nop_conversion.
274 * tree.h (tree_nop_conversion_p): Declare.
276 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
278 * system.h: Include algorithm and utility.
279 * rtl.h: Do not include utility here.
281 * tree-vect-data-refs.c (swap): Remove template.
282 (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
284 2014-11-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
288 * system.h: Include <string> before "safe-ctype.h"
289 * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
290 calls to min/max with wi namespace.
291 * ipa-chkp.c: Don't include <string>.
293 2014-11-11 Terry Guo <terry.guo@arm.com>
295 * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
296 * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
298 (*thumb1_movhf): Likewise.
300 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
302 * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
303 instead of INT64_MAX.
305 2014-11-11 Tobias Burnus <burnus@net-b.de>
307 * doc/install.texi (Prerequisites): Remove CLooG.
309 2014-11-10 Trevor Saunders <tsaunders@mozilla.com>
311 * ipa-inline.c (edge_badness): Adjust.
312 (inline_small_functions): Likewise.
313 * predict.c (propagate_freq): Likewise.
314 (estimate_bb_frequencies): Likewise.
315 * sreal.c (sreal::dump): Rename from dump_sreal.
317 (copy): Remove function.
318 (sreal::shift_right): Rename from sreal_sift_right.
319 (sreal::normalize): Rename from normalize.
320 (sreal_init): Remove function.
321 (sreal::to_int): Rename from sreal_to_int.
322 (sreal_compare): Remove function.
323 (sreal::operator+): Rename from sreal_add.
324 (sreal::operator-): Rename from sreal_sub.
325 (sreal::operator*): Rename from sreal_mul.
326 (sreal::operator/): Rename from sreal_div.
327 * sreal.h (class sreal): Adjust.
328 (inline sreal &operator+=): New operator.
329 (inline sreal &operator-=): Likewise.
330 (inline sreal &operator/=): Likewise.
331 (inline sreal &operator*=): Likewise.
332 (inline bool operator!=): Likewise.
333 (inline bool operator>): Likewise.
334 (inline bool operator<=): Likewise.
335 (inline bool operator>=): Likewise.
337 2014-11-11 Bin Cheng <bin.cheng@arm.com>
339 * sched-deps.c (sched_analyze_1): Check pending list if it is not
340 less than MAX_PENDING_LIST_LENGTH.
341 (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
343 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
345 * config/i386/i386.c (ix86_decompose_address): Replace open-coded
346 swap with std::swap to swap values.
347 (ix86_fixup_binary_operands): Ditto.
348 (ix86_binary_operator_ok): Ditto.
349 (ix86_prepare_fp_compare_args): Ditto.
350 (ix86_expand_branch): Ditto.
351 (ix86_expand_carry_flag_compare): Ditto.
352 (ix86_expand_int_movcc): Ditto.
353 (ix86_prepare_sse_fp_compare_args): Ditto.
354 (ix86_expand_sse_fp_minmax): Ditto.
355 (ix86_expand_int_vcond): Ditto.
356 (ix86_split_long_move): Ditto.
357 (ix86_expand_sse_comi): Ditto.
358 (ix86_expand_sse_compare_and_jump): Ditto.
359 (ix86_expand_sse_compare_mask): Ditto.
360 * config/i386/i386.md (*add<mode>_1): Ditto.
361 (addsi_1_zext): Ditto.
364 (*add<mode>_2): Ditto.
365 (*addsi_2_zext): Ditto.
366 (*add<mode>_3): Ditto.
367 (*addsi_3_zext): Ditto.
368 (*add<mode>_5): Ditto.
369 (absneg splitter): Ditto.
371 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
374 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
377 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
378 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
379 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
380 be reloaded through memory.
384 2014-11-11 Jakub Jelinek <jakub@redhat.com>
385 Martin Liska <mliska@suse.cz>
387 * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
388 (func_checker::compare_gimple_call): Compare gimple_call_fn,
389 gimple_call_chain, gimple_call_fntype and call flags.
391 2014-11-10 Vladimir Makarov <vmakarov@redhat.com>
393 PR rtl-optimization/63620
394 PR rtl-optimization/63799
395 * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
396 and setting PIC pseudo insns.
397 (lra_create_live_ranges): Fix the typo.
399 2014-11-10 Patrick Palka <ppalka@gcc.gnu.org>
402 * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
403 SSA copies whose source and destination names both occur in
406 2014-11-10 Roman Gareev <gareevroman@gmail.com>
408 * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
409 * common.opt: Remove using of fgraphite-code-generator flag.
410 * flag-types.h: Likewise.
411 * graphite.c: Remove using of CLooG.
412 * graphite-blocking.c: Likewise.
413 * graphite-dependences.c: Likewise.
414 * graphite-poly.c: Likewise.
415 * graphite-poly.h: Likewise.
416 * graphite-scop-detection.c: Likewise.
417 * graphite-sese-to-poly.c: Likewise.
418 * graphite-clast-to-gimple.c: Removed.
419 * graphite-clast-to-gimple.h: Likewise.
420 * graphite-htab.h: Likewise.
422 2014-11-10 Paolo Carlini <paolo.carlini@oracle.com>
424 * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
427 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
429 * config/frv/frv.c (frv_io_handle_use_1): Delete.
430 (frv_io_handle_use): Use find_all_hard_regs.
432 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
434 * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
435 than an rtx *. Take the regstate_t directly rather than via a void *.
436 Return a bool rather than an int. Iterate over all subrtxes here.
437 (frv_registers_conflict_p): Update accordingly.
439 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
441 * config/frv/frv.c: Include rtl-iter.h.
442 (frv_acc_group_1): Delete.
443 (frv_acc_group): Use FOR_EACH_SUBRTX.
445 2014-11-10 Richard Sandiford <richard.sandiford@arm.com>
447 * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
448 (frv_clear_registers_used): Delete.
449 (frv_ifcvt_modify_tests): Use find_all_hard_regs.
451 2014-11-10 Jan Hubicka <hubicka@ucw.cz>
454 * calls.c (initialize_argument_information): When emitting thunk call
455 use original memory placement of the argument.
457 2014-11-10 Renlin Li <renlin.li@arm.com>
460 * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
462 2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
464 * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
465 bswaphi if available.
467 2014-11-10 Bernd Schmidt <bernds@codesourcery.com>
469 * config/nvptx/nvptx.c: New file.
470 * config/nvptx/nvptx.h: New file.
471 * config/nvptx/nvptx-protos.h: New file.
472 * config/nvptx/nvptx.md: New file.
473 * config/nvptx/t-nvptx: New file.
474 * config/nvptx/nvptx.opt: New file.
475 * common/config/nvptx/nvptx-common.c: New file.
476 * config.gcc: Handle nvptx-*-*.
478 2014-11-10 Richard Biener <rguenther@suse.de>
480 * tree-ssa-operands.c (finalize_ssa_uses): Properly put
481 released operands on the free list.
483 2014-11-10 Richard Biener <rguenther@suse.de>
485 * match.pd: Implement pattern from simplify_mult.
486 * tree-ssa-forwprop.c (simplify_mult): Remove.
487 (pass_forwprop::execute): Do not call simplify_mult.
489 2014-11-10 Richard Biener <rguenther@suse.de>
491 PR tree-optimization/63800
492 * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
493 we can restore the previous availability in after_dom_children.
494 (eliminate_dom_walker::after_dom_children): Restore
495 previous availability.
497 2014-11-10 Richard Biener <rguenther@suse.de>
500 * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
501 properly treat the embedded multiplication as commutative
502 when looking for feeding negates.
504 2014-11-10 Joern Rennecke <joern.rennecke@embecosm.com>
506 * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
508 2014-11-10 Martin Liska <mliska@suse.cz>
510 * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
511 for the test because of default char signedness
514 2014-11-10 Richard Biener <rguenther@suse.de>
516 * match.pd: Implement pattern from simplify_conversion_from_bitmask.
517 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
518 (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
520 2014-11-10 Richard Biener <rguenther@suse.de>
522 * match.pd: Move rest of the conversion combining patterns
523 from tree-ssa-forwprop.c.
524 * tree-ssa-forwprop.c (combine_conversions): Remove.
525 (pass_forwprop::execute): Do not call it.
527 2014-11-10 Eric Botcazou <ebotcazou@adacore.com>
529 * gimple-low.c (lower_function_body): Clear the location of the first
530 inserted representative return if it also fills in for the fallthru.
532 2014-11-10 Yuri Rumyantsev <ysrumyan@gmail.com>
534 * tree-if-conv.c (add_to_predicate_list): Check unconditionally
535 that bb is always executed to early exit. Use predicate of
536 cd-equivalent block for join blocks if it exists.
537 (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
538 (tree_if_conversion): Free post-dominance information.
540 2014-11-09 Jason Merrill <jason@redhat.com>
542 * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
543 * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
544 (_mm_mask_cvtusepi32_storeu_epi16)
545 (_mm_mask_cvtsepi64_storeu_epi32): Return void.
547 2014-11-09 Joern Rennecke <joern.rennecke@embecosm.com>
549 * config/avr/predicates.md (low_io_address_operand): Fix typo.
551 2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
553 PR rtl-optimization/63620
554 * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
555 name. Move to lra.c. Make it external.
556 (substitute_pseudo_within_insn): Ditto.
557 (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
559 (undo_optional_reloads): Ditto.
560 * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
562 (lra_substitute_pseudo_within_insn): Ditto.
563 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
564 (mark_regno_live): Add parameter. Update bb_gen_pseudos.
565 (mark_regno_dead): Add parameter. Update bb_gen_pseudos and
567 (struct bb_data, bb_data_t, bb_data): New.
568 (get_bb_data, get_bb_data_by_index): Ditto.
569 (all_hard_regs_bitmap): New.
570 (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
571 (initiate_live_solver, finish_live_solver): New.
572 (process_bb_lives): Change return type. Add code updating local
573 live data and removing dead insns. Pass new argument to
574 mark_regno_live and mark_regno_dead. Check changing bb pseudo
575 life info. Return the result.
576 (lra_create_live_ranges): Add code to do global pseudo live
578 (lra_live_ranges_init): Call initiate_live_solver.
579 (lra_live_ranges_finish): Call finish_live_solver.
580 * lra.c (lra_dump_bitmap_with_title): New.
581 (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
582 from lra-constraints.c.
584 2014-11-09 Richard Biener <rguenther@suse.de>
586 * match.pd: Add patterns convering two conversions in a row
588 * fold-const.c (fold_unary_loc): Remove them here.
589 * tree-ssa-forwprop.c (combine_conversions): Likewise.
590 * genmatch.c (dt_node::gen_kids): Check whether we may
591 follow SSA use-def chains.
593 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
595 * config/aarch64/aarch64.c: Include rtl-iter.h.
596 (aarch64_tls_operand_p_1): Delete.
597 (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
599 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
601 * config/arm/arm.c (arm_note_pic_base): Delete.
602 (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
604 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
606 * config/arm/arm.c: Include rtl-iter.h.
607 (arm_tls_referenced_p_1): Delete.
608 (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
610 2014-11-08 Richard Sandiford <richard.sandiford@arm.com>
612 * config/arm/aarch-common.c: Include rtl-iter.h.
613 (search_term, arm_find_sub_rtx_with_search_term): Delete.
614 (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
615 (arm_get_set_operands): Pass the insn pattern rather than the
617 (arm_no_early_store_addr_dep): Likewise.
619 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
621 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
623 (thumb_set_return_address): Likewise.
625 2014-11-07 Jeff Law <law@redhat.com>
627 PR tree-optimization/61515
628 * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
629 stack rather than looking at every SSA_NAME's value.
631 2014-11-07 Richard Biener <rguenther@suse.de>
633 PR tree-optimization/63605
634 * fold-const.c (fold_binary_loc): Properly use element_precision
635 for types that may not be scalar.
637 2014-11-07 Evgeny Stupachenko <evstupac@gmail.com>
640 * config/i386/i386.md (builtin_setjmp_receiver): Use
641 pic_offset_table_rtx for PIC register.
642 (nonlocal_goto_receiver): Delete.
644 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
646 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
647 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
649 2014-11-07 Martin Liska <mliska@suse.cz>
652 * cgraphunit.c (cgraph_node::create_wrapper):
653 TREE_ADDRESSABLE is set to false for a newly created thunk.
655 2014-11-07 Martin Liska <mliska@suse.cz>
658 * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
659 Missing checking for CASE_LOW and CASE_HIGH added.
661 2014-11-07 Martin Liska <mliska@suse.cz>
664 * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
665 is correctly handled for thunks created by IPA ICF.
667 2014-11-07 Jiong Wang <jiong.wang@arm.com>
668 2014-11-07 Richard Biener <rguenther@suse.de>
670 PR tree-optimization/63676
671 * gimple-fold.c (fold_gimple_assign): Do not fold node when
672 TREE_CLOBBER_P be true.
674 2014-11-07 Richard Biener <rguenther@suse.de>
677 * match.pd: Guard conflicting GENERIC pattern properly.
679 2014-11-07 Richard Biener <rguenther@suse.de>
681 * match.pd: Add patterns for POINTER_PLUS_EXPR association
682 and special patterns from tree-ssa-forwprop.c
683 * fold-const.c (fold_binary_loc): Remove them here.
684 * tree-ssa-forwprop.c (to_purge): New global bitmap.
685 (fwprop_set_lattice_val): New function.
686 (fwprop_invalidate_lattice): Likewise.
687 (remove_prop_source_from_use): Instead of purging dead EH
688 edges record blocks to do that in to_purge.
689 (tidy_after_forward_propagate_addr): Likewise.
690 (forward_propagate_addr_expr): Invalidate the lattice for
691 SSA names we release.
692 (simplify_conversion_from_bitmask): Likewise.
693 (simplify_builtin_call): Likewise.
694 (associate_pointerplus_align): Remove.
695 (associate_pointerplus_diff): Likewise.
696 (associate_pointerplus): Likewise.
697 (fold_all_stmts): Merge with ...
698 (pass_forwprop::execute): ... the original loop over all
699 basic-blocks. Delay purging dead EH edges and invalidate
700 the lattice for SSA names we release.
702 2014-11-07 Terry Guo <terry.guo@arm.com>
704 * config/arm/arm.opt (masm-syntax-unified): New option.
705 * doc/invoke.texi (-masm-syntax-unified): Document new option.
706 * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
707 (ASM_APP_ON): Redefined.
708 * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
709 code always use UAL syntax.
710 (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
711 * config/arm/thumb1.md: Likewise.
713 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
715 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
716 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
719 2014-11-06 Steve Ellcey <sellcey@imgtec.com>
721 * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
722 Set default_mips_arch and default_mips_abi instead of tm_defines.
723 (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
725 (mips*-*-*): Check with_arch and with_abi. Set tm_defines.
726 * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
727 based on MIPS_ABI_DEFAULT.
728 (STANDARD_STARTFILE_PREFIX_2): Ditto.
730 2014-11-06 Joseph Myers <joseph@codesourcery.com>
732 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
733 cases of extended identifiers.
735 2014-11-06 Eric Botcazou <ebotcazou@adacore.com>
737 * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
739 2014-11-06 DJ Delorie <dj@redhat.com>
741 * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
743 (movhicc_<code>_<mode>): Likewise.
744 * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
746 (m32c_eh_return_data_regno): Change to using memregs to avoid
747 tying up all the compute regs.
748 (m32c_legitimate_address_p) Subregs are not valid addresses.
750 2014-11-06 Bernd Schmidt <bernds@codesourcery.com>
752 * function.c (thread_prologue_and_epilogue_insns): No longer static.
753 * function.h (thread_prologue_and_epilogue_insns): Declare.
755 * target.def (assemble_undefined_decl): New hooks.
756 * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
757 * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
758 * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
759 * doc/tm.texi: Regenerate.
760 * output.h (assemble_undefined_decl): Declare.
761 (get_fnname_from_decl): Declare.
762 * varasm.c (assemble_undefined_decl): New function.
763 (get_fnname_from_decl): New function.
764 * final.c (rest_of_handle_final): Use it.
765 * varpool.c (varpool_output_variables): Call assemble_undefined_decl
766 for nodes without a definition.
768 * target.def (call_args, end_call_args): New hooks.
769 * hooks.c (hook_void_rtx_tree): New empty function.
770 * hooks.h (hook_void_rtx_tree): Declare.
771 * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
772 * doc/tm.texi: Regenerate.
773 * calls.c (expand_call): Slightly rearrange the code. Use the two new
775 (expand_library_call_value_1): Use the two new hooks.
777 * expr.c (use_reg_mode): Just return for pseudo registers.
779 * combine.c (try_combine): Don't allow a call as one of the source
782 * target.def (decl_end): New hook.
783 * varasm.c (assemble_variable_contents, assemble_constant_contents):
785 * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
786 * doc/tm.texi: Regenerate.
788 2014-11-06 Renlin Li <renlin.li@arm.com>
790 * config/aarch64/aarch64.c (aarch64_architecture_version): New.
791 (processor): New architecture_version field.
792 (aarch64_override_options): Initialize aarch64_architecture_version.
793 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
794 __ARM_ARCH_PROFILE, aarch64_arch_name macro.
796 2014-11-06 James Greenhalgh <james.greenhalgh@arm.com>
798 * params.def (sra-max-scalarization-size-Ospeed): New.
799 (sra-max-scalarization-size-Osize): Likewise.
800 * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
801 (sra-max-scalarization-size-Osize): Likewise.
802 * toplev.c (process_options): Set default values for new
804 * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
805 * targhooks.c (get_move_ratio): Remove static designator.
806 * target.h (get_move_ratio): Declare.
808 2014-11-06 Marek Polacek <polacek@redhat.com>
810 * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
813 2014-11-06 Richard Biener <rguenther@suse.de>
815 * match.pd: Implement bitwise binary and unary simplifications
816 from tree-ssa-forwprop.c.
817 * fold-const.c (fold_unary_loc): Remove them here.
818 (fold_binary_loc): Likewise.
819 * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
820 (truth_valued_ssa_name): Likewise.
821 (lookup_logical_inverted_value): Likewise.
822 (simplify_bitwise_binary_1): Likewise.
823 (hoist_conversion_for_bitop_p): Likewise.
824 (simplify_bitwise_binary_boolean): Likewise.
825 (simplify_bitwise_binary): Likewise.
826 (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
827 and simplify_bitwise_binary.
828 * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
829 (decision_tree::insert): Also insert non-expressions.
831 2014-11-06 Hale Wang <hale.wang@arm.com>
833 * config/arm/arm-cores.def: Add support for
834 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
835 cortex-m1.small-multiply.
836 * config/arm/arm-tables.opt: Regenerate.
837 * config/arm/arm-tune.md: Regenerate.
838 * config/arm/arm.c: Update the rtx-costs for MUL.
839 * config/arm/bpabi.h: Handle
840 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
841 cortex-m1.small-multiply.
842 * doc/invoke.texi: Document
843 -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
844 cortex-m1.small-multiply.
846 2014-11-06 Hale Wang <hale.wang@arm.com>
848 * config/arm/arm.c: Add cortex-m7 tune.
849 * config/arm/arm-cores.def: Use cortex-m7 tune.
851 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
854 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
855 (ix86_encode_section_info): Do not check for non-automatic varibles
856 when setting SYMBOL_FLAG_FAR_ADDR flag.
857 (x86_64_elf_select_section): Do not check ix86_cmodel here.
858 (x86_64_elf_unique_section): Ditto.
859 (x86_elf_aligned_common): Emit tab before .largecomm.
861 2014-11-05 Joseph Myers <joseph@codesourcery.com>
864 * doc/cpp.texi (Character sets, Tokenization)
865 (Implementation-defined behavior): Don't refer to UCNs in
866 identifiers requiring -fextended-identifiers.
867 * doc/cppopts.texi (-fextended-identifiers): Document as enabled
868 by default for C99 and later and C++.
869 * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
870 identifiers needing -fextended-identifiers.
872 2014-11-05 Ilya Tocar <ilya.tocar@intel.com>
874 * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
875 for 512-bit wide modes.
876 (expand_vec_perm_1): Use correct versions of patterns.
877 * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
878 (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
880 2014-11-05 Ilya Enkovich <ilya.enkovich@intel.com>
886 * tree-chkp-opt.c: New.
889 * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
891 (GTFILES): Add tree-chkp.c.
892 * mode-classes.def (MODE_POINTER_BOUNDS): New.
893 * tree.def (POINTER_BOUNDS_TYPE): New.
894 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
895 (POINTER_BOUNDS_MODE): New.
896 (make_pointer_bounds_mode): New.
897 * machmode.h (POINTER_BOUNDS_MODE_P): New.
898 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
899 (layout_type): Support POINTER_BOUNDS_TYPE.
900 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
901 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
902 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
903 (type_contains_placeholder_1): Likewise.
904 (build_common_tree_nodes): Initialize
905 pointer_bounds_type_node.
906 * tree.h (POINTER_BOUNDS_TYPE_P): New.
907 (pointer_bounds_type_node): New.
908 (POINTER_BOUNDS_P): New.
909 (BOUNDED_TYPE_P): New.
911 (CALL_WITH_BOUNDS_P): New.
912 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
913 (gimple_call_with_bounds_p): New.
914 (gimple_call_set_with_bounds): New.
915 (gimple_return_retbnd): New.
916 (gimple_return_set_retbnd): New
917 * gimple.c (gimple_build_return): Increase number of ops
918 for return statement.
919 (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
921 * gimple-pretty-print.c (dump_gimple_return): Print second op.
922 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
923 * gimplify.c (gimplify_init_constructor): Avoid infinite
924 loop during gimplification of bounds initializer.
925 * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
926 (special_function_p): Use original decl name when analyzing
927 instrumentation clone.
928 (arg_data): Add fields special_slot, pointer_arg and
931 (emit_call_1): Propagate instrumentation flag for CALL.
932 (initialize_argument_information): Compute pointer_arg,
933 pointer_offset and special_slot for pointer bounds arguments.
934 (finalize_must_preallocate): Preallocate when storing bounds
936 (compute_argument_addresses): Skip pointer bounds.
937 (expand_call): Store bounds into tables separately. Return
938 result joined with resulting bounds.
939 * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
940 (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
941 (expand_return): Add returned bounds arg. Handle returned bounds.
942 (expand_gimple_stmt_1): Adjust to new expand_return signature.
943 (gimple_expand_cfg): Reset rtx bounds map.
944 * expr.c: Include tree-chkp.h, rtl-chkp.h.
945 (expand_assignment): Handle returned bounds.
946 (store_expr_with_bounds): New. Replaces store_expr with new bounds
947 target argument. Handle bounds returned by calls.
948 (store_expr): Now wraps store_expr_with_bounds.
949 * expr.h (store_expr_with_bounds): New.
950 * function.c: Include tree-chkp.h, rtl-chkp.h.
951 (bounds_parm_data): New.
952 (use_register_for_decl): Do not registerize decls used for bounds
954 (assign_parms_augmented_arg_list): Add bounds of the result
955 structure pointer as the second argument.
956 (assign_parm_find_entry_rtl): Mark bounds are never passed on
958 (assign_parm_is_stack_parm): Likewise.
959 (assign_parm_load_bounds): New.
960 (assign_bounds): New.
961 (assign_parms): Load bounds and determine a location for
963 (diddle_return_value_1): New.
964 (diddle_return_value): Handle returned bounds.
965 * function.h (rtl_data): Add field for returned bounds.
966 * varasm.c: Include tree-chkp.h.
967 (output_constant): Support POINTER_BOUNDS_TYPE.
968 (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
969 (ultimate_transparent_alias_target): Move up.
970 (make_decl_rtl): For instrumented function use
971 name of the original decl.
972 (assemble_start_function): Mark function as global
973 in case it is instrumentation clone of the global
975 (do_assemble_alias): Follow transparent alias chain
976 for identifier. Check if original alias is public.
977 (maybe_assemble_visibility): Use visibility of the
978 original function for instrumented version.
979 (default_unique_section): Likewise.
980 * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
981 (init_emit_once): Build pointer bounds zero constants.
982 * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
983 * target.def (builtin_chkp_function): New.
984 (chkp_bound_type): New.
985 (chkp_bound_mode): New.
986 (chkp_make_bounds_constant): New.
987 (chkp_initialize_bounds): New.
988 (load_bounds_for_arg): New.
989 (store_bounds_for_arg): New.
990 (load_returned_bounds): New.
991 (store_returned_bounds): New.
992 (chkp_function_value_bounds): New.
993 (setup_incoming_vararg_bounds): New.
994 (function_arg): Update hook description with new possible return
996 * targhooks.h (default_load_bounds_for_arg): New.
997 (default_store_bounds_for_arg): New.
998 (default_load_returned_bounds): New.
999 (default_store_returned_bounds): New.
1000 (default_chkp_bound_type): New.
1001 (default_chkp_bound_mode): New.
1002 (default_builtin_chkp_function): New.
1003 (default_chkp_function_value_bounds): New.
1004 (default_chkp_make_bounds_constant): New.
1005 (default_chkp_initialize_bounds): New.
1006 (default_setup_incoming_vararg_bounds): New.
1007 * targhooks.c (default_load_bounds_for_arg): New.
1008 (default_store_bounds_for_arg): New.
1009 (default_load_returned_bounds): New.
1010 (default_store_returned_bounds): New.
1011 (default_chkp_bound_type): New.
1012 (default_chkp_bound_mode); New.
1013 (default_builtin_chkp_function): New.
1014 (default_chkp_function_value_bounds): New.
1015 (default_chkp_make_bounds_constant): New.
1016 (default_chkp_initialize_bounds): New.
1017 (default_setup_incoming_vararg_bounds): New.
1018 * builtin-types.def (BT_BND): New.
1019 (BT_FN_PTR_CONST_PTR): New.
1020 (BT_FN_CONST_PTR_CONST_PTR): New.
1021 (BT_FN_BND_CONST_PTR): New.
1022 (BT_FN_CONST_PTR_BND): New.
1023 (BT_FN_PTR_CONST_PTR_SIZE): New.
1024 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
1025 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
1026 (BT_FN_VOID_CONST_PTR_SIZE): New.
1027 (BT_FN_VOID_PTR_BND): New.
1028 (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
1029 (BT_FN_BND_CONST_PTR_SIZE): New.
1030 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
1031 (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
1032 * chkp-builtins.def: New.
1033 * builtins.def: include chkp-builtins.def.
1034 (DEF_CHKP_BUILTIN): New.
1035 * builtins.c: Include tree-chkp.h and rtl-chkp.h.
1036 (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
1037 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
1038 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
1039 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
1040 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
1041 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
1042 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
1043 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
1044 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
1045 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
1046 (std_expand_builtin_va_start): Init bounds for va_list.
1047 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
1048 __CHKP__ macro when Pointer Bounds Checker is on.
1049 * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
1050 * passes.def (pass_ipa_chkp_versioning): New.
1051 (pass_early_local_passes): Renamed to pass_build_ssa_passes.
1052 (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
1053 (pass_chkp_instrumentation_passes): New.
1054 (pass_ipa_chkp_produce_thunks): New.
1055 (pass_local_optimization_passes): New.
1056 (pass_chkp_opt): New.
1057 * tree-pass.h (make_pass_ipa_chkp_versioning): New.
1058 (make_pass_ipa_chkp_produce_thunks): New.
1059 (make_pass_chkp): New.
1060 (make_pass_chkp_opt): New.
1061 (make_pass_early_local_passes): Renamed to ...
1062 (make_pass_build_ssa_passes): This.
1063 (make_pass_chkp_instrumentation_passes): New.
1064 (make_pass_local_optimization_passes): New.
1065 * passes.c (pass_manager::execute_early_local_passes): Execute
1066 early passes in three steps.
1067 (execute_all_early_local_passes): Renamed to ...
1068 (execute_build_ssa_passes): This.
1069 (pass_data_early_local_passes): Renamed to ...
1070 (pass_data_build_ssa_passes): This.
1071 (pass_early_local_passes): Renamed to ...
1072 (pass_build_ssa_passes): This.
1073 (pass_data_chkp_instrumentation_passes): New.
1074 (pass_chkp_instrumentation_passes): New.
1075 (pass_data_local_optimization_passes): New.
1076 (pass_local_optimization_passes): New.
1077 (make_pass_early_local_passes): Renamed to ...
1078 (make_pass_build_ssa_passes): This.
1079 (make_pass_chkp_instrumentation_passes): New.
1080 (make_pass_local_optimization_passes): New.
1081 * c-family/c.opt (fcheck-pointer-bounds): New.
1082 (fchkp-check-incomplete-type): New.
1083 (fchkp-zero-input-bounds-for-main): New.
1084 (fchkp-first-field-has-own-bounds): New.
1085 (fchkp-narrow-bounds): New.
1086 (fchkp-narrow-to-innermost-array): New.
1087 (fchkp-optimize): New.
1088 (fchkp-use-fast-string-functions): New.
1089 (fchkp-use-nochk-string-functions): New.
1090 (fchkp-use-static-bounds): New.
1091 (fchkp-use-static-const-bounds): New.
1092 (fchkp-treat-zero-dynamic-size-as-infinite): New.
1093 (fchkp-check-read): New.
1094 (fchkp-check-write): New.
1095 (fchkp-store-bounds): New.
1096 (fchkp-instrument-calls): New.
1097 (fchkp-instrument-marked-only): New.
1099 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
1100 (handle_bnd_legacy): New.
1101 (handle_bnd_instrument): New.
1102 (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
1103 and bnd_instrument. Fix documentation.
1104 (c_common_format_attribute_table): Likewsie.
1105 * toplev.c: include tree-chkp.h.
1106 (process_options): Check Pointer Bounds Checker is supported.
1107 (compile_file): Add chkp_finish_file call.
1108 * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
1109 to handle instrumentation clones properly.
1110 (propagate_constants_accross_call): Do not propagate
1111 through instrumentation thunks.
1112 * ipa-pure-const.c (propagate_pure_const): Support
1114 * ipa-inline.c (early_inliner): Check edge has summary allocated.
1115 * ipa-split.c: Include tree-chkp.h.
1117 (split_part_set_ssa_name_p): New.
1118 (consider_split): Do not split retbnd and retval
1120 (insert_bndret_call_after): new.
1121 (split_function): Propagate Pointer Bounds Checker
1122 instrumentation marks and handle returned bounds.
1123 * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
1124 into bit field and add with_bounds field.
1125 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
1126 with_bounds field for instrumented calls.
1127 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
1128 CALL_WITH_BOUNDS_P flag for calls.
1129 * tree-ssa-ccp.c: Include tree-chkp.h.
1130 (insert_clobber_before_stack_restore): Handle
1131 BUILT_IN_CHKP_BNDRET calls.
1132 * tree-ssa-dce.c: Include tree-chkp.h.
1133 (propagate_necessity): For free call fed by alloc check
1134 bounds are also provided by the same alloc.
1135 (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
1137 * tree-inline.c: Include tree-chkp.h.
1138 (declare_return_variable): Add arg holding
1139 returned bounds slot. Create and initialize returned bounds var.
1140 (remap_gimple_stmt): Handle returned bounds.
1141 Return sequence of statements instead of a single statement.
1142 (insert_init_stmt): Add declaration.
1143 (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
1144 (copy_bb): Adjust to changed return type of remap_gimple_stmt.
1145 Properly handle bounds in va_arg_pack and va_arg_pack_len.
1146 (expand_call_inline): Handle returned bounds. Add bounds copy
1147 for generated mem to mem assignments.
1148 * tree-inline.h (copy_body_data): Add fields retbnd and
1150 * value-prof.c: Include tree-chkp.h.
1151 (gimple_ic): Support returned bounds.
1152 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
1153 with "chkp ctor" and "bnd_legacy" attributes.
1154 (symtab_remove_unreachable_nodes): Keep initial values for
1155 pointer bounds to be used for checks eliminations.
1156 (process_references): Handle IPA_REF_CHKP.
1157 (walk_polymorphic_call_targets): Likewise.
1158 * ipa-visibility.c (cgraph_externally_visible_p): Mark
1159 instrumented 'main' as externally visible.
1160 (function_and_variable_visibility): Filter instrumentation
1162 * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
1164 (cgraph_node): Add instrumented_version, orig_decl and
1165 instrumentation_clone fields.
1166 (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
1167 (varpool_node): Add need_bounds_init field.
1168 (cgraph_local_p): New.
1169 * cgraph.c: Include tree-chkp.h.
1170 (cgraph_node::remove): Fix instrumented_version
1171 of the referenced node if any.
1172 (cgraph_node::dump): Dump instrumentation_clone and
1173 instrumented_version fields.
1174 (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
1175 references and instrumentation thunks.
1176 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
1177 all not instrumented instrumentation clones alive.
1178 (cgraph_redirect_edge_call_stmt_to_callee): Support
1180 * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
1182 (cgraph_rebuild_references): Likewise.
1183 * cgraphunit.c: Include tree-chkp.h.
1184 (assemble_thunks_and_aliases): Skip thunks calling instrumneted
1186 (varpool_finalize_decl): Register statically initialized decls
1187 in Pointer Bounds Checker.
1188 (walk_polymorphic_call_targets): Do not mark generated call to
1189 __builtin_unreachable as with_bounds.
1190 (output_weakrefs): If there are both instrumented and original
1191 versions, output only one of them.
1192 (cgraph_node::expand_thunk): Set with_bounds flag
1193 for created call statement.
1194 * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
1195 (ipa_ref): increase size of use field.
1196 * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
1197 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
1198 (ctor_for_folding): Do not fold constant bounds vars.
1199 * lto-streamer.h (LTO_minor_version): Change minor version from
1201 * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
1203 (lto_output_node): Output instrumentation_clone,
1204 thunk.add_pointer_bounds_args and orig_decl field.
1205 (lto_output_ref): Adjust to new ipa_ref::use field size.
1206 (input_overwrite_node): Read instrumentation_clone field.
1207 (input_node): Read thunk.add_pointer_bounds_args and orig_decl
1209 (input_ref): Adjust to new ipa_ref::use field size.
1210 (input_cgraph_1): Compute instrumented_version fields and restore
1211 IDENTIFIER_TRANSPARENT_ALIAS chains.
1212 (lto_output_varpool_node): Output
1213 need_bounds_init value.
1214 (input_varpool_node): Read need_bounds_init value.
1215 * lto-partition.c (add_symbol_to_partition_1): Keep original
1216 and instrumented versions together.
1217 (privatize_symbol_name): Restore transparent alias chain if required.
1218 (add_references_to_partition): Add references to pointer bounds vars.
1219 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
1220 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
1221 (gen_type_die_with_usage): Skip pointer bounds.
1222 (dwarf2out_global_decl): Likewise.
1223 (is_base_type): Support POINTER_BOUNDS_TYPE.
1224 (gen_formal_types_die): Skip pointer bounds.
1225 (gen_decl_die): Likewise.
1226 * var-tracking.c (vt_add_function_parameters): Skip
1228 * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
1230 (sem_variable::merge): Reset need_bounds_init flag.
1231 * doc/extend.texi: Document Pointer Bounds Checker built-in functions
1233 * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
1234 (TARGET_STORE_BOUNDS_FOR_ARG): New.
1235 (TARGET_LOAD_RETURNED_BOUNDS): New.
1236 (TARGET_STORE_RETURNED_BOUNDS): New.
1237 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
1238 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
1239 (TARGET_BUILTIN_CHKP_FUNCTION): New.
1240 (TARGET_CHKP_BOUND_TYPE): New.
1241 (TARGET_CHKP_BOUND_MODE): New.
1242 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
1243 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
1244 * doc/tm.texi: Regenerated.
1245 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
1248 * doc/invoke.texi (-mmpx): New.
1250 (chkp-max-ctor-size): New.
1251 * config/i386/constraints.md (w): New.
1254 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
1255 * config/i386/i386-modes.def (BND32): New.
1257 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
1258 * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
1259 (regclass_map): Add bound registers.
1260 (dbx_register_map): Likewise.
1261 (dbx64_register_map): Likewise.
1262 (svr4_dbx_register_map): Likewise.
1263 (isa_opts): Add -mmpx.
1265 (ix86_option_override_internal): Support MPX ISA.
1266 (ix86_conditional_register_usage): Support bound registers.
1267 (ix86_code_end): Add MPX bnd prefix.
1268 (output_set_got): Likewise.
1269 (print_reg): Avoid prefixes for bound registers.
1270 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
1271 (ix86_print_operand_punct_valid_p): Likewise.
1272 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
1274 (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
1275 (ix86_class_likely_spilled_p): Add bound regs support.
1276 (ix86_hard_regno_mode_ok): Likewise.
1277 (x86_order_regs_for_local_alloc): Likewise.
1278 (ix86_bnd_prefixed_insn_p): New.
1279 (ix86_builtins): Add
1280 IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
1281 IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
1282 IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
1283 IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
1284 IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
1285 IX86_BUILTIN_BNDUPPER.
1286 (builtin_isa): Add leaf_p and nothrow_p fields.
1287 (def_builtin): Initialize leaf_p and nothrow_p.
1288 (ix86_add_new_builtins): Handle leaf_p and nothrow_p
1291 (bdesc_mpx_const): New.
1292 (ix86_init_mpx_builtins): New.
1293 (ix86_init_builtins): Call ix86_init_mpx_builtins.
1294 (ix86_emit_cmove): New.
1295 (ix86_emit_move_max): New.
1296 (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
1297 IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
1298 IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
1299 IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
1300 IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
1301 IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
1302 (ix86_function_value_bounds): New.
1303 (ix86_builtin_mpx_function): New.
1304 (ix86_get_arg_address_for_bt): New.
1305 (ix86_load_bounds): New.
1306 (ix86_store_bounds): New.
1307 (ix86_load_returned_bounds): New.
1308 (ix86_store_returned_bounds): New.
1309 (ix86_mpx_bound_mode): New.
1310 (ix86_make_bounds_constant): New.
1311 (ix86_initialize_bounds):
1312 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
1313 (TARGET_STORE_BOUNDS_FOR_ARG): New.
1314 (TARGET_LOAD_RETURNED_BOUNDS): New.
1315 (TARGET_STORE_RETURNED_BOUNDS): New.
1316 (TARGET_CHKP_BOUND_MODE): New.
1317 (TARGET_BUILTIN_CHKP_FUNCTION): New.
1318 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
1319 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
1320 (TARGET_CHKP_INITIALIZE_BOUNDS): New.
1321 (ix86_option_override_internal): Do not
1322 support x32 with MPX.
1323 (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
1325 (function_arg_advance_32): Return number of used integer
1327 (function_arg_advance_64): Likewise.
1328 (function_arg_advance_ms_64): Likewise.
1329 (ix86_function_arg_advance): Handle pointer bounds.
1330 (ix86_function_arg): Likewise.
1331 (ix86_function_value_regno_p): Mark fisrt bounds registers as
1332 possible function value.
1333 (ix86_function_value_1): Handle pointer bounds type/mode
1334 (ix86_return_in_memory): Likewise.
1335 (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
1336 (ix86_expand_call): Generate returned bounds.
1337 (ix86_setup_incoming_vararg_bounds): New.
1338 (ix86_va_start): Initialize bounds for pointers in va_list.
1339 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
1340 * config/i386/i386.h (TARGET_MPX): New.
1341 (TARGET_MPX_P): New.
1342 (FIRST_PSEUDO_REGISTER): Fix to new value.
1343 (FIXED_REGISTERS): Add bound registers.
1344 (CALL_USED_REGISTERS): Likewise.
1345 (REG_ALLOC_ORDER): Likewise.
1346 (HARD_REGNO_NREGS): Likewise.
1347 (VALID_BND_REG_MODE): New.
1348 (FIRST_BND_REG): New.
1349 (LAST_BND_REG): New.
1350 (reg_class): Add BND_REGS.
1351 (REG_CLASS_NAMES): Likewise.
1352 (REG_CLASS_CONTENTS): Likewise.
1354 (ANY_BND_REG_P): New.
1356 (HI_REGISTER_NAMES): Add bound registers.
1357 (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
1359 * config/i386/i386.md (UNSPEC_BNDMK): New.
1360 (UNSPEC_BNDMK_ADDR): New.
1361 (UNSPEC_BNDSTX): New.
1362 (UNSPEC_BNDLDX): New.
1363 (UNSPEC_BNDLDX_ADDR): New.
1364 (UNSPEC_BNDCL): New.
1365 (UNSPEC_BNDCU): New.
1366 (UNSPEC_BNDCN): New.
1367 (UNSPEC_MPX_FENCE): New.
1368 (UNSPEC_SIZEOF): New.
1371 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
1372 (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
1373 (prefix_rep): Check for bnd prefix.
1374 (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
1375 (length_nobnd): New.
1376 (length): Use length_nobnd when specified.
1377 (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
1382 (*jcc_1): Add MPX bnd prefix.
1385 (*indirect_jump): Likewise.
1386 (*tablejump_1): Likewise.
1387 (simple_return_internal): Likewise.
1388 (simple_return_internal_long): Likewise.
1389 (simple_return_pop_internal): Likewise.
1390 (simple_return_indirect_internal): Likewise.
1394 (*mov<mode>_internal_mpx): New.
1395 (<mode>_<bndcheck>): New.
1396 (*<mode>_<bndcheck>): New.
1401 move_size_reloc_<mode>): New.
1402 * config/i386/predicates.md (address_mpx_no_base_operand): New.
1403 (address_mpx_no_index_operand): New.
1404 (bnd_mem_operator): New.
1405 (symbol_operand): New.
1406 (x86_64_immediate_size_operand): New.
1407 * config/i386/i386.opt (mmpx): New.
1408 * config/i386/i386-builtin-types.def (BND): New.
1410 (BND_FTYPE_PCVOID_ULONG): New.
1411 (VOID_FTYPE_BND_PCVOID): New.
1412 (VOID_FTYPE_PCVOID_PCVOID_BND): New.
1413 (BND_FTYPE_PCVOID_PCVOID): New.
1414 (BND_FTYPE_PCVOID): New.
1415 (BND_FTYPE_BND_BND): New.
1416 (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
1417 (PVOID_FTYPE_PCVOID_BND_ULONG): New.
1418 (ULONG_FTYPE_VOID): New.
1419 (PVOID_FTYPE_BND): New.
1421 2014-11-05 Bernd Schmidt <bernds@codesourcery.com>
1423 * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
1424 pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
1425 pass_cleanup_barriers, pass_delay_slots,
1426 pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
1427 pass_shorten_branches, pass_est_nothrow_function_flags,
1428 pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
1429 into pass_late_compilation.
1430 (pass_late_compilation): Add.
1431 * passes.c (pass_data_late_compilation, pass_late_compilation,
1432 make_pass_late_compilation): New.
1433 * timevar.def (TV_LATE_COMPILATION): New.
1435 * target.def (omit_struct_return_reg): New data hook.
1436 * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
1437 * doc/tm.texi: Regenerate.
1438 * function.c (expand_function_end): Use it.
1440 * target.def (no_register_allocation): New data hook.
1441 * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
1442 * doc/tm.texi: Regenerate.
1443 * ira.c (gate_ira): New function.
1444 (pass_data_ira): Set has_gate.
1445 (pass_ira): Add a gate function.
1446 (pass_data_reload): Likewise.
1447 (pass_reload): Add a gate function.
1449 * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
1450 no register allocation happens on the target and return.
1451 * final.c (alter_subreg): Ensure register is not a pseudo before
1452 calling simplify_subreg.
1453 (output_operand): Assert that x isn't a pseudo only if doing
1454 register allocation.
1456 * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
1459 * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
1462 2014-11-05 Alex Velenko <Alex.Velenko@arm.com>
1464 * simplify-rtx.c (simplify_binary_operation_1): Div check added.
1465 * rtl.h (SUBREG_P): New macro added.
1467 2014-11-05 Tejas Belagod <tejas.belagod@arm.com>
1469 * config/aarch64/aarch64-builtins.c
1470 (aarch64_build_scalar_type): Remove.
1471 (aarch64_scalar_builtin_types, aarch64_simd_type,
1472 aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
1473 aarch64_mangle_builtin_vector_type,
1474 aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
1475 aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
1476 aarch64_init_simd_builtin_types,
1477 aarch64_init_simd_builtin_scalar_types): New.
1478 (aarch64_init_simd_builtins): Refactor.
1479 (aarch64_init_crc32_builtins): Fixup with qualifier.
1480 * config/aarch64/aarch64-protos.h
1481 (aarch64_mangle_builtin_type): Export.
1482 * config/aarch64/aarch64-simd-builtin-types.def: New.
1483 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
1484 (aarch64_mangle_type): Refactor.
1485 * config/aarch64/arm_neon.h: Declare vector types based on
1487 * config/aarch64/t-aarch64: Update dependency.
1489 2014-11-04 Pat Haugen <pthaugen@us.ibm.com>
1491 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
1492 atomic_update_decl): Guard declaration with #ifdef.
1494 2014-11-04 Marek Polacek <polacek@redhat.com>
1496 * sanopt.c (sanopt_optimize_walker): Remove unused variables.
1498 2014-11-04 Marek Polacek <polacek@redhat.com>
1500 * Makefile.in (OBJS): Add sanopt.o.
1501 (GTFILES): Add sanopt.c.
1502 * asan.h (asan_expand_check_ifn): Declare.
1503 * asan.c (asan_expand_check_ifn): No longer static.
1504 (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
1505 * sanopt.c: ...here. New file.
1507 2014-11-04 Jiong Wang <jiong.wang@arm.com>
1508 2014-11-04 Wilco Dijkstra <wilco.dijkstra@arm.com>
1511 * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
1514 2014-11-04 Bernd Schmidt <bernds@codesourcery.com>
1516 * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
1517 also verify that mode is equal to the mode of op0.
1519 * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
1520 emit into a sequence instead.
1522 2014-11-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1524 * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
1526 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
1528 config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
1529 (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
1530 (reduc_smax_<mode> *2): Rename to...
1531 (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
1532 (reduc_umin_<mode> *2): Rename to...
1533 (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
1534 (reduc_umax_<mode> *2): Rename to...
1535 (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
1537 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
1539 config/arm/neon.md (reduc_plus_*): Rename to...
1540 (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
1542 2014-11-04 Michael Collison <michael.collison@linaro.org>
1544 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
1545 to support constraints for CONST_INT in atomic operations.
1546 * config/aarch64/atomics.md
1547 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
1548 (atomic_nand<mode>): Likewise.
1549 (atomic_fetch_<atomic_optab><mode>): Likewise.
1550 (atomic_fetch_nand<mode>): Likewise.
1551 (atomic_<atomic_optab>_fetch<mode>): Likewise.
1552 (atomic_nand_fetch<mode>): Likewise.
1554 2014-11-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1556 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
1557 of __ARM_FEATURE_IDIV.
1559 2014-11-04 Marek Polacek <polacek@redhat.com>
1561 * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
1563 2014-11-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1565 * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
1567 2014-11-04 Zhenqiang Chen <zhenqiang.chen@arm.com>
1570 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
1571 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
1572 Allow CC mode if HAVE_cbranchcc4.
1574 2014-11-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
1576 * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
1577 with -fdump-go-spec. Anonymous substructures are now flattened and
1578 replaced by their fields (record) or the first named, non-bitfield
1581 2014-11-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
1583 * input.c (expand_location_to_spelling_point): Fix typo.
1584 (expansion_point_location_if_in_system_header): Fix comment.
1586 2014-11-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1588 * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
1590 2014-11-03 Richard Biener <rguenther@suse.de>
1592 * tree-eh.c (operation_could_trap_helper_p): Handle conversions
1593 like ordinary operations.
1594 * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
1597 2014-11-03 Joseph Myers <joseph@codesourcery.com>
1599 * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
1601 * configure, config.h.in: Regenerate.
1602 * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
1603 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
1604 (RS6000_GLIBC_ATOMIC_FENV): New macro.
1605 * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
1606 (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
1607 (RS6000_GLIBC_ATOMIC_FENV): New macro.
1608 * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
1609 (atomic_update_decl): New static variables.
1610 (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
1611 Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
1612 and __atomic_feupdateenv for soft-float and no-FPRs.
1614 2014-11-03 Richard Biener <rguenther@suse.de>
1616 * match.pd: Add two abs patterns. Announce tree_expr_nonnegative_p.
1617 Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
1618 * fold-const.c (fold_unary_loc): Remove them here.
1619 (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
1620 * gimple-fold.c (fold_gimple_assign): Remove now obsolete
1621 GIMPLE_UNARY_RHS case.
1622 (gimple_fold_stmt_to_constant_1): Likewise.
1623 (replace_stmt_with_simplification): Fix inverted comparison.
1625 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
1627 PR tree-optimization/60770
1628 * tree-into-ssa.c (rewrite_update_stmt): Return whether the
1629 statement should be removed.
1630 (maybe_register_def): Likewise. Replace clobbers with default
1632 (rewrite_dom_walker::before_dom_children): Remove statement if
1633 rewrite_update_stmt says so.
1634 * tree-ssa-live.c: Include tree-ssa.h.
1635 (set_var_live_on_entry): Do not mark undefined variables as live.
1636 (verify_live_on_entry): Do not check undefined variables.
1637 * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
1638 of partially undefined variables.
1639 * tree-ssa.c (ssa_undefined_value_p): Likewise.
1640 (execute_update_addresses_taken): Do not drop clobbers.
1642 2014-11-03 Marc Glisse <marc.glisse@inria.fr>
1644 PR tree-optimization/63666
1645 * fold-const.c: Include "optabs.h".
1646 (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
1647 can_vec_perm_p permutation to one that is not.
1649 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
1651 * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
1653 2014-11-03 Andrew Pinski <apinski@cavium.com>
1655 * config/mips/mips-cpus.def (octeon3): New cpu.
1656 * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
1657 (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
1658 of the comparison no longer matches mode of the operands.
1659 (mips_issue_rate): Handle PROCESSOR_OCTEON3.
1660 * config/mips/mips.h (TARGET_OCTEON): Add Octeon3.
1661 (TARGET_OCTEON2): Likewise.
1662 (TUNE_OCTEON): Add Octeon3.
1663 * config/mips/mips.md (processor): Add octeon3.
1664 * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
1665 (octeon_arith): Add octeon3.
1666 (octeon_condmove): Remove.
1667 (octeon_condmove_o1): New reservation.
1668 (octeon_condmove_o2): New reservation.
1669 (octeon_condmove_o3_int_on_cc): New reservation.
1670 (octeon_load_o2): Add octeon3.
1671 (octeon_cop_o2): Likewise.
1672 (octeon_store): Likewise.
1673 (octeon_brj_o2): Likewise.
1674 (octeon_imul3_o2): Likewise.
1675 (octeon_imul_o2): Likewise.
1676 (octeon_mfhilo_o2): Likewise.
1677 (octeon_imadd_o2): Likewise.
1678 (octeon_idiv_o2_si): Likewise.
1679 (octeon_idiv_o2_di): Likewise.
1680 (octeon_fpu): Add to the automaton.
1681 (octeon_fpu): New cpu unit.
1682 (octeon_condmove_o2): Check for non floating point modes.
1683 (octeon_load_o2): Add prefetchx.
1684 (octeon_cop_o2): Don't check for octeon3.
1685 (octeon3_faddsubcvt): New reservation.
1686 (octeon3_fmul): Likewise.
1687 (octeon3_fmadd): Likewise.
1688 (octeon3_div_sf): Likewise.
1689 (octeon3_div_df): Likewise.
1690 (octeon3_sqrt_sf): Likewise.
1691 (octeon3_sqrt_df): Likewise.
1692 (octeon3_rsqrt_sf): Likewise.
1693 (octeon3_rsqrt_df): Likewise.
1694 (octeon3_fabsnegmov): Likewise.
1695 (octeon_fcond): Likewise.
1696 (octeon_fcondmov): Likewise.
1697 (octeon_fpmtc1): Likewise.
1698 (octeon_fpmfc1): Likewise.
1699 (octeon_fpload): Likewise.
1700 (octeon_fpstore): Likewise.
1701 * config/mips/mips-tables.opt: Regenerate.
1702 * doc/invoke.texi (-march=@var{arch}): Add octeon3.
1704 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
1706 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
1707 Allow CC mode if HAVE_cbranchcc4.
1709 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1711 * config/arc/arc.c (write_ext_corereg_1): Delete.
1712 (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
1714 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1716 * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
1717 (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
1719 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1721 * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
1722 (small_data_pattern_1): Delete.
1723 (small_data_pattern): Use FOR_EACH_SUBRTX.
1725 2014-11-02 Richard Sandiford <richard.sandiford@arm.com>
1727 * config/arc/arc.c: Include rtl-iter.h.
1728 (arc_rewrite_small_data_1): Delete.
1729 (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
1731 2014-11-02 Michael Collison <michael.collison@linaro.org>
1733 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
1734 to support vector modes.
1735 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
1737 2014-11-01 Andrew MacLeod <amacleod@redhat,com>
1739 * optabs.h: Flatten insn-codes.h to source files. Move some prototypes
1740 and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
1741 * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
1742 * optabs.c: (gen_move_insn): Move to expr.c.
1743 * expr.h: Move protypes and enums to optabs.h.
1744 * expr.c: (gen_move_insn): Relocate from optabs.c.
1745 * genemit.c (main): Include insn-codes.h.
1746 * gengtype.c (open_base_files): Include insn-codes.h.
1747 * asan.c: Include insn-codes.h.
1748 * bb-reorder.c: Ditto.
1749 * builtins.c: Ditto.
1751 * cfgexpand.c: Ditto.
1752 * cilk-common.c: Ditto.
1759 * function.c: Ditto.
1761 * internal-fn.c: Ditto.
1762 * loop-unroll.c: Ditto.
1764 * modulo-sched.c: Ditto.
1766 * postreload.c: Ditto.
1770 * shrink-wrap.c: Ditto.
1771 * simplify-rtx.c: Ditto.
1773 * target-globals.c: Ditto.
1774 * targhooks.c: Ditto.
1776 * tree-if-conv.c: Ditto.
1777 * tree-ssa-forwprop.c: Ditto.
1778 * tree-ssa-loop-prefetch.c: Ditto.
1779 * tree-ssa-math-opts.c: Ditto.
1780 * tree-ssa-phiopt.c: Ditto.
1781 * tree-ssa-reassoc.c: Ditto.
1782 * tree-switch-conversion.c: Ditto.
1783 * tree-vect-data-refs.c: Ditto.
1784 * tree-vect-generic.c: Ditto.
1785 * tree-vect-loop.c: Ditto.
1786 * tree-vect-patterns.c: Ditto.
1787 * tree-vect-slp.c: Ditto.
1788 * tree-vect-stmts.c: Ditto.
1789 * tree-vrp.c: Ditto.
1790 * value-prof.c: Ditto.
1791 * config/aarch64/aarch64-builtins.c: Ditto.
1792 * config/alpha/alpha.c: Ditto.
1793 * config/arm/arm.c: Ditto.
1794 * config/cris/cris.c: Ditto.
1795 * config/epiphany/epiphany.c: Ditto.
1796 * config/frv/frv.c: Ditto.
1797 * config/h8300/h8300.c: Ditto.
1798 * config/ia64/ia64.c: Ditto.
1799 * config/iq2000/iq2000.c: Ditto.
1800 * config/m32c/m32c.c: Ditto.
1801 * config/mep/mep.c: Ditto.
1802 * config/microblaze/microblaze.c: Ditto.
1803 * config/mips/mips.c: Ditto.
1804 * config/mn10300/mn10300.c: Ditto.
1805 * config/moxie/moxie.c: Ditto.
1806 * config/msp430/msp430.c: Ditto.
1807 * config/nios2/nios2.c: Ditto.
1808 * config/pa/pa.c: Ditto.
1809 * config/rl78/rl78.c: Ditto.
1810 * config/rs6000/rs6000.c: Ditto.
1811 * config/rx/rx.c: Ditto.
1812 * config/s390/s390.c: Ditto.
1813 * config/sh/sh.c: Ditto.
1814 * config/sh/sh_treg_combine.cc: Ditto.
1815 * config/spu/spu.c: Ditto.
1816 * config/stormy16/stormy16.c: Ditto.
1817 * config/tilegx/mul-tables.c: Ditto.
1818 * config/tilegx/tilegx.c: Ditto.
1819 * config/tilepro/mul-tables.c: Ditto.
1820 * config/tilepro/tilepro.c: Ditto.
1821 * config/vax/vax.c: Ditto.
1823 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1825 * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
1826 (CLEAR_BY_PIECES_P): Likewise.
1827 (SET_BY_PIECES_P): Likewise.
1828 (STORE_BY_PIECES_P): Likewise.
1829 * doc/tm.texi: Regenerate.
1830 * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
1831 SET_BY_PIECES_P, STORE_BY_PIECES_P.
1832 * expr.c (MOVE_BY_PIECES_P): Remove.
1833 (CLEAR_BY_PIECES_P): Likewise.
1834 (SET_BY_PIECES_P): Likewise.
1835 (STORE_BY_PIECES_P): Likewise.
1836 (can_move_by_pieces): Rewrite in terms of
1837 targetm.use_by_pieces_infrastructure_p.
1838 (emit_block_move_hints): Likewise.
1839 (can_store_by_pieces): Likewise.
1840 (store_by_pieces): Likewise.
1841 (clear_storage_hints): Likewise.
1842 (emit_push_insn): Likewise.
1843 (expand_constructor): Likewise.
1845 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1847 * config/aarch64/aarch64.c
1848 (aarch64_use_by_pieces_infrastructre_p): New.
1849 (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
1850 * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
1852 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1854 * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
1855 (STORE_BY_PIECES_P): Likewise.
1856 * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
1857 (mips_move_by_pieces_p): Rename to...
1858 (mips_use_by_pieces_infrastructure_p): ...this, use new hook
1859 parameters, use the default hook implementation as a
1862 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1864 * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
1865 (sh_use_by_pieces_infrastructure_p): Likewise.
1866 * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
1867 (STORE_BY_PIECES_P): Likewise.
1868 (SET_BY_PIECES_P): Likewise.
1870 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1872 * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
1873 (arc_use_by_pieces_infrastructure_p): Likewise.
1874 * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
1875 (CAN_MOVE_BY_PIECES): Likewise.
1877 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1879 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
1880 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
1881 * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
1882 (CLEAR_BY_PIECES): Likewise.
1883 (SET_BY_PIECES): Likewise.
1884 (STORE_BY_PIECES): Likewise.
1886 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
1888 * target.def (use_by_pieces_infrastructure_p): New.
1889 * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
1891 (STORE_BY_PIECES_P): Likewise.
1892 (CLEAR_BY_PIECES_P): Likewise.
1893 (SET_BY_PIECES_P): Likewise.
1894 (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
1895 * doc/tm.texi: Regenerate.
1896 * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
1897 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
1898 (STORE_BY_PIECES_P): Likewise.
1899 (CLEAR_BY_PIECES_P): Likewise.
1900 (SET_BY_PIECES_P): Likewise.
1901 (STORE_MAX_PIECES): Move to...
1902 * defaults.h (STORE_MAX_PIECES): ...here.
1903 * targhooks.c (get_move_ratio): New.
1904 (default_use_by_pieces_infrastructure_p): Likewise.
1905 * targhooks.h (default_use_by_pieces_infrastructure_p): New.
1906 * target.h (by_pieces_operation): New.
1908 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
1911 * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
1912 assignment to 'nargs' variable.
1914 2014-10-31 Uros Bizjak <ubizjak@gmail.com>
1917 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
1918 * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
1919 * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
1920 be reloaded through memory.
1924 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1926 PR rtl-optimization/63659
1927 * ree.c (update_reg_equal_equiv_notes): New function.
1928 (combine_set_extension, transform_ifelse): Use it.
1930 2014-10-31 Jeff Law <law@redhat.com>
1932 * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
1933 and Jonny Grant (collect2).
1935 2014-10-31 Richard Biener <rguenther@suse.de>
1937 * builtins.c (fold_builtin_atomic_always_lock_free): Use
1938 CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
1940 (fold_builtin_expect): Likewise.
1941 (integer_valued_real_p): Likewise.
1942 * cfgexpand.c (expand_debug_expr): Likewise.
1943 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
1944 (find_foldable_builtin_expect): Likewise.
1945 * trans-mem.c (thread_private_new_memory): Likewise.
1946 * tree-affine.c (aff_combination_expand): Likewise.
1947 * tree-data-ref.c (initialize_matrix_A): Likewise.
1948 * tree-inline.c (copy_bb): Likewise.
1949 * tree-pretty-print.c (dump_function_name): Likewise.
1950 (print_call_name): Likewise.
1951 * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
1952 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
1953 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1954 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
1955 (vect_recog_widen_mult_pattern): Likewise.
1956 (vect_operation_fits_smaller_type): Likewise.
1957 * tree-vrp.c (find_assert_locations_1): Likewise.
1958 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
1959 converts to NOP_EXPR.
1961 2014-10-31 Richard Biener <rguenther@suse.de>
1963 * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
1964 CONVERT_EXPRs in generated code.
1965 (dt_simplify::gen): Likewise.
1967 2014-10-31 Evgeny Stupachenko <evstupac@gmail.com>
1970 * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
1971 REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
1972 (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
1973 using mcount in 32bit PIC mode.
1974 (ix86_elim_entry_set_got): New.
1975 (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
1976 in PROLOGUE, delete initial if possible.
1978 2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
1980 * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
1981 (want_inline_function_to_all_callers_p): Fix formatting and simplify.
1983 2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
1985 PR tree-optimization/63259
1986 * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
1987 rotation left if it is a 16 bit byte swap.
1988 (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
1989 and RROTATE_EXPR statements if it is a byte rotation.
1991 2014-10-31 Jakub Jelinek <jakub@redhat.com>
1994 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
1995 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
1996 instead of vr0.min - vr1.min and vr0.max - vr1.max.
1998 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com>
2001 * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
2002 alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
2004 2014-10-30 Felix Yang <felix.yang@huawei.com>
2006 * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
2007 * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
2008 (xtensa_reorg, xtensa_reorg_loops): New.
2009 (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
2010 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
2011 (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
2012 (xtensa_doloop_hooks): Define.
2013 * config/xtensa/xtensa.md (doloop_end, loop_end): New
2014 (zero_cost_loop_start): Rewritten.
2015 (zero_cost_loop_end): Likewise.
2017 2014-10-30 Steve Ellcey <sellcey@imgtec.com>
2019 * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
2021 2014-10-30 Richard Biener <rguenther@suse.de>
2023 * genmatch.c: Remove <map>, <utility> and <string> includes.
2024 Include ggc.h and hash-map.h.
2025 (ggc_internal_cleared_alloc): Provide stub definition.
2026 (ggc_free): Likewise.
2027 (struct capture_id_map_hasher): New traits for hash_map.
2028 (cid_map_t): New typedef.
2029 (everywhere else): Replace std::map use with cid_map_t.
2030 * hash-map.h (hash_map::elements): New member function.
2031 * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
2032 hash-map.h and $(GGC_H) as dependency.
2034 2014-10-30 Richard Biener <rguenther@suse.de>
2036 * genmatch.c (capture_info::walk_c_expr): Ignore capture
2037 uses inside TREE_TYPE ().
2038 * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
2039 (find_candidates_dom_walker::before_dom_children): Likewise.
2040 (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
2041 (replace_profitable_candidates): Likewise.
2042 * tree-ssa-dom.c (initialize_hash_element): Canonicalize
2043 CONVERT_EXPR_CODE_P to CONVERT_EXPR.
2044 * convert.c (convert_to_integer): Use CASE_CONVERT.
2046 2014-10-30 Richard Biener <rguenther@suse.de>
2048 * match.pd: Implement more patterns that simplify to a single value.
2049 * fold-const.c (fold_binary_loc): Remove them here.
2050 * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
2051 (fwprop_ssa_val): Remove restriction on single uses.
2053 2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2055 * config/avr/driver-avr.c (avr_set_current_device): Remove.
2057 2014-10-30 Martin Liska <mliska@suse.cz>
2061 * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
2062 (func_checker::compare_gimple_label): Simlified comparison introduced.
2063 * ipa-icf-gimple.h: Missing comment added.
2065 2014-10-30 Jeff Law <law@redhat.com>
2067 * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
2068 argument from rtx to rtx_insn *.
2069 (compute_movmem_length, compute_clrmem_length): Likewise.
2070 (copy_fp_args, length_fp_args): Likewise.
2071 * config/pa/pa.c (legitimize_pic_address): Promote local variable
2072 "insn" from rtx to rtx_insn *.
2073 (legitimize_tls_address, pa_emit_move_sequence): Likewise.
2074 (pa_output_block_move, store_reg, store_reg_modify): Likewise.
2075 (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
2076 (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
2077 (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
2078 (compute_movmem_length, compute_clrmem_length): Likewise.
2079 (copy_fp-args, length_fp_args): Likewise.
2081 2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2083 * config/arm/arm.h (MACHMODE): Treat machine_mode as a
2085 (CUMULATIVE_ARGS): Guard against target includes.
2086 (machine_function): Likewise.
2088 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2090 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
2091 recog state after aarch64_prev_real_insn call.
2093 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2095 * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
2097 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2099 * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
2100 (struct machine_function): Gate definition on
2101 !defined(USED_FOR_TARGET).
2103 2014-10-29 DJ Delorie <dj@redhat.com>
2105 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
2107 2014-10-29 Martin Liska <mliska@suse.cz>
2110 * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
2111 to local declarations.
2112 * function.c (add_local_decl): Implementation moved from header
2113 file, assert introduced for tree type.
2114 * function.h: Likewise.
2116 2014-10-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
2118 * godump.c (go_format_type): Represent "float _Complex" and
2119 "double _Complex" as complex64 or complex128 in Go, as appropriate.
2121 2014-10-29 Richard Biener <rguenther@suse.de>
2123 * match.pd: Implement a first set of conversion patterns.
2124 * fold-const.c (fold_unary_loc): Remove them here.
2125 * tree-ssa-forwprop.c (simplify_vce): Remove.
2126 (pass_forwprop::execute): Do not call simplify_vce.
2128 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2130 * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
2131 builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
2132 cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
2133 config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
2134 config/aarch64/aarch64.c, config/aarch64/aarch64.h,
2135 config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
2136 config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
2137 config/arc/arc.h, config/arc/predicates.md,
2138 config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
2139 config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
2140 config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
2141 config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
2142 config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
2143 config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
2144 config/cr16/cr16-protos.h, config/cr16/cr16.c,
2145 config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
2146 config/darwin-protos.h, config/darwin.c,
2147 config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
2148 config/epiphany/epiphany.md, config/fr30/fr30.c,
2149 config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
2150 config/h8300/h8300-protos.h, config/h8300/h8300.c,
2151 config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
2152 config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
2153 config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
2154 config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
2155 config/iq2000/iq2000.c, config/iq2000/iq2000.md,
2156 config/lm32/lm32-protos.h, config/lm32/lm32.c,
2157 config/m32c/m32c-protos.h, config/m32c/m32c.c,
2158 config/m32r/m32r-protos.h, config/m32r/m32r.c,
2159 config/m68k/m68k-protos.h, config/m68k/m68k.c,
2160 config/mcore/mcore-protos.h, config/mcore/mcore.c,
2161 config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
2162 config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
2163 config/mips/mips-protos.h, config/mips/mips.c,
2164 config/mmix/mmix-protos.h, config/mmix/mmix.c,
2165 config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2166 config/moxie/moxie.c, config/msp430/msp430-protos.h,
2167 config/msp430/msp430.c, config/nds32/nds32-cost.c,
2168 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
2169 config/nds32/nds32-protos.h, config/nds32/nds32.c,
2170 config/nios2/nios2-protos.h, config/nios2/nios2.c,
2171 config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
2172 config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
2173 config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
2174 config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
2175 config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
2176 config/s390/predicates.md, config/s390/s390-protos.h,
2177 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
2178 config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
2179 config/sh/sh.md, config/sparc/predicates.md,
2180 config/sparc/sparc-protos.h, config/sparc/sparc.c,
2181 config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
2182 config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
2183 config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
2184 config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
2185 config/tilepro/tilepro.c, config/v850/v850-protos.h,
2186 config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
2187 config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
2188 config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
2189 dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
2190 doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
2191 dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
2192 except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
2193 fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
2194 fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
2195 genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
2196 graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
2197 internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
2198 ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
2199 libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
2200 loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
2201 lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
2202 lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
2203 output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
2204 recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
2205 regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
2206 rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
2207 sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
2208 simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
2209 targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
2210 tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
2211 tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
2212 tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
2213 tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
2214 tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
2215 tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
2216 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
2217 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
2218 tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
2219 var-tracking.c, varasm.c: Remove redundant enum from
2221 * gengtype.c (main): Treat machine_mode as a scalar typedef.
2222 * genmodes.c (emit_insn_modes_h): Hide inline functions if
2225 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2227 PR rtl-optimization/63340 (part 2)
2228 * rtl.h (invalid_mode_change_p): Delete.
2229 (valid_mode_changes_for_regno): New function.
2230 * reginfo.c (invalid_mode_change_p): Delete.
2231 (valid_mode_changes_for_regno): New function.
2232 * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
2233 classes to registers that are allowed by valid_mode_changes_for_regno.
2234 (setup_regno_cost_classes_by_mode): Likewise.
2235 (print_allocno_costs): Remove invalid_mode_change_p test.
2236 (print_pseudo_costs, find_costs_and_classes): Likewise.
2238 2014-10-29 Richard Sandiford <richard.sandiford@arm.com>
2240 PR rtl-optimization/63340 (part 1)
2241 * ira-costs.c (all_cost_classes): New variable.
2242 (complete_cost_classes): New function, split out from...
2243 (setup_cost_classes): ...here.
2244 (initiate_regno_cost_classes): Set up all_cost_classes.
2245 (restrict_cost_classes): New function.
2246 (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
2247 registers that are valid for the register's mode.
2248 (setup_regno_cost_classes_by_mode): Model the mode cache as a
2249 restriction of all_cost_classes to a particular mode.
2250 (print_allocno_costs): Remove contains_reg_of_mode check.
2251 (print_pseudo_costs, find_costs_and_classes): Likewise.
2253 2014-10-29 Richard Biener <rguenther@suse.de>
2255 PR tree-optimization/63666
2256 * tree-vect-slp.c (vect_get_mask_element): Properly handle
2257 accessing out-of-bound elements.
2259 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
2260 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2261 Anna Tikhonova <anna.tikhonova@intel.com>
2262 Ilya Tocar <ilya.tocar@intel.com>
2263 Andrey Turetskiy <andrey.turetskiy@intel.com>
2264 Ilya Verbin <ilya.verbin@intel.com>
2265 Kirill Yukhin <kirill.yukhin@intel.com>
2266 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2268 * config/i386/i386.md
2269 (movhi_internal): Always detect maskmov.
2270 (movqi_internal): Fix target check.
2272 2014-10-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
2273 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2274 Anna Tikhonova <anna.tikhonova@intel.com>
2275 Ilya Tocar <ilya.tocar@intel.com>
2276 Andrey Turetskiy <andrey.turetskiy@intel.com>
2277 Ilya Verbin <ilya.verbin@intel.com>
2278 Kirill Yukhin <kirill.yukhin@intel.com>
2279 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2281 * config/i386/avx512bwintrin.h: Add new intrinsics.
2282 * config/i386/avx512vlbwintrin.h: Ditto.
2283 * config/i386/avx512vlintrin.h: Ditto.
2285 2014-10-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
2287 * godump.c (precision_to_units): New helper function.
2288 (go_append_artificial_name): Ditto.
2289 (go_append_decl_name): Ditto.
2290 (go_append_bitfield): Ditto.
2291 (go_get_uinttype_for_precision): Ditto.
2292 (go_append_padding): Ditto.
2293 (go_force_record_alignment): Ditto.
2294 (go_format_type): Represent unions with an array of uints of the size
2295 of the alignment in go. This fixes the 'random' size of the union's
2296 representation using just the first field.
2297 (go_format_type): Add argument that indicates whether a record is
2298 nested (used for generation of artificial go names).
2299 (go_output_fndecl): Adapt to new go_format_type signature.
2300 (go_output_typedef): Ditto.
2301 (go_output_var): Ditto.
2302 (go_output_var): Prefer to output type as alias (typedef).
2303 (go_format_type): Bitfields in records are simulated as arrays of bytes
2306 * godump.c (go_format_type): Fix handling of arrays with zero elements.
2308 2014-10-28 Andrew MacLeod <amacleod@redhat.com>
2310 * cgraph.h: Flatten. Remove all include files.
2311 (symbol_table::initialize): Move to cgraph.c.
2312 * cgraph.c: Adjust include files.
2313 (symbol_table::initialize): Relocate from cgraph.h.
2314 * gengtype.c (open_base_files): Adjust include files.
2315 * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
2317 * ipa-inline.h: Remove all include files.
2318 * ipa-prop.h: Ditto.
2319 * ipa-reference.h: Ditto.
2320 * ipa-utils.h: Ditto:
2321 * lto-streamer.h: Remove cgraph.h from include list.
2322 * asan.c: Adjust include files.
2323 * auto-profile.c: Ditto.
2324 * bb-reorder.c: Ditto.
2326 * cfgexpand.c: Ditto.
2327 * cgraphbuild.c: Ditto.
2328 * cgraphclones.c: Ditto.
2329 * cgraphunit.c: Ditto.
2331 * coverage.c: Ditto.
2332 * data-streamer.c: Ditto.
2333 * data-streamer-in.c: Ditto.
2334 * data-streamer-out.c: Ditto.
2336 * dwarf2out.c: Ditto.
2340 * fold-const.c: Ditto.
2341 * ggc-page.c: Ditto.
2342 * gimple-fold.c: Ditto.
2343 * gimple-iterator.c: Ditto.
2344 * gimple-pretty-print.c: Ditto.
2345 * gimple-streamer-in.c: Ditto.
2346 * gimple-streamer-out.c: Ditto.
2347 * gimplify.c: Ditto.
2349 * ipa-comdats.c: Ditto.
2351 * ipa-devirt.c: Ditto.
2353 * ipa-icf-gimple.c: Ditto.
2354 * ipa-inline-analysis.c: Ditto.
2355 * ipa-inline.c: Ditto.
2356 * ipa-inline-transform.c: Ditto.
2357 * ipa-polymorphic-call.c: Ditto.
2358 * ipa-profile.c: Ditto.
2359 * ipa-prop.c: Ditto.
2360 * ipa-pure-const.c: Ditto.
2362 * ipa-reference.c: Ditto.
2363 * ipa-split.c: Ditto.
2364 * ipa-utils.c: Ditto.
2365 * ipa-visibility.c: Ditto.
2366 * langhooks.c: Ditto.
2367 * lto-cgraph.c: Ditto.
2368 * lto-compress.c: Ditto.
2369 * lto-opts.c: Ditto.
2370 * lto-section-in.c: Ditto.
2371 * lto-section-out.c: Ditto.
2372 * lto-streamer.c: Ditto.
2373 * lto-streamer-in.c: Ditto.
2374 * lto-streamer-out.c: Ditto.
2376 * opts-global.c: Ditto.
2379 * print-tree.c: Ditto.
2382 * stor-layout.c: Ditto.
2385 * trans-mem.c: Ditto.
2387 * tree-cfg.c: Ditto.
2389 * tree-emutls.c: Ditto.
2390 * tree-inline.c: Ditto.
2391 * tree-nested.c: Ditto.
2392 * tree-pretty-print.c: Ditto.
2393 * tree-profile.c: Ditto.
2394 * tree-sra.c: Ditto.
2395 * tree-ssa-alias.c: Ditto.
2396 * tree-ssa-loop-ivcanon.c: Ditto.
2397 * tree-ssa-loop-ivopts.c: Ditto.
2398 * tree-ssa-pre.c: Ditto.
2399 * tree-ssa-structalias.c: Ditto.
2400 * tree-streamer.c: Ditto.
2401 * tree-streamer-in.c: Ditto.
2402 * tree-streamer-out.c: Ditto.
2403 * tree-switch-conversion.c: Ditto.
2404 * tree-tailcall.c: Ditto.
2405 * tree-vect-data-refs.c: Ditto.
2406 * tree-vectorizer.c: Ditto.
2407 * tree-vect-stmts.c: Ditto.
2410 * value-prof.c: Ditto.
2413 * config/arm/arm.c: Ditto.
2414 * config/bfin/bfin.c: Ditto.
2415 * config/c6x/c6x.c: Ditto.
2416 * config/cris/cris.c: Ditto.
2417 * config/darwin.c: Ditto.
2418 * config/darwin-c.c: Ditto.
2419 * config/i386/i386.c: Ditto.
2420 * config/i386/winnt.c: Ditto.
2421 * config/microblaze/microblaze.c: Ditto.
2422 * config/mips/mips.c: Ditto.
2423 * config/rs6000/rs6000.c: Ditto.
2424 * config/rx/rx.c: Ditto.
2426 2014-10-28 Richard Biener <rguenther@suse.de>
2428 * gimple-fold.h (follow_single_use_edges): Declare.
2429 * gimple-fold.c (follow_single_use_edges): New function.
2430 (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
2431 * tree-ssa-propagate.c
2432 (substitute_and_fold_dom_walker::before_dom_children): Allow
2433 following single-use edges when folding stmts we propagated into.
2435 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
2436 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2437 Anna Tikhonova <anna.tikhonova@intel.com>
2438 Ilya Tocar <ilya.tocar@intel.com>
2439 Andrey Turetskiy <andrey.turetskiy@intel.com>
2440 Ilya Verbin <ilya.verbin@intel.com>
2441 Kirill Yukhin <kirill.yukhin@intel.com>
2442 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2444 * config/i386/avx512bwintrin.h: New.
2445 * config/i386/avx512dqintrin.h: Ditto.
2446 * config/i386/avx512vlbwintrin.h: Ditto.
2447 * config/i386/avx512vldqintrin.h: Ditto.
2448 * config/i386/avx512vlintrin.h: Ditto.
2449 * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
2450 avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
2452 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
2453 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2454 Anna Tikhonova <anna.tikhonova@intel.com>
2455 Ilya Tocar <ilya.tocar@intel.com>
2456 Andrey Turetskiy <andrey.turetskiy@intel.com>
2457 Ilya Verbin <ilya.verbin@intel.com>
2458 Kirill Yukhin <kirill.yukhin@intel.com>
2459 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2461 * config/i386/i386.c
2462 (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
2463 avx_shufpd256_mask, avx_vpermilv2df_mask.
2465 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
2466 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2467 Anna Tikhonova <anna.tikhonova@intel.com>
2468 Ilya Tocar <ilya.tocar@intel.com>
2469 Andrey Turetskiy <andrey.turetskiy@intel.com>
2470 Ilya Verbin <ilya.verbin@intel.com>
2471 Kirill Yukhin <kirill.yukhin@intel.com>
2472 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2474 * config/i386/i386.c
2475 (ix86_init_mmx_sse_builtins):
2476 Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
2477 __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
2478 __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
2479 __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
2480 __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
2481 __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
2482 __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
2483 __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
2484 __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
2485 __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
2486 __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
2487 __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
2488 __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
2489 __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
2490 __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
2491 __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
2492 __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
2493 __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
2495 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
2496 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2497 Anna Tikhonova <anna.tikhonova@intel.com>
2498 Ilya Tocar <ilya.tocar@intel.com>
2499 Andrey Turetskiy <andrey.turetskiy@intel.com>
2500 Ilya Verbin <ilya.verbin@intel.com>
2501 Kirill Yukhin <kirill.yukhin@intel.com>
2502 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2504 * config/i386/i386.c
2505 (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
2506 IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
2507 IX86_BUILTIN_GATHER3ALTDIV8SI.
2508 (ix86_expand_builtin):
2509 Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
2510 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
2511 IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
2512 IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
2513 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
2514 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
2515 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
2516 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
2517 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
2518 IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
2519 IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
2520 IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
2521 IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
2522 IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
2523 IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
2524 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
2525 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
2526 IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
2527 (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
2528 V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
2530 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
2531 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2532 Anna Tikhonova <anna.tikhonova@intel.com>
2533 Ilya Tocar <ilya.tocar@intel.com>
2534 Andrey Turetskiy <andrey.turetskiy@intel.com>
2535 Ilya Verbin <ilya.verbin@intel.com>
2536 Kirill Yukhin <kirill.yukhin@intel.com>
2537 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2539 * config/i386/i386-builtin-types.def
2558 (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
2559 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
2560 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
2561 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
2562 (V16SF_FTYPE_V16HI): Ditto.
2563 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
2564 (V16SF_FTYPE_V16SI): Ditto.
2565 (V4DI_FTYPE_V4DI): Ditto.
2566 (V16SI_FTYPE_V16SF): Ditto.
2567 (V8DI_FTYPE_PV2DI): Ditto.
2568 (V8DF_FTYPE_PV2DF): Ditto.
2569 (V4DI_FTYPE_PV2DI): Ditto.
2570 (V4DF_FTYPE_PV2DF): Ditto.
2571 (V16SI_FTYPE_PV2SI): Ditto.
2572 (V16SF_FTYPE_PV2SF): Ditto.
2573 (V8SF_FTYPE_FLOAT): Ditto.
2574 (V4SF_FTYPE_FLOAT): Ditto.
2575 (V4DF_FTYPE_DOUBLE): Ditto.
2576 (V8SF_FTYPE_PV4SF): Ditto.
2577 (V8SI_FTYPE_PV4SI): Ditto.
2578 (V4SI_FTYPE_PV2SI): Ditto.
2579 (V8SF_FTYPE_PV2SF): Ditto.
2580 (V8SI_FTYPE_PV2SI): Ditto.
2581 (V16SF_FTYPE_PV8SF): Ditto.
2582 (V16SI_FTYPE_PV8SI): Ditto.
2583 (V8DI_FTYPE_V8SF): Ditto.
2584 (V4DI_FTYPE_V4SF): Ditto.
2585 (V2DI_FTYPE_V4SF): Ditto.
2586 (V64QI_FTYPE_QI): Ditto.
2587 (V32HI_FTYPE_HI): Ditto.
2588 (V16UHI_FTYPE_V16UHI): Ditto.
2589 (V32UHI_FTYPE_V32UHI): Ditto.
2590 (V2UDI_FTYPE_V2UDI): Ditto.
2591 (V4UDI_FTYPE_V4UDI): Ditto.
2592 (V8UDI_FTYPE_V8UDI): Ditto.
2593 (V4USI_FTYPE_V4USI): Ditto.
2594 (V16USI_FTYPE_V16USI): Ditto.
2595 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
2596 (V2DF_FTYPE_V8DF_INT): Ditto.
2597 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
2598 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
2599 (V8DF_FTYPE_V8DF_INT): Ditto.
2600 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
2601 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
2602 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
2603 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
2604 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
2605 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
2606 (V8DI_FTYPE_V8DI_INT): Ditto.
2607 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
2608 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
2609 (V8SF_FTYPE_V16SF_INT): Ditto.
2610 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
2611 (V64QI_FTYPE_V32HI_V32HI): Ditto.
2612 (V32HI_FTYPE_V16SI_V16SI): Ditto.
2613 (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
2614 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
2615 (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
2616 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
2617 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
2618 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
2619 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
2620 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
2621 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
2622 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
2623 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
2624 (V32HI_FTYPE_V64QI_V64QI): Ditto.
2625 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
2626 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
2627 (V32HI_FTYPE_V32HI_V32HI): Ditto.
2628 (V32HI_FTYPE_V32HI_INT): Ditto.
2629 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
2630 (V16SI_FTYPE_V32HI_V32HI): Ditto.
2631 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
2632 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
2633 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
2634 (V8SI_FTYPE_V16SI_INT): Ditto.
2635 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
2636 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
2637 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
2638 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
2639 (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
2640 (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
2641 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
2642 (V8DI_FTYPE_V16SI_V16SI): Ditto.
2643 (V8DI_FTYPE_V64QI_V64QI): Ditto.
2644 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
2645 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
2646 (V2DI_FTYPE_V8DI_INT): Ditto.
2647 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
2648 (QI_FTYPE_QI): Ditto.
2649 (SI_FTYPE_SI): Ditto.
2650 (DI_FTYPE_DI): Ditto.
2651 (HI_FTYPE_V16QI): Ditto.
2652 (SI_FTYPE_V32QI): Ditto.
2653 (DI_FTYPE_V64QI): Ditto.
2654 (QI_FTYPE_V8HI): Ditto.
2655 (HI_FTYPE_V16HI): Ditto.
2656 (SI_FTYPE_V32HI): Ditto.
2657 (QI_FTYPE_V4SI): Ditto.
2658 (QI_FTYPE_V8SI): Ditto.
2659 (HI_FTYPE_V16SI): Ditto.
2660 (QI_FTYPE_V2DI): Ditto.
2661 (QI_FTYPE_V4DI): Ditto.
2662 (QI_FTYPE_V8DI): Ditto.
2663 (V16QI_FTYPE_HI): Ditto.
2664 (V32QI_FTYPE_SI): Ditto.
2665 (V64QI_FTYPE_DI): Ditto.
2666 (V8HI_FTYPE_QI): Ditto.
2667 (V16HI_FTYPE_HI): Ditto.
2668 (V32HI_FTYPE_SI): Ditto.
2669 (V4SI_FTYPE_QI): Ditto.
2670 (V4SI_FTYPE_HI): Ditto.
2671 (V8SI_FTYPE_QI): Ditto.
2672 (V8SI_FTYPE_HI): Ditto.
2673 (V2DI_FTYPE_QI): Ditto.
2674 (V4DI_FTYPE_QI): Ditto.
2675 (QI_FTYPE_QI_QI): Ditto.
2676 (SI_FTYPE_SI_SI): Ditto.
2677 (DI_FTYPE_DI_DI): Ditto.
2678 (QI_FTYPE_QI_INT): Ditto.
2679 (SI_FTYPE_SI_INT): Ditto.
2680 (DI_FTYPE_DI_INT): Ditto.
2681 (HI_FTYPE_V16QI_V16QI): Ditto.
2682 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
2683 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
2684 (SI_FTYPE_V32QI_V32QI): Ditto.
2685 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
2686 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
2687 (DI_FTYPE_V64QI_V64QI): Ditto.
2688 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
2689 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
2690 (QI_FTYPE_V8HI_V8HI): Ditto.
2691 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
2692 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
2693 (HI_FTYPE_V16HI_V16HI): Ditto.
2694 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
2695 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
2696 (SI_FTYPE_V32HI_V32HI): Ditto.
2697 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
2698 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
2699 (QI_FTYPE_V4SI_V4SI): Ditto.
2700 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
2701 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
2702 (QI_FTYPE_V8SI_V8SI): Ditto.
2703 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
2704 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
2705 (QI_FTYPE_V2DI_V2DI): Ditto.
2706 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
2707 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
2708 (QI_FTYPE_V4DI_V4DI): Ditto.
2709 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
2710 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
2711 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
2712 (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
2713 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
2714 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
2715 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
2716 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
2717 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
2718 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
2719 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
2720 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
2721 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
2722 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
2723 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
2724 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
2725 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
2726 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
2727 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
2728 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
2729 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
2730 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
2731 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
2732 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
2733 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
2734 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
2735 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
2736 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
2737 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
2738 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
2739 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
2740 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
2741 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
2742 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
2743 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
2744 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
2745 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
2746 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
2747 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
2748 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
2749 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
2750 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
2751 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
2752 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
2753 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
2754 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
2755 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
2756 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
2757 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
2758 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
2759 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
2760 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
2761 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
2762 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
2763 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
2764 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
2765 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
2766 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
2767 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
2768 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
2769 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
2770 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
2771 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
2772 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
2773 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
2774 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
2775 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
2776 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
2777 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
2778 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
2779 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
2780 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
2781 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
2782 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
2783 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
2784 (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
2785 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
2786 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
2787 (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
2788 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
2789 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
2790 (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
2791 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
2792 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
2793 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
2794 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
2795 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
2796 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
2797 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
2798 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
2799 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
2800 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
2801 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
2802 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
2803 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
2804 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
2805 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
2806 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
2807 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
2808 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
2809 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
2810 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
2811 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
2812 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
2813 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
2814 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
2815 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
2816 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
2817 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
2818 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
2819 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
2820 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
2821 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
2822 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
2823 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
2824 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
2825 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
2826 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
2827 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
2828 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
2829 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
2830 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
2831 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
2832 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
2833 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
2834 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
2835 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
2836 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
2837 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
2838 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
2839 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
2840 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
2841 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
2842 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
2843 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
2844 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
2845 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
2846 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
2847 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
2848 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
2849 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
2850 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
2851 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
2852 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
2853 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
2854 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
2855 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
2856 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
2857 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
2858 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
2859 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
2860 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
2861 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
2862 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
2863 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
2864 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
2865 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
2866 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
2867 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
2868 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
2869 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
2870 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
2871 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
2872 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
2873 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
2874 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
2875 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
2876 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
2877 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
2878 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
2879 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
2880 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
2881 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
2882 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
2883 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
2884 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
2885 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
2886 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
2887 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
2888 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
2889 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
2890 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
2891 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
2892 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
2893 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
2894 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
2895 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
2896 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
2897 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
2898 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
2899 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
2900 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
2901 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
2902 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
2903 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
2904 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
2905 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
2906 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
2907 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
2908 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
2909 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
2910 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
2911 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
2912 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
2913 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
2914 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
2915 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
2916 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
2917 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
2918 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
2919 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
2920 (QI_FTYPE_V8DF_INT): Ditto.
2921 (QI_FTYPE_V4DF_INT): Ditto.
2922 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
2923 (QI_FTYPE_V2DF_INT): Ditto.
2924 (HI_FTYPE_V16SF_INT): Ditto.
2925 (QI_FTYPE_V8SF_INT): Ditto.
2926 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
2927 (QI_FTYPE_V4SF_INT): Ditto.
2928 (QI_FTYPE_V8DF_INT_QI): Ditto.
2929 (QI_FTYPE_V4DF_INT_QI): Ditto.
2930 (QI_FTYPE_V2DF_INT_QI): Ditto.
2931 (HI_FTYPE_V16SF_INT_HI): Ditto.
2932 (QI_FTYPE_V8SF_INT_QI): Ditto.
2933 (QI_FTYPE_V4SF_INT_QI): Ditto.
2934 (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
2935 (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
2936 (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
2937 (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
2938 (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
2939 (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
2940 (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
2941 (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
2942 (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
2943 (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
2944 (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
2945 (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
2946 (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
2947 (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
2948 (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
2949 (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
2950 (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
2951 (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
2952 (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
2953 (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
2954 (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
2955 (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
2956 (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
2957 (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
2958 (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
2959 (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
2960 (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
2961 (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
2962 (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
2963 (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
2964 (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
2965 (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
2966 (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
2967 (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
2968 (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
2969 (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
2970 (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
2971 (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
2972 (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
2973 (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
2974 (V8DI_FTYPE_V8DI_INT): Ditto.
2975 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
2976 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
2977 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
2978 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
2979 (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
2980 (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
2981 (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
2982 (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
2983 (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
2984 (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
2985 (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
2986 (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
2987 (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
2988 (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
2989 * config/i386/i386.c (ix86_builtins):
2990 Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
2991 IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
2992 IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
2993 IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
2994 IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
2995 IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
2996 IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
2997 IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
2998 IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
2999 IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
3000 IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
3001 IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
3002 IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
3003 IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
3004 IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
3005 IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
3006 IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
3007 IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
3008 IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
3009 IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
3010 IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
3011 IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
3012 IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
3013 IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
3014 IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
3015 IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
3016 IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
3017 IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
3018 IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
3019 IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
3020 IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
3021 IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
3022 IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
3023 IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
3024 IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
3025 IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
3026 IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
3027 IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
3028 IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
3029 IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
3030 IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
3031 IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
3032 IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
3033 IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
3034 IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
3035 IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
3036 IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
3037 IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
3038 IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
3039 IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
3040 IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
3041 IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
3042 IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
3043 IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
3044 IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
3045 IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
3046 IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
3047 IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
3048 IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
3049 IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
3050 IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
3051 IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
3052 IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
3053 IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
3054 IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
3055 IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
3056 IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
3057 IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
3058 IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
3059 IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
3060 IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
3061 IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
3062 IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
3063 IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
3064 IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
3065 IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
3066 IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
3067 IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
3068 IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
3069 IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
3070 IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
3071 IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
3072 IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
3073 IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
3074 IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
3075 IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
3076 IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
3077 IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
3078 IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
3079 IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
3080 IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
3081 IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
3082 IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
3083 IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
3084 IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
3085 IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
3086 IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
3087 IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
3088 IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
3089 IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
3090 IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
3091 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
3092 IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
3093 IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
3094 IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
3095 IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
3096 IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
3097 IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
3098 IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
3099 IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
3100 IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
3101 IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
3102 IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
3103 IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
3104 IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
3105 IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
3106 IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
3107 IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
3108 IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
3109 IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
3110 IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
3111 IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
3112 IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
3113 IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
3114 IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
3115 IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
3116 IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
3117 IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
3118 IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
3119 IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
3120 IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
3121 IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
3122 IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
3123 IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
3124 IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
3125 IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
3126 IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
3127 IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
3128 IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
3129 IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
3130 IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
3131 IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
3132 IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
3133 IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
3134 IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
3135 IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
3136 IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
3137 IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
3138 IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
3139 IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
3140 IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
3141 IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
3142 IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
3143 IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
3144 IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
3145 IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
3146 IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
3147 IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
3148 IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
3149 IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
3150 IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
3151 IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
3152 IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
3153 IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
3154 IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
3155 IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
3156 IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
3157 IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
3158 IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
3159 IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
3160 IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
3161 IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
3162 IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
3163 IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
3164 IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
3165 IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
3166 IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
3167 IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
3168 IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
3169 IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
3170 IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
3171 IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
3172 IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
3173 IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
3174 IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
3175 IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
3176 IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
3177 IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
3178 IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
3179 IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
3180 IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
3181 IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
3182 IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
3183 IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
3184 IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
3185 IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
3186 IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
3187 IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
3188 IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
3189 IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
3190 IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
3191 IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
3192 IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
3193 IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
3194 IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
3195 IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
3196 IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
3197 IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
3198 IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
3199 IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
3200 IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
3201 IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
3202 IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
3203 IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
3204 IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
3205 IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
3206 IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
3207 IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
3208 IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
3209 IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
3210 IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
3211 IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
3212 IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
3213 IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
3214 IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
3215 IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
3216 IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
3217 IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
3218 IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
3219 IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
3220 IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
3221 IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
3222 IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
3223 IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
3224 IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
3225 IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
3226 IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
3227 IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
3228 IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
3229 IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
3230 IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
3231 IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
3232 IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
3233 IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
3234 IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
3235 IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
3236 IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
3237 IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
3238 IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
3239 IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
3240 IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
3241 IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
3242 IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
3243 IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
3244 IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
3245 IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
3246 IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
3247 IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
3248 IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
3249 IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
3250 IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
3251 IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
3252 IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
3253 IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
3254 IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
3255 IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
3256 IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
3257 IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
3258 IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
3259 IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
3260 IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
3261 IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
3262 IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
3263 IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
3264 IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
3265 IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
3266 IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
3267 IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
3268 IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
3269 IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
3270 IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
3271 IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
3272 IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
3273 IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
3274 IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
3275 IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
3276 IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
3277 IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
3278 IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
3279 IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
3280 IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
3281 IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
3282 IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
3283 IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
3284 IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
3285 IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
3286 IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
3287 IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
3288 IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
3289 IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
3290 IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
3291 IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
3292 IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
3293 IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
3294 IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
3295 IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
3296 IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
3297 IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
3298 IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
3299 IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
3300 IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
3301 IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
3302 IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
3303 IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
3304 IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
3305 IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
3306 IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
3307 IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
3308 IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
3309 IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
3310 IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
3311 IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
3312 IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
3313 IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
3314 IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
3315 IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
3316 IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
3317 IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
3318 IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
3319 IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
3320 IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
3321 IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
3322 IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
3323 IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
3324 IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
3325 IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
3326 IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
3327 IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
3328 IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
3329 IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
3330 IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
3331 IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
3332 IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
3333 IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
3334 IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
3335 IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
3336 IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
3337 IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
3338 IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
3339 IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
3340 IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
3341 IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
3342 IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
3343 IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
3344 IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
3345 IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
3346 IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
3347 IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
3348 IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
3349 IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
3350 IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
3351 IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
3352 IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
3353 IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
3354 IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
3355 IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
3356 IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
3357 IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
3358 IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
3359 IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
3360 IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
3361 IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
3362 IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
3363 IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
3364 IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
3365 IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
3366 IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
3367 IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
3368 IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
3369 IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
3370 IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
3371 IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
3372 IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
3373 IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
3374 IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
3375 IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
3376 IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
3377 IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
3378 IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
3379 IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
3380 IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
3381 IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
3382 IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
3383 IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
3384 IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
3385 IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
3386 IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
3387 IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
3388 IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
3389 IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
3390 IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
3391 IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
3392 IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
3393 IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
3394 IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
3395 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
3396 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
3397 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
3398 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
3399 IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
3400 IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
3401 IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
3402 IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
3403 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
3404 IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
3405 IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
3406 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
3407 IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
3408 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
3409 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
3410 IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
3411 IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
3412 IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
3413 IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
3414 IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
3415 IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
3416 IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
3417 IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
3418 IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
3419 IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
3420 IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
3421 IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
3422 IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
3423 IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
3424 IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
3425 IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
3426 IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
3427 IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
3428 IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
3429 IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
3430 IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
3431 IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
3432 IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
3433 IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
3434 IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
3435 IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
3436 IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
3437 IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
3438 IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
3439 IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
3440 IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
3441 IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
3442 IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
3443 IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
3444 IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
3445 IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
3446 IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
3447 IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
3448 IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
3449 IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
3450 IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
3451 IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
3452 IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
3453 IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
3454 IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
3455 IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
3456 IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
3457 IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
3458 IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
3459 IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
3460 IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
3461 IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
3462 IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
3463 IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
3464 IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
3465 IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
3466 IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
3467 IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
3468 IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
3469 IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
3470 IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
3471 IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
3472 IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
3473 IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
3474 IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
3475 IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
3476 IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
3477 IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
3478 IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
3479 IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
3480 IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
3481 (bdesc_special_args):
3482 Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
3483 __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
3484 __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
3485 __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
3486 __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
3487 __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
3488 __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
3489 __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
3490 __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
3491 __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
3492 __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
3493 __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
3494 __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
3495 __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
3496 __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
3497 __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
3498 __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
3499 __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
3500 __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
3501 __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
3502 __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
3503 __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
3504 __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
3505 __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
3506 __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
3507 __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
3508 __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
3509 __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
3510 __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
3511 __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
3512 __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
3513 __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
3514 __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
3515 __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
3516 __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
3517 __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
3518 __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
3519 __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
3520 __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
3521 __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
3522 __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
3523 __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
3524 __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
3525 __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
3526 __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
3527 __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
3528 __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
3529 __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
3530 __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
3531 __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
3532 __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
3533 __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
3534 __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
3535 __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
3536 __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
3537 __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
3538 __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
3539 __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
3540 __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
3541 __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
3542 __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
3543 __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
3544 __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
3545 __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
3546 __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
3547 __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
3548 __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
3549 __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
3550 __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
3551 __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
3552 __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
3553 __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
3554 __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
3555 __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
3556 __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
3557 __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
3558 __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
3559 __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
3560 __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
3561 __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
3562 __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
3563 __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
3564 __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
3565 __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
3566 __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
3567 __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
3568 __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
3569 __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
3570 __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
3571 __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
3572 __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
3573 __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
3574 __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
3575 __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
3576 __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
3577 __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
3578 __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
3579 __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
3580 __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
3581 __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
3582 __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
3583 __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
3584 __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
3585 __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
3586 __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
3587 __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
3588 __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
3589 __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
3590 __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
3591 __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
3592 __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
3593 __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
3594 __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
3595 __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
3596 __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
3597 __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
3598 __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
3599 __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
3600 __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
3601 __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
3602 __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
3603 __builtin_ia32_reducesd, __builtin_ia32_reducess,
3604 __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
3605 __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
3606 __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
3607 __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
3608 __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
3609 __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
3610 __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
3611 __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
3612 __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
3613 __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
3614 __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
3615 __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
3616 __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
3617 __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
3618 __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
3619 __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
3620 __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
3621 __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
3622 __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
3623 __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
3624 __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
3625 __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
3626 __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
3627 __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
3628 __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
3629 __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
3630 __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
3631 __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
3632 __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
3633 __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
3634 __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
3635 __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
3636 __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
3637 __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
3638 __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
3639 __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
3640 __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
3641 __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
3642 __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
3643 __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
3644 __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
3645 __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
3646 __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
3647 __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
3648 __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
3649 __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
3650 __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
3651 __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
3652 __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
3653 __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
3654 __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
3655 __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
3656 __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
3657 __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
3658 __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
3659 __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
3660 __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
3661 __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
3662 __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
3663 __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
3664 __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
3665 __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
3666 __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
3667 __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
3668 __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
3669 __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
3670 __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
3671 __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
3672 __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
3673 __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
3674 __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
3675 __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
3676 __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
3677 __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
3678 __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
3679 __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
3680 __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
3681 __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
3682 __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
3683 __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
3684 __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
3685 __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
3686 __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
3687 __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
3688 __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
3689 __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
3690 __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
3691 __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
3692 __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
3693 __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
3694 __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
3695 __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
3696 __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
3697 __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
3698 __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
3699 __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
3700 __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
3701 __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
3702 __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
3703 __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
3704 __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
3705 __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
3706 __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
3707 __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
3708 __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
3709 __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
3710 __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
3711 __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
3712 __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
3713 __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
3714 __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
3715 __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
3716 __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
3717 __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
3718 __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
3719 __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
3720 __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
3721 __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
3722 __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
3723 __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
3724 __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
3725 __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
3726 __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
3727 __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
3728 __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
3729 __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
3730 __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
3731 __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
3732 __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
3733 __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
3734 __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
3735 __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
3736 __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
3737 __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
3738 __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
3739 __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
3740 __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
3741 __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
3742 __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
3743 __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
3744 __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
3745 __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
3746 __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
3747 __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
3748 __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
3749 __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
3750 __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
3751 __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
3752 __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
3753 __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
3754 __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
3755 __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
3756 __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
3757 __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
3758 __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
3759 __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
3760 __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
3761 __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
3762 __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
3763 __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
3764 __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
3765 __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
3766 __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
3767 __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
3768 __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
3769 __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
3770 __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
3771 __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
3772 __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
3773 __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
3774 __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
3775 __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
3776 __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
3777 __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
3778 __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
3779 __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
3780 __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
3781 __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
3782 __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
3783 __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
3784 __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
3785 __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
3786 __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
3787 __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
3788 __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
3789 __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
3790 __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
3791 __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
3792 __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
3793 __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
3794 __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
3795 __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
3796 __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
3797 __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
3798 __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
3799 __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
3800 __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
3801 __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
3802 __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
3803 __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
3804 __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
3805 __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
3806 __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
3807 __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
3808 __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
3809 __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
3810 __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
3811 __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
3812 __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
3813 __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
3814 __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
3815 __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
3816 __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
3817 __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
3818 __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
3819 __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
3820 __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
3821 __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
3822 __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
3823 __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
3824 __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
3825 __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
3826 __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
3827 __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
3828 __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
3829 __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
3830 __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
3831 __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
3832 __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
3833 __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
3834 __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
3835 __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
3836 __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
3837 __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
3838 __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
3839 __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
3840 __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
3841 __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
3842 __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
3843 __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
3844 __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
3845 __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
3846 __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
3847 __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
3848 __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
3849 __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
3850 __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
3851 __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
3852 __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
3853 __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
3854 __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
3855 __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
3856 __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
3857 __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
3858 __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
3859 __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
3860 __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
3861 __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
3862 __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
3863 __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
3864 __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
3865 __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
3866 __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
3867 __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
3868 __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
3869 __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
3870 __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
3871 __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
3872 __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
3873 __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
3874 __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
3875 __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
3876 __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
3877 __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
3878 __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
3879 __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
3880 __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
3881 __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
3882 __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
3883 __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
3884 __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
3885 __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
3886 __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
3887 __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
3888 __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
3889 __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
3890 __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
3891 __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
3892 __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
3893 __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
3894 __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
3895 __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
3896 __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
3897 __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
3898 __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
3899 __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
3900 __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
3901 __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
3902 __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
3903 __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
3904 __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
3905 __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
3906 __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
3907 __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
3908 __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
3909 __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
3910 __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
3911 __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
3912 __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
3913 __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
3914 __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
3915 __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
3916 __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
3917 __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
3918 __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
3919 __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
3920 __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
3921 __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
3922 __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
3923 __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
3924 __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
3925 __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
3926 __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
3927 __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
3928 __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
3929 __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
3930 __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
3931 __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
3932 __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
3933 __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
3934 __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
3935 __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
3936 __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
3937 __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
3938 __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
3939 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
3940 __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
3941 __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
3942 __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
3943 __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
3944 __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
3945 __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
3946 __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
3947 __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
3948 __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
3949 __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
3950 __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
3951 __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
3952 __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
3953 __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
3954 __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
3955 __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
3956 __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
3957 __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
3958 __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
3959 (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
3960 DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
3961 V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
3962 V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
3963 HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
3964 HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
3965 V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
3966 SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
3967 QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
3968 V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
3969 V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
3970 V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
3971 V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
3972 V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
3973 V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
3974 V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
3975 V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
3976 V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
3977 V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
3978 V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
3979 V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
3980 V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
3981 V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
3982 V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
3983 V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
3984 V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
3985 V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
3986 V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
3987 V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
3988 V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
3989 V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
3990 V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
3991 V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
3992 V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
3993 HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
3994 DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
3995 HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
3996 QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
3997 QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
3998 V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
3999 V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
4000 V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
4001 V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
4002 V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
4003 V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
4004 V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
4005 V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
4006 V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
4007 V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
4008 V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
4009 V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
4010 V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
4011 V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
4012 V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
4013 V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
4014 V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
4015 V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
4016 V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
4017 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
4018 QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
4019 HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
4020 QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
4021 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
4022 V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
4023 V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
4024 V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
4025 V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
4026 V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
4027 V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
4028 V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
4029 V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
4030 V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
4031 V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
4032 V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
4033 V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
4034 V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
4035 V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
4036 V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
4037 V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
4038 V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
4039 V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
4040 V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
4041 QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
4042 QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
4043 QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
4044 SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
4045 SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
4046 QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
4047 V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
4048 V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
4049 V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
4050 V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
4051 V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
4052 V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
4053 V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
4054 V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
4055 V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
4056 V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
4057 V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
4058 V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
4059 V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
4060 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
4061 V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
4062 V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
4063 V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
4064 V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
4065 V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
4066 V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
4067 V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
4068 V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
4069 V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
4070 V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
4071 V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
4072 VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
4073 VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
4074 VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
4075 VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
4076 VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
4077 VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
4078 VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
4079 VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
4080 VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
4081 VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
4082 VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
4083 VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
4084 V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
4085 V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
4086 V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
4087 V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
4088 V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
4089 V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
4090 V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
4092 2014-10-28 Jakub Jelinek <jakub@redhat.com>
4094 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
4095 type for the left shift in CASE_CONVERT case.
4097 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com>
4099 * asan.h (asan_intercepted_p): New function.
4100 * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
4101 hash value construction. Call iterative_hash_expr instead of explicit
4103 (asan_mem_ref_hasher::equal): Change condition.
4104 (has_mem_ref_been_instrumented): Likewise.
4105 (update_mem_ref_hash_table): Likewise.
4106 (maybe_update_mem_ref_hash_table): New function.
4107 (instrument_strlen_call): Removed.
4108 (get_mem_refs_of_builtin_call): Handle new parameter.
4109 (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
4110 of instrument_mem_region_access if intercepted_p is true.
4111 (instrument_mem_region_access): Instrument only base with len instead of
4112 base and end with 1.
4113 (build_check_stmt): Remove start_instrumented and end_instrumented
4115 (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
4116 ASAN_CHECK_END_INSTRUMENTED. Change ASAN_CHECK_LAST.
4117 (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
4118 * builtins.c (expand_builtin): Include asan.h. Don't expand string/memory
4119 builtin functions that have interceptors if ASan is enabled.
4121 2014-10-28 Richard Biener <rguenther@suse.de>
4124 * fold-const.c (fold_comparison): Properly guard simplifying
4125 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
4127 2014-10-28 Alan Lawrence <alan.lawrence@arm.com>
4129 * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
4130 * fold-const.c (const_binop): Likewise.
4131 * cfgexpand.c (expand_debug_expr): Likewise.
4132 * tree-inline.c (estimate_operator_cost): Likewise.
4133 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
4134 * optabs.c (optab_for_tree_code): Likewise.
4135 (expand_vec_shift_expr): Likewise, update comment.
4136 * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
4137 * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
4138 * optabs.def: Remove vec_shl_optab.
4139 * doc/md.texi: Remove references to vec_shr_m.
4141 2014-10-28 Yury Gribov <y.gribov@samsung.com>
4143 * asan.c (report_error_func): Add noabort path.
4144 (check_func): Ditto. Formatting.
4145 (asan_expand_check_ifn): Handle noabort path.
4146 * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
4148 * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
4149 * opts.c (finish_options): Reword comment.
4150 * sanitizer.def: Add noabort ASan builtins.
4152 2014-10-28 Yury Gribov <y.gribov@samsung.com>
4154 * asan.c (set_asan_shadow_offset): New function.
4155 (asan_shadow_offset): Likewise.
4156 (asan_emit_stack_protection): Call asan_shadow_offset.
4157 (build_shadow_mem_access): Likewise.
4158 * asan.h (set_asan_shadow_offset): Declare.
4159 * common.opt (fasan-shadow-offset): New option.
4160 (frandom-seed): Fixed parameter name.
4161 * doc/invoke.texi (fasan-shadow-offset): Describe new option.
4162 (frandom-seed): Fixed parameter name.
4163 * opts-global.c (handle_common_deferred_options): Handle
4164 -fasan-shadow-offset.
4165 * opts.c (common_handle_option): Likewise.
4167 2014-10-27 Jiong Wang <jiong.wang@arm.com>
4170 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
4172 2014-10-27 DJ Delorie <dj@redhat.com>
4174 * tree.c (build_common_tree_nodes): Don't even store the
4175 __int128 types if they're not supported.
4177 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4179 * config/i386/i386.c (ix86_loop_memcount): Delete.
4180 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
4182 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4184 * config/i386/i386.c (find_constant_1): Delete.
4185 (find_constant): Use FOR_EACH_SUBRTX.
4187 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4189 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
4190 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
4192 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4194 * config/i386/i386.c: Include rtl-iter.h
4195 (ix86_check_avx256_register): Take a const_rtx and return a bool.
4196 (ix86_check_avx256_stores): Update call accordingly.
4197 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
4198 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
4200 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4202 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
4203 Take an rtx and return a bool.
4204 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
4205 Use FOR_EACH_SUBRTX_VAR.
4206 * config/alpha/predicates.md (some_small_symbolic_operand): Update
4209 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4211 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
4213 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
4214 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
4216 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4218 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
4219 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
4221 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4223 * config/alpha/alpha.c: Include rtl-iter.h.
4224 (split_small_symbolic_operand_1): Delete.
4225 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
4227 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4229 * config/s390/s390.c: Include rtl-iter.h.
4230 (check_dpu): Delete.
4231 (s390_loop_unroll_adjust): Only iterate over patterns.
4232 Use FOR_EACH_SUBRTX.
4234 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
4236 * config/spu/spu.c: Include rtl-iter.h
4237 (ea_symbol_ref): Replace with...
4238 (ea_symbol_ref_p): ...this new function.
4239 (spu_legitimate_address_p): Update call accordingly.
4240 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
4242 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
4243 Tom Tromey <tromey@redhat.com>
4245 * aclocal.m4, configure: Rebuild.
4246 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
4247 * configure.ac: Use GCC_ENABLE_PLUGINS.
4248 * stor-layout.c (finish_bitfield_layout): Now public. Change
4249 argument type to 'tree'.
4250 (finish_record_layout): Update.
4251 * stor-layout.h (finish_bitfield_layout): Declare.
4253 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4255 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
4256 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
4257 Restore, enable for bigendian, update to use __builtin..._scal...
4259 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4261 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
4262 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
4263 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
4264 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
4266 * config/aarch64/aarch64-simd.md
4267 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
4268 (reduc_<maxmin_uns>_internal<mode>): ...this.
4269 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
4270 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
4272 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
4273 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
4274 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
4276 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
4277 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
4278 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
4279 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
4280 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
4281 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
4282 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
4283 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
4285 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4287 * config/aarch64/aarch64-simd-builtins.def
4288 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
4290 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
4292 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
4293 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
4295 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
4296 (aarch64_reduc_plus_internal<mode>): ...this.
4298 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
4299 (aarch64_reduc_plus_internalv2si): ...this.
4301 (reduc_splus_<mode>/V2F): Rename to...
4302 (aarch64_reduc_plus_internal<mode>): ...this.
4304 * config/aarch64/iterators.md
4305 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
4307 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
4309 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
4310 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
4311 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
4312 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
4313 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
4315 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4317 PR tree-optimization/61114
4318 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
4319 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
4321 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
4322 back to old reduc_... + BIT_FIELD_REF only if not.
4324 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
4325 return the reduce-to-scalar (reduc_..._scal) optab.
4326 (scalar_reduc_to_vector): New.
4328 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
4329 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
4332 * optabs.h (scalar_reduc_to_vector): Declare.
4334 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
4335 to either scalar or vector.
4337 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4339 PR tree-optimization/61114
4340 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
4341 extract_bit_field around optab result.
4343 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
4346 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
4347 for REDUC_{MIN,MAX,PLUS}_EXPR.
4349 * tree-vect-loop.c (vect_analyze_loop): Update comment.
4350 (vect_create_epilog_for_reduction): For direct vector reduction, use
4351 result of tree code directly without extract_bit_field.
4353 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
4356 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
4358 * basic-block.h: Remove all includes.
4359 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
4360 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
4361 * Makefile.in (GTFILES): Add cfg.h to list.
4362 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
4363 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
4364 * genconditions.c (write_header): Add predict.h and basic-block.h to
4366 * genemit.c (main): Ditto.
4367 * genpreds.c (write_insn_preds_c): Ditto.
4368 * genrecog.c (write_header): Ditto.
4369 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
4370 to list of includes.
4371 * alias.c: Adjust include files.
4373 * auto-inc-dec.c: Ditto.
4374 * auto-profile.c: Ditto.
4375 * bb-reorder.c: Ditto.
4377 * builtins.c: Ditto.
4378 * caller-save.c: Ditto.
4382 * cfgbuild.c: Ditto.
4383 * cfgcleanup.c: Ditto.
4384 * cfgexpand.c: Ditto.
4385 * cfghooks.c: Ditto.
4387 * cfgloopanal.c: Ditto.
4388 * cfgloopmanip.c: Ditto.
4390 * cgraphbuild.c: Ditto.
4391 * cgraphclones.c: Ditto.
4392 * cgraphunit.c: Ditto.
4393 * combine-stack-adj.c: Ditto.
4395 * compare-elim.c: Ditto.
4396 * coverage.c: Ditto.
4400 * data-streamer-in.c: Ditto.
4401 * data-streamer-out.c: Ditto.
4402 * data-streamer.c: Ditto.
4407 * df-problems.c: Ditto.
4411 * dominance.c: Ditto.
4414 * dwarf2cfi.c: Ditto.
4415 * emit-rtl.c: Ditto.
4416 * et-forest.c: Ditto.
4421 * fold-const.c: Ditto.
4422 * function.c: Ditto.
4424 * gcc-plugin.h: Ditto.
4426 * generic-match-head.c: Ditto.
4427 * ggc-page.c: Ditto.
4428 * gimple-builder.c: Ditto.
4429 * gimple-expr.c: Ditto.
4430 * gimple-fold.c: Ditto.
4431 * gimple-iterator.c: Ditto.
4432 * gimple-low.c: Ditto.
4433 * gimple-match-head.c: Ditto.
4434 * gimple-pretty-print.c: Ditto.
4435 * gimple-ssa-isolate-paths.c: Ditto.
4436 * gimple-ssa-strength-reduction.c: Ditto.
4437 * gimple-streamer-in.c: Ditto.
4438 * gimple-streamer-out.c: Ditto.
4439 * gimple-streamer.h: Ditto.
4440 * gimple-walk.c: Ditto.
4442 * gimplify-me.c: Ditto.
4443 * gimplify.c: Ditto.
4445 * graphite-blocking.c: Ditto.
4446 * graphite-clast-to-gimple.c: Ditto.
4447 * graphite-dependences.c: Ditto.
4448 * graphite-interchange.c: Ditto.
4449 * graphite-isl-ast-to-gimple.c: Ditto.
4450 * graphite-optimize-isl.c: Ditto.
4451 * graphite-poly.c: Ditto.
4452 * graphite-scop-detection.c: Ditto.
4453 * graphite-sese-to-poly.c: Ditto.
4454 * graphite.c: Ditto.
4455 * haifa-sched.c: Ditto.
4456 * hw-doloop.c: Ditto.
4458 * init-regs.c: Ditto.
4459 * internal-fn.c: Ditto.
4461 * ipa-devirt.c: Ditto.
4462 * ipa-icf-gimple.c: Ditto.
4464 * ipa-inline-analysis.c: Ditto.
4465 * ipa-inline.c: Ditto.
4466 * ipa-polymorphic-call.c: Ditto.
4467 * ipa-profile.c: Ditto.
4468 * ipa-prop.c: Ditto.
4469 * ipa-pure-const.c: Ditto.
4470 * ipa-reference.c: Ditto.
4471 * ipa-split.c: Ditto.
4472 * ipa-utils.c: Ditto.
4474 * ira-build.c: Ditto.
4475 * ira-color.c: Ditto.
4476 * ira-conflicts.c: Ditto.
4477 * ira-costs.c: Ditto.
4478 * ira-emit.c: Ditto.
4479 * ira-lives.c: Ditto.
4483 * loop-doloop.c: Ditto.
4484 * loop-init.c: Ditto.
4485 * loop-invariant.c: Ditto.
4487 * loop-unroll.c: Ditto.
4488 * lower-subreg.c: Ditto.
4489 * lra-assigns.c: Ditto.
4490 * lra-coalesce.c: Ditto.
4491 * lra-constraints.c: Ditto.
4492 * lra-eliminations.c: Ditto.
4493 * lra-lives.c: Ditto.
4494 * lra-spills.c: Ditto.
4496 * lto-cgraph.c: Ditto.
4497 * lto-compress.c: Ditto.
4498 * lto-opts.c: Ditto.
4499 * lto-section-in.c: Ditto.
4500 * lto-section-out.c: Ditto.
4501 * lto-streamer-in.c: Ditto.
4502 * lto-streamer-out.c: Ditto.
4503 * lto-streamer.c: Ditto.
4505 * mode-switching.c: Ditto.
4506 * modulo-sched.c: Ditto.
4509 * opts-global.c: Ditto.
4511 * postreload-gcse.c: Ditto.
4512 * postreload.c: Ditto.
4514 * print-rtl.c: Ditto.
4518 * reg-stack.c: Ditto.
4519 * regcprop.c: Ditto.
4520 * regcprop.h: Ditto.
4522 * regrename.c: Ditto.
4527 * resource.c: Ditto.
4529 * sched-deps.c: Ditto.
4530 * sched-ebb.c: Ditto.
4531 * sched-int.h: Ditto.
4532 * sched-rgn.c: Ditto.
4533 * sched-vis.c: Ditto.
4534 * sel-sched-dump.c: Ditto.
4535 * sel-sched-ir.c: Ditto.
4536 * sel-sched-ir.h: Ditto.
4537 * sel-sched.c: Ditto.
4539 * shrink-wrap.c: Ditto.
4540 * stack-ptr-mod.c: Ditto.
4542 * store-motion.c: Ditto.
4546 * trans-mem.c: Ditto.
4547 * tree-affine.c: Ditto.
4548 * tree-call-cdce.c: Ditto.
4549 * tree-cfg.c: Ditto.
4550 * tree-cfgcleanup.c: Ditto.
4551 * tree-chrec.c: Ditto.
4552 * tree-complex.c: Ditto.
4553 * tree-data-ref.c: Ditto.
4554 * tree-dfa.c: Ditto.
4556 * tree-emutls.c: Ditto.
4557 * tree-if-conv.c: Ditto.
4558 * tree-inline.c: Ditto.
4559 * tree-into-ssa.c: Ditto.
4560 * tree-loop-distribution.c: Ditto.
4561 * tree-nested.c: Ditto.
4562 * tree-nrv.c: Ditto.
4563 * tree-object-size.c: Ditto.
4564 * tree-outof-ssa.c: Ditto.
4565 * tree-parloops.c: Ditto.
4566 * tree-phinodes.c: Ditto.
4567 * tree-predcom.c: Ditto.
4568 * tree-pretty-print.c: Ditto.
4569 * tree-profile.c: Ditto.
4570 * tree-scalar-evolution.c: Ditto.
4571 * tree-sra.c: Ditto.
4572 * tree-ssa-address.c: Ditto.
4573 * tree-ssa-alias.c: Ditto.
4574 * tree-ssa-ccp.c: Ditto.
4575 * tree-ssa-coalesce.c: Ditto.
4576 * tree-ssa-copy.c: Ditto.
4577 * tree-ssa-copyrename.c: Ditto.
4578 * tree-ssa-dce.c: Ditto.
4579 * tree-ssa-dom.c: Ditto.
4580 * tree-ssa-dse.c: Ditto.
4581 * tree-ssa-forwprop.c: Ditto.
4582 * tree-ssa-ifcombine.c: Ditto.
4583 * tree-ssa-live.c: Ditto.
4584 * tree-ssa-loop-ch.c: Ditto.
4585 * tree-ssa-loop-im.c: Ditto.
4586 * tree-ssa-loop-ivcanon.c: Ditto.
4587 * tree-ssa-loop-ivopts.c: Ditto.
4588 * tree-ssa-loop-manip.c: Ditto.
4589 * tree-ssa-loop-niter.c: Ditto.
4590 * tree-ssa-loop-prefetch.c: Ditto.
4591 * tree-ssa-loop-unswitch.c: Ditto.
4592 * tree-ssa-loop.c: Ditto.
4593 * tree-ssa-math-opts.c: Ditto.
4594 * tree-ssa-operands.c: Ditto.
4595 * tree-ssa-phiopt.c: Ditto.
4596 * tree-ssa-phiprop.c: Ditto.
4597 * tree-ssa-pre.c: Ditto.
4598 * tree-ssa-propagate.c: Ditto.
4599 * tree-ssa-reassoc.c: Ditto.
4600 * tree-ssa-sccvn.c: Ditto.
4601 * tree-ssa-sink.c: Ditto.
4602 * tree-ssa-strlen.c: Ditto.
4603 * tree-ssa-structalias.c: Ditto.
4604 * tree-ssa-tail-merge.c: Ditto.
4605 * tree-ssa-ter.c: Ditto.
4606 * tree-ssa-threadedge.c: Ditto.
4607 * tree-ssa-threadupdate.c: Ditto.
4608 * tree-ssa-uncprop.c: Ditto.
4609 * tree-ssa-uninit.c: Ditto.
4610 * tree-ssa.c: Ditto.
4611 * tree-ssanames.c: Ditto.
4612 * tree-stdarg.c: Ditto.
4613 * tree-streamer-in.c: Ditto.
4614 * tree-streamer-out.c: Ditto.
4615 * tree-streamer.c: Ditto.
4616 * tree-switch-conversion.c: Ditto.
4617 * tree-tailcall.c: Ditto.
4618 * tree-vect-data-refs.c: Ditto.
4619 * tree-vect-generic.c: Ditto.
4620 * tree-vect-loop-manip.c: Ditto.
4621 * tree-vect-loop.c: Ditto.
4622 * tree-vect-patterns.c: Ditto.
4623 * tree-vect-slp.c: Ditto.
4624 * tree-vect-stmts.c: Ditto.
4625 * tree-vectorizer.c: Ditto.
4626 * tree-vrp.c: Ditto.
4630 * valtrack.c: Ditto.
4631 * valtrack.h: Ditto.
4632 * value-prof.c: Ditto.
4633 * var-tracking.c: Ditto.
4636 * vtable-verify.c: Ditto.
4638 * config/aarch64/aarch64-builtins.c: Ditto.
4639 * config/aarch64/aarch64.c: Ditto.
4640 * config/alpha/alpha.c: Ditto.
4641 * config/arc/arc.c: Ditto.
4642 * config/arm/arm.c: Ditto.
4643 * config/avr/avr.c: Ditto.
4644 * config/bfin/bfin.c: Ditto.
4645 * config/c6x/c6x.c: Ditto.
4646 * config/cr16/cr16.c: Ditto.
4647 * config/cris/cris.c: Ditto.
4648 * config/darwin-c.c: Ditto.
4649 * config/darwin.c: Ditto.
4650 * config/epiphany/epiphany.c: Ditto.
4651 * config/epiphany/mode-switch-use.c: Ditto.
4652 * config/epiphany/resolve-sw-modes.c: Ditto.
4653 * config/fr30/fr30.c: Ditto.
4654 * config/frv/frv.c: Ditto.
4655 * config/h8300/h8300.c: Ditto.
4656 * config/i386/i386.c: Ditto.
4657 * config/i386/winnt.c: Ditto.
4658 * config/ia64/ia64.c: Ditto.
4659 * config/iq2000/iq2000.c: Ditto.
4660 * config/lm32/lm32.c: Ditto.
4661 * config/m32c/m32c.c: Ditto.
4662 * config/m32r/m32r.c: Ditto.
4663 * config/m68k/m68k.c: Ditto.
4664 * config/mcore/mcore.c: Ditto.
4665 * config/mep/mep.c: Ditto.
4666 * config/microblaze/microblaze.c: Ditto.
4667 * config/mips/mips.c: Ditto.
4668 * config/mmix/mmix.c: Ditto.
4669 * config/mn10300/mn10300.c: Ditto.
4670 * config/moxie/moxie.c: Ditto.
4671 * config/msp430/msp430.c: Ditto.
4672 * config/nds32/nds32-cost.c: Ditto.
4673 * config/nds32/nds32-fp-as-gp.c: Ditto.
4674 * config/nds32/nds32-intrinsic.c: Ditto.
4675 * config/nds32/nds32-isr.c: Ditto.
4676 * config/nds32/nds32-md-auxiliary.c: Ditto.
4677 * config/nds32/nds32-memory-manipulation.c: Ditto.
4678 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
4679 * config/nds32/nds32-predicates.c: Ditto.
4680 * config/nds32/nds32.c: Ditto.
4681 * config/nios2/nios2.c: Ditto.
4682 * config/pa/pa.c: Ditto.
4683 * config/pdp11/pdp11.c: Ditto.
4684 * config/rl78/rl78.c: Ditto.
4685 * config/rs6000/rs6000.c: Ditto.
4686 * config/rx/rx.c: Ditto.
4687 * config/s390/s390.c: Ditto.
4688 * config/sh/sh-mem.cc: Ditto.
4689 * config/sh/sh.c: Ditto.
4690 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
4691 * config/sh/sh_treg_combine.cc: Ditto.
4692 * config/sparc/sparc.c: Ditto.
4693 * config/spu/spu.c: Ditto.
4694 * config/stormy16/stormy16.c: Ditto.
4695 * config/tilegx/tilegx.c: Ditto.
4696 * config/tilepro/tilepro.c: Ditto.
4697 * config/v850/v850.c: Ditto.
4698 * config/vax/vax.c: Ditto.
4699 * config/xtensa/xtensa.c: Ditto.
4701 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
4703 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
4704 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
4705 Remove using preprocessor directives.
4707 2014-10-27 Richard Biener <rguenther@suse.de>
4709 * match.pd (0 % X): Properly use the iterator iterating over
4710 all modulo operators.
4713 2014-10-27 Richard Biener <rguenther@suse.de>
4715 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
4716 (lattice): New global.
4717 (fwprop_ssa_val): New function.
4718 (fold_all_stmts): Likewise.
4719 (pass_forwprop::execute): Finally fold all stmts.
4721 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
4724 * doc/invoke.texi (fmessage-length): Update text to match reality.
4726 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4728 * config/microblaze/microblaze.c: Include rtl-iter.h.
4729 (microblaze_tls_referenced_p_1): Delete.
4730 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
4732 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4734 * config/mips/mips.c (mips_at_reg_p): Delete.
4735 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
4737 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4739 * config/mips/mips.c (mips_record_lo_sum): Replace with...
4740 (mips_record_lo_sums): ...this new function.
4741 (mips_reorg_process_insns): Update accordingly.
4743 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4745 * config/mips/mips.c (mips_sim_insn): Update comment.
4746 (mips_sim_wait_regs_2): Delete.
4747 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
4749 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4751 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
4752 and return a bool. Iterate over all subrtxes here.
4753 (r10k_needs_protection_p): Update accordingly.
4755 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4757 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
4758 rather than an rtx pointer. Change type of insn from "void *"
4759 to its real type. Return bool rather than int. Iterate over
4761 (r10k_needs_protection_p_store): Update accordingly.
4762 (r10k_needs_protection_p): Likewise.
4764 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4766 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
4767 (mips16_rewrite_pool_refs): Take the insn and constant pool as
4768 parameters. Iterate over the instruction's pattern and return void.
4769 (mips16_lay_out_constants): Update accordingly.
4771 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4773 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
4774 (mips_refers_to_kernel_reg_p): ...this new function.
4775 (mips_expand_prologue): Update accordingly.
4777 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4779 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
4780 as a parameter instead of the containing MEM. Iterate over all
4781 subrtxes. Don't return a value.
4782 (mips_rewrite_small_data): Update call accordingly.
4784 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4786 * config/mips/mips.c: Include rtl-iter.h.
4787 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
4788 Take the context as a parameter instead of the containing MEM.
4789 Iterate over all subrtxes.
4790 (mips_small_data_pattern_p): Update call accordingly.
4792 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4794 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
4795 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
4797 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4799 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
4800 return a bool. Replace "void *" with specific type. Iterate
4802 (mep_store_data_bypass_1): Update calls accordingly.
4804 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4806 * config/mep/mep.c: Include rtl-iter.h.
4807 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
4808 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
4810 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4812 * config/xtensa/xtensa.c: Include rtl-iter.h.
4813 (xtensa_tls_referenced_p_1): Delete.
4814 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
4816 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4818 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
4819 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
4821 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4823 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
4824 rtx as argument and return the number of changes.
4825 * config/sh/sh.c: Include rtl-iter.h.
4826 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
4827 over all subrtxes. Return the number of changes made.
4828 * config/sh/sh.md: Update caller accordingly.
4830 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4832 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
4833 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
4835 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
4837 * config/m68k/m68k.c: Include rtl-iter.h.
4838 (m68k_final_prescan_insn_1): Delete.
4839 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
4841 2014-10-25 Jakub Jelinek <jakub@redhat.com>
4843 PR tree-optimization/63641
4844 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
4845 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
4847 2014-10-25 Alan Modra <amodra@gmail.com>
4849 PR rtl-optimization/63615
4850 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
4851 decomposing PLUS or MINUS if operands are not placed adjacent
4854 2014-10-25 Joseph Myers <joseph@codesourcery.com>
4856 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
4857 not allow e500 double in registers not satisyfing
4860 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
4862 * dwarf2out.c (declare_in_namespace): Only emit external
4863 declarations in the local scope once.
4865 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
4867 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
4869 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
4871 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
4872 update uses to use new macro arguments.
4873 (__LD3_LANE_FUNC): Likewise.
4874 (__LD4_LANE_FUNC): Likewise.
4876 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
4878 * config/aarch64/aarch64-builtins.c
4879 (aarch64_types_loadstruct_lane_qualifiers): Define.
4880 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
4881 ld4_lane): New builtins.
4882 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
4884 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
4885 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
4886 (aarch64_ld2_lane<mode>): New expand.
4887 (aarch64_ld3_lane<mode>): Likewise.
4888 (aarch64_ld4_lane<mode>): Likewise.
4889 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
4890 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
4892 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
4894 * avr-protos.h (avr_out_sign_extend): New.
4895 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
4896 (avr_out_sign_extend): New function.
4897 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
4898 (extendhisi2, extendpsisi2): Use it.
4899 (adjust_len) [sext]: New.
4901 2014-10-24 Martin Liska <mliska@suse.cz>
4903 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
4906 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4908 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
4909 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
4910 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
4911 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
4913 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4915 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
4917 * config/aarch64/aarch64.c (is_mem_p): Delete.
4918 (is_memory_op): Rename to...
4919 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
4920 (dep_between_memop_and_curr): Assert that the input is a SET.
4921 (aarch64_madd_needs_nop): Add comment. Do not call
4922 dep_between_memop_and_curr on NULL body.
4923 (aarch64_final_prescan_insn): Add comment.
4926 2014-10-24 Richard Biener <rguenther@suse.de>
4928 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
4929 to genmatch BUILD_LIBS instead.
4931 2014-10-24 Richard Biener <rguenther@suse.de>
4933 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
4934 and build_call_expr_loc.
4935 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
4936 non_lvalue_loc to build it for GENERIC.
4937 (decision_tree::gen_generic): Add location argument to
4938 generic_simplify prototype.
4939 (capture_info): New class.
4940 (capture_info::capture_info): New constructor.
4941 (capture_info::walk_match): New method.
4942 (capture_info::walk_result): New method.
4943 (capture_info::walk_c_expr): New method.
4944 (dt_simplify::gen): Handle preserving side-effects for
4945 GENERIC code generation.
4946 (decision_tree::gen_generic): Do not reject operands
4947 with TREE_SIDE_EFFECTS.
4948 * generic-match.h: New file.
4949 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
4950 * match.pd: Add some constant folding patterns from fold-const.c.
4951 * fold-const.c: Include generic-match.h.
4952 (fold_unary_loc): Dispatch to generic_simplify.
4953 (fold_ternary_loc): Likewise.
4954 (fold_binary_loc): Likewise. Remove patterns now implemented
4955 by generic_simplify.
4956 * gimple-fold.c (replace_stmt_with_simplification): New function.
4957 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
4958 (no_follow_ssa_edges): New function.
4959 (fold_stmt): New overload with valueization hook. Use
4960 no_follow_ssa_edges for the overload without hook.
4961 (fold_stmt_inplace): Likewise.
4962 * gimple-fold.h (no_follow_ssa_edges): Declare.
4964 2014-10-24 Felix Yang <felix.yang@huawei.com>
4965 Jiji Jiang <jiangjiji@huawei.com>
4968 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
4969 (__LD3R_FUNC): Ditto.
4970 (__LD4R_FUNC): Ditto.
4971 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
4972 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
4973 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
4974 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
4975 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
4976 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
4977 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
4978 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
4979 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
4980 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
4981 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
4982 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
4983 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
4984 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
4985 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
4986 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
4987 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
4988 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
4989 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
4990 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
4991 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
4993 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
4994 (aarch64_simd_ld3r<mode>): Likewise.
4995 (aarch64_simd_ld4r<mode>): Likewise.
4996 (aarch64_ld2r<mode>): New expand.
4997 (aarch64_ld3r<mode>): Likewise.
4998 (aarch64_ld4r<mode>): Likewise.
5000 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5002 * rtlanal.c (get_base_term): Handle SCRATCH.
5004 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5006 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
5009 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5011 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
5012 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
5013 (max_issue, choose_ready, sched_init): Update.
5015 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5017 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
5018 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
5019 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
5020 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
5021 (print_rank_for_schedule_stats): Print out elements of ready list that
5022 ended up on their respective places due to each of the sorting
5024 (ready_sort): Update.
5025 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
5026 (schedule_block): Update.
5028 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
5030 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
5031 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
5032 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
5033 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
5034 (model_start_schedule): Update.
5035 (sched_pressure_start_bb): New static function. Calculate
5036 sched_class_regs_num.
5037 (schedule_block): Use it.
5038 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
5040 2014-10-24 Richard Biener <rguenther@suse.de>
5042 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
5043 host library and make sure to pull in the required libintl
5044 and libiconv dependencies.
5046 2014-10-24 Richard Biener <rguenther@suse.de>
5048 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
5050 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
5053 * collect2.c (main): Filter out -fno-lto.
5055 2014-10-24 Martin Liska <mliska@suse.cz>
5057 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
5058 division by zero in dumps.
5059 (sem_item_optimizer::merge_classes): Ditto.
5061 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
5063 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
5065 2014-10-23 Ian Lance Taylor <iant@google.com>
5067 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
5069 2014-10-23 Ian Lance Taylor <iant@google.com>
5071 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
5073 2014-10-23 Jakub Jelinek <jakub@redhat.com>
5076 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
5077 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
5078 instead of only handling autoinc in dest if it is a MEM.
5079 (vt_stack_adjustments): Fix up formatting.
5081 2014-10-23 DJ Delorie <dj@redhat.com>
5083 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
5084 independend of -mlarge.
5085 * config/msp430/constraints.md (Ys): Update comment.
5087 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
5091 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
5093 * dse.c (deletable_insn_p): Likewise.
5095 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
5097 * config/avr/avr.c: Fix GNU coding rules and typos.
5098 * config/avr/avr.h: Dito.
5099 * config/avr/avr-c.c: Dito.
5100 * config/avr/avr.md: Dito.
5102 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
5104 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
5106 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
5108 (define_expand "abs<mode>2"): Ditto.
5110 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
5112 * tree-core.h (tree_var_decl): Extend `function_code' field
5113 by one bit, move `regdecl_flag' field to ...
5114 (tree_decl_with_vis): Here.
5115 * tree.h (DECL_STATIC_CHAIN): Update struct name.
5117 2014-10-23 Richard Biener <rguenther@suse.de>
5119 * Makefile.in (BUILD_CPPLIB): Add.
5120 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
5123 2014-10-23 Richard Biener <rguenther@suse.de>
5125 * fold-const.c (fold_binary_loc): Preserve side-effects of
5126 X - X when simplifying to 0.
5127 * stor-layout.c (finish_bitfield_representative): Strip
5128 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
5130 2014-10-22 Richard Biener <rguenther@suse.de>
5131 Tobias Burnus <burnus@net-b.de>
5134 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
5136 2014-10-22 Dehao Chen <dehao@google.com>
5138 * auto-profile.c: Change order of header files.
5140 2014-10-22 Guozhi Wei <carrot@google.com>
5142 PR tree-optimization/63530
5143 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
5144 pointer alignment according to DR_MISALIGNMENT.
5146 2014-10-22 David Malcolm <dmalcolm@redhat.com>
5148 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
5150 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
5152 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
5153 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
5154 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
5155 * dominance.h: New. Add prototypes for dominance.c.
5156 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
5157 * cfghooks.h: (struct profile_record) Relocate here.
5158 Relocate 2 prototypes from basic-block.h.
5159 * basic-block.h: Move prototypes and struct to new header files.
5160 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
5161 * rtl.h: Move a few prototypes to new header files.
5162 * cfgcleanup.c (merge_memattrs): Make static.
5163 * genopinit.c (main): Add predict.h to list of includes.
5164 * predict.h: Update prototype list to match predict.c.
5165 * predict.c (maybe_hot_count_p): Export.
5166 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
5167 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
5168 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
5169 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
5170 * profile.h: Adjust prototypes.
5171 * ifcvt.h: New. Relocate struct ce_if_block here.
5172 * ifcvt.c: Include ifcvt.h.
5173 * config/frv/frv.c: Include ifcvt.h.
5174 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
5176 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5178 * lra.c (lra): Remove call to recog_init.
5179 * config/i386/i386.md (preferred_for_speed): New attribute
5180 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
5181 "enabled". Remove check for sched1.
5183 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5185 * recog.h (recog_data_d): Remove enabled_alternatives.
5186 * recog.c (extract_insn): Don't set it.
5187 * reload.c (find_reloads): Call get_enabled_alternatives.
5189 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5191 * recog.h (constrain_operands): Add an alternative_mask parameter.
5192 (constrain_operands_cached): Likewise.
5193 (get_preferred_alternatives): Declare new form.
5194 * recog.c (get_preferred_alternatives): New bb-taking instance.
5195 (constrain_operands): Take the set of available alternatives as
5197 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
5198 (extract_constrain_insn_cached): Update calls to constrain_operands.
5199 * caller-save.c (reg_save_code): Likewise.
5200 * ira.c (setup_prohibited_mode_move_regs): Likewise.
5201 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
5202 * ree.c (combine_reaching_defs): Likewise.
5203 * reload.c (can_reload_into): Likewise.
5204 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
5205 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
5206 (emit_insn_if_valid_for_reload): Likewise.
5207 * reorg.c (fill_slots_from_thread): Likewise.
5208 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
5209 * config/pa/pa.c (pa_can_combine_p): Likewise.
5210 * config/rl78/rl78.c (insn_ok_now): Likewise.
5211 * config/sh/sh.md (define_peephole2): Likewise.
5212 * final.c (final_scan_insn): Update call to constrain_operands_cached.
5214 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5216 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
5218 * genattr.c (main): Handle "preferred_for_size" and
5219 "preferred_for_speed" in the same way as "enabled".
5220 * recog.h (bool_attr): New enum.
5221 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
5222 (get_preferred_alternatives, check_bool_attrs): Declare.
5223 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
5224 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
5226 (get_enabled_alternatives): Use get_bool_attr_mask.
5227 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
5228 instead of recog_data.enabled_alternatives.
5229 * ira.c (ira_setup_alts): Likewise.
5230 * postreload.c (reload_cse_simplify_operands): Likewise.
5231 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5232 * ira-lives.c (preferred_alternatives): New variable.
5233 (process_bb_node_lives): Set it.
5234 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
5235 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
5236 of recog_data.enabled_alternatives.
5237 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
5238 to preferred_alternatives.
5239 * lra-constraints.c (process_alt_operands): Update accordingly.
5240 * lra.c (lra_set_insn_recog_data): Likewise.
5241 (lra_update_insn_recog_data): Assert check_bool_attrs.
5243 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
5245 * recog.h (extract_constrain_insn): Declare.
5246 * recog.c (extract_constrain_insn): New function.
5247 * lra.c (check_rtl): Use it.
5248 * postreload.c (reload_cse_simplify_operands): Likewise.
5249 * reg-stack.c (check_asm_stack_operands): Likewise.
5250 (subst_asm_stack_regs): Likewise.
5251 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
5252 * regrename.c (build_def_use): Likewise.
5253 * sel-sched.c (get_reg_class): Likewise.
5254 * config/arm/arm.c (note_invalid_constants): Likewise.
5255 * config/s390/predicates.md (execute_operation): Likewise.
5257 2014-10-22 Jakub Jelinek <jakub@redhat.com>
5258 Yury Gribov <y.gribov@samsung.com>
5260 * common.opt (flag_sanitize_recover): New variable.
5261 (fsanitize-recover): Remove Var/Init, deprecate.
5262 (fsanitize-recover=): New option.
5263 * doc/invoke.texi (fsanitize-recover): Update docs.
5264 * opts.c (finish_options): Use opts->x_flag_sanitize
5265 instead of flag_sanitize. Prohibit -fsanitize-recover
5266 for anything besides UBSan. Formatting.
5267 (common_handle_option): Handle OPT_fsanitize_recover_
5268 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
5269 instead of flag_sanitize.
5270 * asan.c (pass_sanopt::execute): Fix up formatting.
5271 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
5272 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
5273 instrument_bool_enum_load, ubsan_instrument_float_cast,
5274 instrument_nonnull_arg, instrument_nonnull_return): Check
5275 bits in flag_sanitize_recover bitmask instead of
5276 flag_sanitize_recover as bool flag.
5278 2014-10-22 Jiong Wang <jiong.wang@arm.com>
5280 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
5282 2014-10-22 Renlin Li <renlin.li@arm.com>
5284 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
5285 __ARM_FEATURE_IDIV__.
5287 2014-10-22 Richard Biener <rguenther@suse.de>
5289 * Makefile.in (s-match): Adjust dependencies to only catch
5292 2014-10-22 Richard Biener <rguenther@suse.de>
5293 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
5295 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
5296 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
5297 (gimple-match.c): Generate by triggering s-match.
5298 (generic-match.c): Likewise.
5299 (s-match): Rule to build gimple-match.c and generic-match.c
5300 by running the genmatch generator program.
5301 (build/hash-table.o): Dependencies to build hash-table.c for the host.
5302 (build/genmatch.o): Dependencies to build genmatch.
5303 (genprog): Add match.
5304 (build/genmatch): Likewise.
5305 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
5306 * generic-match-head.c: New file.
5307 * gimple-match-head.c: Likewise.
5308 * gimple-match.h: Likewise.
5309 * genmatch.c: Likewise.
5310 * match.pd: Likewise.
5311 * builtins.h (fold_builtin_n): Export.
5312 * builtins.c (fold_builtin_n): Likewise.
5313 * gimple-fold.h (gimple_build): Declare various overloads.
5314 (gimple_simplify): Likewise.
5315 (gimple_convert): Re-implement in terms of gimple_build.
5316 * gimple-fold.c (gimple_convert): Remove.
5317 (gimple_build): New functions.
5318 * doc/match-and-simplify.texi: New file.
5319 * doc/gccint.texi: Add menu item Match and Simplify and include
5320 match-and-simplify.texi.
5322 2014-10-22 Jakub Jelinek <jakub@redhat.com>
5325 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
5326 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
5327 even for just TARGET_AVX2, not only for
5328 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
5329 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
5330 otherwise build it using concatenation of 256-bit
5332 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
5333 avx512 broadcast patterns.
5334 (vec_dup<mode>): Likewise. For avx2 use
5335 v<sseintprefix>broadcast<bcstscalarsuff> instead of
5336 vbroadcast<ssescalarmodesuffix>.
5337 (AVX2_VEC_DUP_MODE): New mode iterator.
5338 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
5339 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
5342 * config/i386/i386.c (ix86_pic_register_p): Also return
5343 true if x is a hard register with ORIGINAL_REGNO equal to
5344 pic_offset_table_rtx pseudo REGNO.
5345 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
5346 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
5348 2014-10-22 Alan Modra <amodra@gmail.com>
5350 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
5351 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
5352 (gcc_obstack_init): Use obstack_specify_allocation in place of
5354 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
5355 (regexp_representation): Likewise.
5356 * godump.c (go_output_type): Likewise.
5358 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
5360 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
5361 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
5362 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
5364 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
5366 * doc/invoke.texi (pedantic-errors): Explain better.
5368 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
5369 Vidya Praveen <vidya.praveen@atmel.com>
5370 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
5371 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
5372 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
5374 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
5376 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
5377 (avr_nonconst_pointer_addrspace): Likewise.
5378 * config/avr/avr.h (AVR_HAVE_LPM): Define.
5380 Added AVRTINY architecture to avr target.
5381 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
5382 (base_arch_s): member added for AVRTINY architecture.
5383 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
5384 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
5385 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
5386 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
5387 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
5388 in callee saved register list.
5389 (avr_option_override): CCP address updated for AVRTINY.
5390 (avr_init_expanders): tmp and zero rtx initialized as per arch.
5391 Reset avr_have_dimode if AVRTINY.
5392 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
5393 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
5394 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
5395 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
5396 (expand_epilogue): Likewise.
5397 (avr_print_operand): Print CCP address in case of AVRTINY also.
5399 (function_arg_regno_p): Check different register list for arguments
5401 (init_cumulative_args): Check for AVRTINY to update number of argument
5403 (tiny_valid_direct_memory_access_range): New function. Return false if
5404 direct memory access range is not in accepted range for AVRTINY.
5405 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
5406 indirect load (with displacement) for AVRTINY.
5407 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
5408 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
5409 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
5410 indirect load (no displacement) for AVRTINY.
5411 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
5412 indirect load (with displacement) for AVRTINY.
5413 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
5414 indirect load for pre-decrement address.
5415 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
5416 functions. Update instruction length for AVRTINY.
5417 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
5419 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
5420 (out_movsi_r_mr): Likewise, for SImode.
5421 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
5422 indirect store (no displacement) for AVRTINY.
5423 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
5424 indirect store (with displacement) for AVRTINY.
5425 (out_movsi_mr_r): Emit out insn for IO address store. Update store
5426 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
5428 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
5429 indirect load (no displacement) for PSImode in AVRTINY.
5430 (avr_out_load_psi_reg_disp_tiny): New function to handle register
5431 indirect load (with displacement) for PSImode in AVRTINY.
5432 (avr_out_load_psi): Call PSImode register indirect load functions for
5433 AVRTINY. Update instruction length for AVRTINY.
5434 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
5435 indirect store (no displacement) for PSImode in AVRTINY.
5436 (avr_out_store_psi_reg_disp_tiny): New function to handle register
5437 indirect store (with displacement) for PSImode in AVRTINY.
5438 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
5439 register indirect store functions for AVRTINY.
5440 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
5441 register indirect store (with displacement) for AVRTINY.
5442 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
5443 register indirect store function for QImode in AVRTINY.
5444 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
5445 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
5446 indirect store (no displacement) for HImode in AVRTINY.
5447 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
5448 indirect store (with displacement) for HImode in AVRTINY.
5449 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
5450 indirect store for post-increment address in HImode.
5451 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
5452 register indirect store function for HImode in AVRTINY.
5453 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
5455 (order_regs_for_local_alloc): Updated register allocation order for
5457 (avr_conditional_register_usage): New function. It is a target hook
5458 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
5459 used registers list and register allocation order for AVRTINY.
5460 (avr_return_in_memory): Update return value size for AVRTINY.
5461 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
5462 for AVRTINY arch and tiny program memory base address.
5463 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
5464 (avr_texinfo): Added description for AVRTINY arch.
5465 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
5466 STATIC_CHAIN_REGNUM for AVRTINY.
5467 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
5468 * config/avr/avr.md: Added constants for tmp/ zero registers in
5469 AVRTINY. Attributes for AVRTINY added.
5470 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
5471 memory access range.
5472 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
5473 in AVRTINY memory access range.
5474 (*mov<mode>): Likewise for HImode and SImode.
5475 (*movsf): Likewise for SFmode.
5476 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
5478 * config/avr/avr-protos.h: Added function prototype for
5479 tiny_valid_direct_memory_access_range.
5480 * config/avr/avr-tables.opt: Regenerate.
5481 * gcc/config/avr/t-multilib: Regenerate.
5482 * doc/avr-mmcu.texi: Regenerate.
5484 2014-10-21 Andrew Pinski <apinski@cavium.com>
5486 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
5487 available option also.
5488 * config/aarch64/aarch64-cost-tables.h: New file.
5489 * config/aarch64/aarch64-cores.def (thunderx): New core.
5490 * config/aarch64/aarch64-tune.md: Regenerate.
5491 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
5492 of config/arm/aarch-cost-tables.h.
5493 (thunderx_regmove_cost): New variable.
5494 (thunderx_tunings): New variable.
5496 2014-10-21 Dehao Chen <dehao@google.com>
5498 * auto-profile.c: New file.
5499 * auto-profile.h: New file.
5500 * basic-block.h (maybe_hot_count_p): New export func.
5501 (add_working_set): New export func.
5502 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
5503 (GCOV_TAG_AFDO_FUNCTION): Likewise.
5504 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
5505 * opts.c (enable_fdo_optimizations): New func.
5506 (common_handle_option): Handle -fauto-profile flag.
5507 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
5508 (class pass_early_inline): Export early_inliner.
5509 (early_inliner): Likewise.
5510 (pass_early_inline::execute): Likewise.
5511 * ipa-inline.h (early_inliner): Likewise.
5512 * predict.c (maybe_hot_count_p): New export func.
5513 (counts_to_freqs): AutoFDO logic.
5514 (rebuild_frequencies): Likewise.
5515 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
5516 * profile.c (add_working_set): New func.
5517 * Makefile.in (auto-profile.o): New object file.
5518 * passes.def (pass_ipa_auto_profile): New pass.
5519 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
5520 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
5521 * toplev.c (compile_file): AutoFDO logic.
5522 * doc/invoke.texi (-fauto-profile): New doc.
5523 * coverage.c (coverage_init): AutoFDO logic.
5524 * common.opt (-fauto-profile): New flag.
5525 * timevar.def (TV_IPA_AUTOFDO): New tag.
5526 * value-prof.c (gimple_alloc_histogram_value): New export func.
5527 (check_ic_target): Likewise.
5528 * value-prof.h (gimple_alloc_histogram_value): Likewise.
5529 (check_ic_target): Likewise.
5531 2014-10-21 David Malcolm <dmalcolm@redhat.com>
5533 * cgraph.c (cgraph_c_finalize): New function.
5534 * cgraph.h (cgraph_c_finalize): New prototype.
5535 (cgraphunit_c_finalize): New prototype.
5536 * cgraphunit.c (first_analyzed): Move from analyze_functions
5538 (first_analyzed_var): Likewise.
5539 (analyze_functions): Move static variables into file-scope.
5540 (cgraphunit_c_finalize): New function.
5541 * diagnostic.c (diagnostic_finish): Free the memory for
5542 context->classify_diagnostic and context->printer, running the
5543 destructor for the latter.
5544 (bt_stop): Use toplev::main.
5545 * dwarf2out.c (dwarf2out_finalize): New function.
5546 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
5547 * gcse.c (gcse_c_finalize): New function.
5548 * gcse.h (gcse_c_finalize): New prototype.
5549 * ggc-page.c (init_ggc): Make idempotent.
5550 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
5551 * ipa-cp.c (ipa_cp_c_finalize): New function.
5552 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
5553 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
5554 a field of class pass_ipa_pure_const.
5555 (node_duplication_hook_holder): Likewise.
5556 (node_removal_hook_holder): Likewise.
5557 (register_hooks): Convert to method...
5558 (pass_ipa_pure_const::register_hooks): ...here, converting
5559 static variable init_p into...
5560 (pass_ipa_pure_const::init_p): ...new field.
5561 (pure_const_generate_summary): Update invocation of
5562 register_hooks to invoke as a method of current_pass.
5563 (pure_const_read_summary): Likewise.
5564 (propagate): Convert to...
5565 (pass_ipa_pure_const::execute): ...method.
5566 * ipa-reference.c (ipa_init): Move static bool init_p from here
5568 (ipa_init_p): New file-scope variable, so that it can be reset
5569 when repeatedly invoking the compiler within one process by...
5570 (ipa_reference_c_finalize): New function.
5571 * ipa-reference.h (ipa_reference_c_finalize): New.
5572 * main.c (main): Replace invocation of toplev_main with
5573 construction of a toplev instance, and call its "main" method.
5574 * params.c (global_init_params): Add an assert that
5575 params_finished is false.
5576 (params_c_finalize): New.
5577 * params.h (params_c_finalize): New.
5578 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
5579 invoking generate_summary, for the benefit of pass_ipa_pure_const.
5580 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
5581 before calling write_summary hook.
5582 (ipa_write_optimization_summaries_1): Likewise when calling
5583 write_optimization_summary hook.
5584 (ipa_read_summaries_1): Likewise for read_summary hook.
5585 (ipa_read_optimization_summaries_1): Likewise for
5586 read_optimization_summary hook.
5587 (execute_ipa_stmt_fixups): Likewise.
5588 * stringpool.c (init_stringpool): Clean up if we're called more
5590 * timevar.c (timevar_init): Ignore repeated calls.
5591 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
5593 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
5594 (initialize_rtl): Move static local "initialized_once"
5595 into file scope, and rename to...
5596 (rtl_initialized): New variable.
5597 (do_compile): Move timevar initialization from here to
5598 toplev::start_timevars.
5599 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
5600 toplev::finalize): New functions.
5601 (toplev_main): Rename to...
5602 (toplev::main): ...this.
5603 * toplev.h (class toplev): New class.
5605 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
5607 * loop-doloop.c: Include loop-unroll.h.
5609 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
5611 * cfg.h: New. Header file for cfg.c.
5612 * cfganal.h: New. Header file for cfganal.c.
5613 * lcm.h: New. Header file for lcm.c.
5614 * loop-unroll.h: New. Header file for loop-unroll.h.
5615 * cfgloop.h: (unroll_loops): Remove prototype.
5616 * basic-block.h: Move prototypes and structs to new header files.
5617 Include cfg.h, cfganal.h, and lcm.h.
5618 * loop-init.c: Include loop-unroll.h.
5619 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
5620 * modulo-sched.c: Include loop-unroll.h.
5622 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
5624 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
5625 MARKER_BYTE_UNKNOWN markers when handling casts.
5627 2014-10-21 Richard Biener <rguenther@suse.de>
5629 * tree-ssa-phiopt.c (value_replacement): Properly verify we
5630 are the non-singleton PHI.
5632 2014-10-21 Jakub Jelinek <jakub@redhat.com>
5634 PR tree-optimization/63563
5635 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
5636 if either dra or drb stmts are not normal loads/stores.
5638 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
5640 * config/i386/i386.c (expand_vec_perm_1): Fix
5641 expand_vec_perm_palignr case.
5642 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
5645 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
5647 * cfgloopanal.c (seq_cost): Delete.
5648 * rtl.h (seq_cost): New prototype.
5649 * rtlanal.c (seq_cost): New function.
5650 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
5652 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
5654 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
5655 * basic-block.h: Remove prototypes for cfgrtl.c.
5656 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
5657 prototypes to cfgrtl.h.
5658 * profile.h (profile_info): Add extern export declaration.
5659 * rtl.h: Remove prototypes for cfgrtl.h.
5660 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
5661 * ipa-inline.c: Include profile.h.
5662 * loop-unroll.c: Ditto.
5663 * modulo-sched.c: Ditto.
5664 * postreload-gcse.c: Ditto.
5666 * sched-ebb.c: Ditto.
5667 * sched-rgn.c: Ditto.
5669 * tree-ssa-loop-ivcanon.c: Ditto.
5671 2014-10-20 Richard Biener <rguenther@suse.de>
5673 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
5674 operands to get a def operand kind match. Signal mismatches
5675 to the parent so we can try swapping its operands.
5676 (vect_build_slp_tree): Try swapping operands if they have
5677 a mismatched operand kind.
5679 2014-10-20 Alan Modra <amodra@gmail.com>
5682 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
5683 Increase "ops" array size. Correct array size tests. Init
5684 n_constants in loop. Break out of innermost loop when finding
5685 a trivial CONST expression.
5687 2014-10-20 Martin Liska <mliska@suse.cz>
5690 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
5691 Gimple tempate string is compared.
5693 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
5695 * varasm.c (const_alias_set): Remove.
5696 (init_varasm_once): Remove initialization of const_alias_set.
5697 (build_constant_desc): Do not set alias set to const_alias_set.
5699 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
5701 * configure: Regenerate.
5702 * configure.ac: Move the test for section attribute specifier "e" in GAS
5703 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
5704 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
5705 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
5706 ifdef HAVE_GAS_SECTION_EXCLUDE.
5708 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
5710 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
5711 match_operand expression.
5713 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
5714 David Edelsohn <dje.gcc@gmail.com>
5716 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
5718 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
5720 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
5722 * doc/invoke.texi (Options to Request or Suppress Warnings):
5723 Explain options precedence.
5724 (Wtrampolines): Do not indent paragraph.
5726 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
5728 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
5729 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
5730 (pa_jump_in_call_delay): Likewise.
5731 * config/pa/pa.c (pa_option_override): Remove jump in call delay
5733 (pa_output_millicode_call): Remove support for jump in call delay.
5734 (pa_output_call): Likewise.
5735 (pa_jump_in_call_delay): Delete.
5736 (pa_following_call): Likewise.
5737 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
5738 (uncond_branch): Remove following call check from attribute length.
5740 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
5743 * config/sh/sh-modes.def (PSI): Remove.
5744 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
5745 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
5746 (sh_reorg): Remove commented out FPSCR code.
5747 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
5748 insn instead of move insn.
5749 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
5750 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
5752 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
5753 (sh1_builtin_p): Uncomment.
5754 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
5755 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
5756 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
5757 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
5758 (general_movsrc_operand, general_movdst_operand): Disallow
5760 * config/sh/sh.md (FPSCR_FR): New constant.
5761 (push_fpscr): Emit sts_fpscr insn.
5762 (pop_fpscr): Emit lds_fpscr_insn.
5763 (movsi_ie): Disallow FPSCR operands.
5764 (fpu_switch, unnamed related split, extend_psi_si,
5765 truncate_si_psi): Remove insns.
5766 (lds_fpscr, sts_fpscr): New insns.
5767 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
5769 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
5771 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
5772 (clone_inlined_nodes): Do not overwrite the clone if above predicate
5775 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
5777 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
5778 (expand_vec_perm_d): Ditto.
5779 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
5780 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
5782 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
5783 (ix86_expand_sse_unpack): Handle V64QImode.
5784 (expand_vec_perm_blend): Update conditions for TARGET, handle
5785 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
5786 (expand_vec_perm_pshufb): Handle V64QImode.
5787 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
5788 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
5789 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
5790 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
5791 (ix86_expand_vecop_qihi): Handle V64QImode.
5792 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
5793 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
5794 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
5795 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
5796 (mul<mode>3): Use VI1_AVX512.
5797 (<sse2_avx2>_packsswb): Ditto.
5798 (<sse2_avx2>_packuswb): Ditto.
5799 (<ssse3_avx2>_pshufb<mode>3): Ditto.
5800 (<shift_insn><mode>3): Ditto.
5802 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
5804 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
5805 conditions to fix bootstrap.
5807 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
5809 gcc-plugin.h: Add tm.h and flattened includes from function.h.
5811 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
5812 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5813 Anna Tikhonova <anna.tikhonova@intel.com>
5814 Ilya Tocar <ilya.tocar@intel.com>
5815 Andrey Turetskiy <andrey.turetskiy@intel.com>
5816 Ilya Verbin <ilya.verbin@intel.com>
5817 Kirill Yukhin <kirill.yukhin@intel.com>
5818 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5820 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
5821 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
5822 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
5823 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
5824 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
5825 (define_expand "vec_init<mode>"): Use VF48_I1248.
5827 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
5828 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5829 Anna Tikhonova <anna.tikhonova@intel.com>
5830 Ilya Tocar <ilya.tocar@intel.com>
5831 Andrey Turetskiy <andrey.turetskiy@intel.com>
5832 Ilya Verbin <ilya.verbin@intel.com>
5833 Kirill Yukhin <kirill.yukhin@intel.com>
5834 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5836 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
5837 expand_sse2_mulvxdi3.
5839 2014-10-17 Richard Biener <rguenther@suse.de>
5841 * fold-const.c (fold_comparison): Remove redundant constant
5842 folding and operand swapping.
5843 (fold_binary_loc): Do comparison operand swapping here.
5844 (fold_ternary_loc): Canonicalize operand order for
5845 commutative ternary operations.
5846 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
5849 2014-10-17 Jakub Jelinek <jakub@redhat.com>
5851 PR tree-optimization/63464
5852 * gimple.h (gimple_seq_discard): New prototype.
5853 * gimple.c: Include stringpool.h and tree-ssanames.h.
5854 (gimple_seq_discard): New function.
5855 * optabs.h (lshift_cheap_p): New prototype.
5856 * optabs.c (lshift_cheap_p): New function, moved from...
5857 * tree-switch-conversion.c (lshift_cheap_p): ... here.
5858 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
5859 (reassoc_branch_fixups): New variable.
5860 (update_range_test): Add otherrangep and seq arguments.
5861 Unshare exp. If otherrange is NULL, use for other ranges
5862 array of pointers pointed by otherrangep instead.
5863 Emit seq before gimplified statements for tem.
5864 (optimize_range_tests_diff): Adjust update_range_test
5866 (optimize_range_tests_xor): Likewise. Fix up comment.
5867 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
5869 (optimize_range_tests): Adjust update_range_test caller.
5870 Call optimize_range_tests_to_bit_test.
5871 (branch_fixup): New function.
5872 (execute_reassoc): Call branch_fixup.
5874 PR tree-optimization/63302
5875 * tree-ssa-reassoc.c (optimize_range_tests_xor,
5876 optimize_range_tests_diff): Use !integer_pow2p () instead of
5879 2014-10-17 Martin Liska <mliska@suse.cz>
5881 * ipa-icf.c (sem_function::merge): Local flags are set to false
5882 to enforce equal calling convention to be used.
5883 * opts.c (common_handle_option): Indentation fix.
5885 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
5887 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
5889 2014-10-17 Tom de Vries <tom@codesourcery.com>
5891 PR rtl-optimization/61605
5892 * regcprop.c (copyprop_hardreg_forward_1): Use
5893 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
5895 2014-10-17 Tom de Vries <tom@codesourcery.com>
5897 PR rtl-optimization/61605
5898 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
5899 notice stores for noops. Don't regard noops as copies.
5901 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
5903 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
5904 register in a special way.
5905 (__cpuid_count): Ditto.
5906 * config/i386/driver-i386.h: Protect with
5907 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
5908 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
5909 is required to compile the function.
5911 2014-10-16 DJ Delorie <dj@redhat.com>
5913 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
5916 * config/rs6000/rs6000-c.c (rid_int128): New.
5917 (rs6000_macro_to_expand): Use instead of RID_INT128.
5919 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
5921 * function.h: Flatten file. Remove includes, adjust prototypes to
5922 reflect only what is in function.h.
5923 (enum direction, struct args_size, struct locate_and_pad_arg_data,
5924 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
5926 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
5927 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
5928 prototypes to predict.h.
5929 (init_varasm_status): Move prototype to varasm.h.
5930 * expr.h: Adjust include files.
5931 (enum direction, struct args_size, struct locate_and_pad_arg_data,
5932 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
5934 (locate_and_pad_parm): Move prototype to function.h.
5935 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
5936 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
5937 assign_temp, reposition_prologue_and_epilogue_notes,
5938 prologue_epilogue_contains, sibcall_epilogue_contains,
5939 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
5940 set_return_jump_label): Move prototypes to function.h.
5941 * predict.h (optimize_function_for_size_p,
5942 optimize_function_for_speed_p): Relocate prototypes from function.h.
5943 * shrink-wrap.h (emit_return_into_block, active_insn_between,
5944 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
5946 * varasm.h (init_varasm_status): Relocate prototype from function.h.
5947 * genattrtab.c (write_header): Add predict.h to include list.
5948 * genconditions.c (write_header): Add predict.h to include list.
5949 * genemit.c (main): Adjust header file includes.
5950 * gengtype.c (ifiles): Add flattened function.h header files.
5951 * genoutput.c (output_prologue): Add predict.h to include list.
5952 * genpreds.c (write_insn_preds_c): Adjust header file includes.
5953 * genrecog.c (write_header): Add flattened function.h header files.
5954 * alias.c: Adjust include files.
5955 * auto-inc-dec.c: Likewise.
5956 * basic-block.h: Likewise.
5957 * bb-reorder.c: Likewise.
5958 * bt-load.c: Likewise.
5959 * builtins.c: Likewise.
5960 * caller-save.c: Likewise.
5961 * calls.c: Likewise.
5962 * cfgbuild.c: Likewise.
5963 * cfgcleanup.c: Likewise.
5964 * cfgexpand.c: Likewise.
5965 * cfgloop.c: Likewise.
5966 * cfgloop.h: Likewise.
5967 * cfgrtl.c: Likewise.
5968 * cgraph.h: Likewise.
5969 * cgraphclones.c: Likewise.
5970 * cgraphunit.c: Likewise.
5971 * combine-stack-adj.c: Likewise.
5972 * combine.c: Likewise.
5973 * coverage.c: Likewise.
5974 * cprop.c: Likewise.
5976 * cselib.c: Likewise.
5977 * dbxout.c: Likewise.
5979 * df-core.c: Likewise.
5980 * df-problems.c: Likewise.
5981 * df-scan.c: Likewise.
5982 * dojump.c: Likewise.
5983 * dwarf2cfi.c: Likewise.
5984 * dwarf2out.c: Likewise.
5985 * emit-rtl.c: Likewise.
5986 * except.c: Likewise.
5987 * explow.c: Likewise.
5989 * final.c: Likewise.
5990 * function.c: Likewise.
5992 * gimple-fold.c: Likewise.
5993 * gimple-low.c: Likewise.
5994 * gimple-streamer.h: Likewise.
5995 * haifa-sched.c: Likewise.
5996 * ifcvt.c: Likewise.
6000 * loop-invariant.c: Likewise.
6001 * lra-assigns.c: Likewise.
6002 * lra-coalesce.c: Likewise.
6003 * lra-constraints.c: Likewise.
6004 * lra-eliminations.c: Likewise.
6005 * lra-lives.c: Likewise.
6006 * lra-spills.c: Likewise.
6008 * lto-cgraph.c: Likewise.
6009 * lto-section-in.c: Likewise.
6010 * lto-section-out.c: Likewise.
6011 * lto-streamer-in.c: Likewise.
6012 * lto-streamer-out.c: Likewise.
6013 * mode-switching.c: Likewise.
6014 * modulo-sched.c: Likewise.
6015 * omp-low.c: Likewise.
6016 * optabs.c: Likewise.
6017 * passes.c: Likewise.
6018 * postreload-gcse.c: Likewise.
6019 * postreload.c: Likewise.
6020 * predict.c: Likewise.
6021 * profile.c: Likewise.
6022 * recog.c: Likewise.
6024 * reg-stack.c: Likewise.
6025 * regcprop.c: Likewise.
6026 * reginfo.c: Likewise.
6027 * regrename.c: Likewise.
6028 * reload.c: Likewise.
6029 * reload1.c: Likewise.
6030 * reorg.c: Likewise.
6031 * resource.c: Likewise.
6032 * rtlanal.c: Likewise.
6033 * sched-deps.c: Likewise.
6034 * sched-ebb.c: Likewise.
6035 * sched-rgn.c: Likewise.
6036 * sel-sched-dump.c: Likewise.
6037 * sel-sched-ir.c: Likewise.
6038 * sel-sched.c: Likewise.
6039 * shrink-wrap.c: Likewise.
6040 * simplify-rtx.c: Likewise.
6041 * statistics.c: Likewise.
6043 * stor-layout.c: Likewise.
6044 * store-motion.c: Likewise.
6045 * symtab.c: Likewise.
6046 * targhooks.c: Likewise.
6047 * toplev.c: Likewise.
6048 * trans-mem.c: Likewise.
6049 * tree-cfg.c: Likewise.
6050 * tree-cfgcleanup.c: Likewise.
6051 * tree-dfa.c: Likewise.
6052 * tree-eh.c: Likewise.
6053 * tree-inline.c: Likewise.
6054 * tree-into-ssa.c: Likewise.
6055 * tree-nested.c: Likewise.
6056 * tree-nrv.c: Likewise.
6057 * tree-profile.c: Likewise.
6058 * tree-ssa-alias.c: Likewise.
6059 * tree-ssa-ccp.c: Likewise.
6060 * tree-ssa-copy.c: Likewise.
6061 * tree-ssa-copyrename.c: Likewise.
6062 * tree-ssa-dom.c: Likewise.
6063 * tree-ssa-operands.c: Likewise.
6064 * tree-ssa-propagate.c: Likewise.
6065 * tree-ssa-structalias.c: Likewise.
6066 * tree-ssa-tail-merge.c: Likewise.
6067 * tree-ssa-threadedge.c: Likewise.
6068 * tree-ssa-threadupdate.c: Likewise.
6069 * tree-ssa-uncprop.c: Likewise.
6070 * tree-ssa-uninit.c: Likewise.
6071 * tree-ssa.c: Likewise.
6072 * tree-stdarg.c: Likewise.
6073 * tree-tailcall.c: Likewise.
6076 * valtrack.c: Likewise.
6077 * varasm.c: Likewise.
6078 * vmsdbgout.c: Likewise.
6080 * config/aarch64/aarch64.c: Add flattened includes from function.h.
6081 * config/alpha/alpha.c: Likewise.
6082 * config/arc/arc.c: Likewise.
6083 * config/arm/arm.c: Likewise.
6084 * config/avr/avr-log.c: Likewise.
6085 * config/avr/avr.c: Likewise.
6086 * config/bfin/bfin.c: Likewise.
6087 * config/c6x/c6x.c: Likewise.
6088 * config/cr16/cr16.c: Likewise.
6089 * config/cris/cris.c: Likewise.
6090 * config/darwin.c: Likewise.
6091 * config/epiphany/epiphany.c: Likewise.
6092 * config/epiphany/mode-switch-use.c: Likewise.
6093 * config/epiphany/resolve-sw-modes.c: Likewise.
6094 * config/fr30/fr30.c: Likewise.
6095 * config/frv/frv.c: Likewise.
6096 * config/h8300/h8300.c: Likewise.
6097 * config/i386/i386.c: Likewise.
6098 * config/ia64/ia64.c: Likewise.
6099 * config/iq2000/iq2000.c: Likewise.
6100 * config/lm32/lm32.c: Likewise.
6101 * config/m32c/m32c.c: Likewise.
6102 * config/m32r/m32r.c: Likewise.
6103 * config/m68k/m68k.c: Likewise.
6104 * config/mcore/mcore.c: Likewise.
6105 * config/mep/mep-pragma.c: Likewise.
6106 * config/mep/mep.c: Likewise.
6107 * config/microblaze/microblaze.c: Likewise.
6108 * config/mips/mips.c: Likewise.
6109 * config/mmix/mmix.c: Likewise.
6110 * config/mn10300/mn10300.c: Likewise.
6111 * config/moxie/moxie.c: Likewise.
6112 * config/msp430/msp430.c: Likewise.
6113 * config/nds32/nds32-cost.c: Likewise.
6114 * config/nds32/nds32-fp-as-gp.c: Likewise.
6115 * config/nds32/nds32-intrinsic.c: Likewise.
6116 * config/nds32/nds32-isr.c: Likewise.
6117 * config/nds32/nds32-md-auxiliary.c: Likewise.
6118 * config/nds32/nds32-memory-manipulation.c: Likewise.
6119 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6120 * config/nds32/nds32-predicates.c: Likewise.
6121 * config/nds32/nds32.c: Likewise.
6122 * config/nios2/nios2.c: Likewise.
6123 * config/pa/pa.c: Likewise.
6124 * config/pdp11/pdp11.c: Likewise.
6125 * config/rl78/rl78.c: Likewise.
6126 * config/rs6000/rs6000.c: Likewise.
6127 * config/rx/rx.c: Likewise.
6128 * config/s390/s390.c: Likewise.
6129 * config/score/score.c: Likewise.
6130 * config/sh/sh.c: Likewise.
6131 * config/sparc/sparc.c: Likewise.
6132 * config/spu/spu.c: Likewise.
6133 * config/stormy16/stormy16.c: Likewise.
6134 * config/tilegx/tilegx.c: Likewise.
6135 * config/tilepro/tilepro.c: Likewise.
6136 * config/v850/v850.c: Likewise.
6137 * config/vax/vax.c: Likewise.
6138 * config/xtensa/xtensa.c: Likewise.
6140 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
6142 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
6143 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
6145 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
6147 * config/sh/sh-protos.h (fldi_ok): Remove.
6148 * config/sh/sh.c (fldi_ok): Likewise.
6149 (sh_secondary_reload): Don't use fldi_ok.
6150 * config/sh/constraints.md (G constraint, H constraint): Don't use
6153 2014-10-16 Martin Liska <mliska@suse.cz>
6155 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
6156 Cast to unsigned long.
6157 (sem_item_optimizer::dump_cong_classes): Likewise.
6159 2014-10-16 Tom de Vries <tom@codesourcery.com>
6161 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
6162 with SSA_NAME_IN_FREELIST.
6164 2014-10-16 Richard Biener <rguenther@suse.de>
6167 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
6168 (fold_builtin_strncat_chk): Move ...
6169 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
6170 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
6172 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
6175 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
6178 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
6179 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6180 Anna Tikhonova <anna.tikhonova@intel.com>
6181 Ilya Tocar <ilya.tocar@intel.com>
6182 Andrey Turetskiy <andrey.turetskiy@intel.com>
6183 Ilya Verbin <ilya.verbin@intel.com>
6184 Kirill Yukhin <kirill.yukhin@intel.com>
6185 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6187 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
6190 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
6191 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6192 Anna Tikhonova <anna.tikhonova@intel.com>
6193 Ilya Tocar <ilya.tocar@intel.com>
6194 Andrey Turetskiy <andrey.turetskiy@intel.com>
6195 Ilya Verbin <ilya.verbin@intel.com>
6196 Kirill Yukhin <kirill.yukhin@intel.com>
6197 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6199 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
6200 V16SI, V32HI, V64QI modes.
6202 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
6205 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
6206 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
6208 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
6209 to match fp insn patterns.
6210 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
6212 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
6213 expand_df_unop, expand_df_binop): Remove.
6214 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
6215 FPSCR_STAT_REG as not call clobbered.
6216 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
6217 invoking fpscr_set_from_mem.
6219 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
6220 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
6222 (REGISTER_NAMES): Adjust.
6223 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
6224 (FIRST_PSEUDO_REGISTER): Increase to 156.
6225 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
6226 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
6228 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
6229 FPSCR_MODES_REG and FPSCR_STAT_REG.
6230 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
6232 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
6233 FPSCR_SZ): Add new constants.
6234 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
6236 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
6237 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
6238 Use TARGET_FPU_ANY condition.
6239 (fpu_switch peephole2): Remove.
6240 (fpu_switch split): Use simple_mem_operand to capture the mem and
6241 adjust split implementation.
6242 (extend_psi_si, truncate_si_psi): New insns.
6243 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
6244 set of FPSCR_MODES_REG.
6246 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
6247 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
6248 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
6249 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
6250 call_value_compact, call_value_compact_rettramp, call,
6251 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
6252 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
6253 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
6254 sibcall_value_compact, sibcall_value, call_value_pop_compact,
6255 call_value_pop_compact_rettramp, various unnamed splits):
6256 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
6259 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
6260 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
6261 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
6262 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
6263 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
6265 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
6266 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
6267 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
6268 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
6269 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
6270 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
6271 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
6273 2014-10-16 Martin Liska <mliska@suse.cz>
6274 Jan Hubicka <hubicka@ucw.cz>
6276 * Makefile.in: New object files included.
6277 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
6279 (verify_edge_corresponds_to_fndecl): More sensitive verification
6280 of nodes that are merged by IPA ICF.
6281 * cgraph.h (cgraph_node::num_references): New function.
6282 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
6283 * common.opt: New options ipa-icf, ipa-icf-functions and
6284 ipa-icf-variables introduced.
6285 * doc/invoke.texi: Documentation of new options introduced.
6286 * ipa-icf-gimple.c: New file.
6287 * ipa-icf-gimple.h: New file.
6288 * ipa-icf.c: New file.
6289 * ipa-icf.h: New file.
6290 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
6291 (input_overwrite_node): Likewise.
6292 * lto-section-in.c: New icf section added.
6293 * lto-streamer.h (enum lto_section_type): Likewise.
6294 * opts.c (common_handle_option): New option added.
6295 * passes.def: New pass included.
6296 * timevar.def: Time variable for IPA ICF added.
6297 * tree-pass.h: New IPA ICF pass entry point added.
6299 2014-10-16 Richard Biener <rguenther@suse.de>
6301 PR tree-optimization/63168
6302 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
6303 latches if after merging they are no longer simple.
6304 * cfghooks.c (merge_blocks): Handle merging a latch block
6307 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
6308 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6309 Anna Tikhonova <anna.tikhonova@intel.com>
6310 Ilya Tocar <ilya.tocar@intel.com>
6311 Andrey Turetskiy <andrey.turetskiy@intel.com>
6312 Ilya Verbin <ilya.verbin@intel.com>
6313 Kirill Yukhin <kirill.yukhin@intel.com>
6314 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6316 * config/i386/sse.md
6317 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
6318 support AVX-512VL instructions.
6320 2014-10-16 DJ Delorie <dj@redhat.com>
6322 * tree-core.h: Fix comment to not assume pointers are multiples of
6325 2014-10-15 Tom Tromey <tromey@redhat.com>
6327 * timevar.h (class auto_timevar): New class.
6329 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
6332 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
6333 Remove the second alternative.
6334 (regprefix): Remove mode attribute.
6335 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
6336 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
6339 2013-11-05 Ian Lance Taylor <iant@google.com>
6341 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
6342 If possible, add .cfi directives to record change to bx.
6343 * config/i386/i386.c (ix86_emit_cfi): New function.
6344 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
6346 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
6349 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
6351 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
6354 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
6356 PR rtl-optimization/63448
6357 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
6358 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
6359 (LRA_MAX_INHERITANCE_PASSES): Use it.
6360 (lra_constraint_iter_after_spill): Remove.
6361 (lra_assignment_iter): New.
6362 (lra_assignment_iter_after_spill): New.
6363 * lra-assigns.c (lra_assignment_iter): New.
6364 (lra_assignment_iter_after_spill): New.
6365 (former_reload_pseudo_spill_p): New.
6366 (spill_for): Set up former_reload_pseudo_spill_p.
6367 (setup_live_pseudos_and_spill_after_risky): Ditto.
6368 (assign_by_spills): Ditto.
6369 (lra_assign): Increment lra_assignment_iter. Print the iteration
6370 number. Reset former_reload_pseudo_spill_p. Check
6371 lra_assignment_iter_after_spill.
6372 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
6373 lra_assignment_iter and lra_assignment_iter_after_spill.
6374 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
6375 (lra_constraints): Remove code with
6376 lra_assignment_iter_after_spill.
6378 2014-10-15 Teresa Johnson <tejohnson@google.com>
6381 * tree-ssa-threadupdate.c (recompute_probabilities): Better
6384 2014-10-15 Renlin Li <renlin.li@arm.com>
6386 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
6387 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
6388 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
6389 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
6391 2014-10-15 Richard Biener <rguenther@suse.de>
6393 * gimple-fold.c (gimple_fold_call): Properly keep virtual
6394 SSA form up-to-date when devirtualizing a call to
6395 __builtin_unreachable and avoid fixing up EH info here.
6397 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
6398 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6399 Anna Tikhonova <anna.tikhonova@intel.com>
6400 Ilya Tocar <ilya.tocar@intel.com>
6401 Andrey Turetskiy <andrey.turetskiy@intel.com>
6402 Ilya Verbin <ilya.verbin@intel.com>
6403 Kirill Yukhin <kirill.yukhin@intel.com>
6404 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6406 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
6407 to support AVX-512BW.
6408 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
6409 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
6410 (define_insn "*<plusminus_insn><mode>3"): Ditto.
6411 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
6412 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
6413 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
6414 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
6415 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
6416 (define_insn "*andnot<mode>3"): Ditto.
6417 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
6418 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
6419 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
6420 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
6421 (define_insn "*abs<mode>2"): Remove masking support.
6422 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
6423 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
6424 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
6426 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
6427 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6428 Anna Tikhonova <anna.tikhonova@intel.com>
6429 Ilya Tocar <ilya.tocar@intel.com>
6430 Andrey Turetskiy <andrey.turetskiy@intel.com>
6431 Ilya Verbin <ilya.verbin@intel.com>
6432 Kirill Yukhin <kirill.yukhin@intel.com>
6433 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6435 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
6436 * config/i386/sse.md
6437 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
6438 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
6439 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
6440 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
6441 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
6442 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
6443 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
6445 2014-10-15 Renlin Li <renlin.li@arm.com>
6447 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
6449 2014-10-15 Jakub Jelinek <jakub@redhat.com>
6451 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
6452 MINUS_EXPR in unsigned type to avoid undefined behavior.
6454 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
6456 * stor-layout.c (self_referential_size): Do not promote arguments.
6458 2014-10-15 Marek Polacek <polacek@redhat.com>
6460 * doc/invoke.texi: Update to reflect that GNU11 is the default
6462 * c-common.h (c_language_kind): Update comment.
6464 2014-10-15 Richard Biener <rguenther@suse.de>
6466 * hash-table.c: Include bconfig.h if building for the host.
6467 * hash-table.h: Do not include ggc.h on the host but just declare
6468 a few ggc allocation templates.
6470 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
6471 Jeff Law <law@redhat.com>
6473 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
6474 multiple hard registers, use smaller mode derived from MODE.
6476 2014-10-15 Andreas Schwab <schwab@suse.de>
6478 * explow.c (convert_memory_address_addr_space_1): Mark in_const
6479 as ATTRIBUTE_UNUSED.
6481 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
6483 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
6484 (decide_unrolling): ... this one.
6485 (peel_loops_completely): Remove.
6486 (decide_peel_simple): Remove.
6487 (decide_peel_once_rolling): Remove.
6488 (decide_peel_completely): Remove.
6489 (peel_loop_simple): Remove.
6490 (peel_loop_completely): Remove.
6491 (unroll_and_peel_loops): Rename to ...
6492 (unroll_loops): ... this one; handle only unrolling.
6493 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
6496 (unroll_and_peel_loops): Remove.
6497 (unroll_loops): New.
6498 * passes.def: Replace
6499 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
6500 * loop-init.c (gate_rtl_unroll_and_peel_loops,
6501 rtl_unroll_and_peel_loops): Rename to ...
6502 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
6503 (pass_rtl_unroll_and_peel_loops): Rename to ...
6504 (pass_rtl_unroll_loops): ... this one.
6505 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
6506 (make_pass_rtl_unroll_loops): New.
6507 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
6508 (canonicalize_loop_induction_variables): Update.
6510 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
6512 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
6513 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
6514 !TARGET_HARD_FLOAT_POSTINC.
6515 (*lsip, *ssip): new instructions.
6517 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
6519 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
6522 2014-10-14 Andrew Pinski <apinski@cavium.com>
6524 * explow.c (convert_memory_address_addr_space): Rename to ...
6525 (convert_memory_address_addr_space_1): This. Add in_const argument.
6526 Inside a CONST RTL, permute the conversion and addition of constant
6527 for zero and sign extended pointers.
6528 (convert_memory_address_addr_space): New function.
6530 2014-10-14 Andrew Pinski <apinski@cavium.com>
6533 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
6536 * explow.c (convert_memory_address_addr_space): Also permute the
6537 conversion and addition of constant for zero-extend.
6539 2014-10-14 DJ Delorie <dj@redhat.com>
6541 * config/msp430/msp430-modes.def (PSI): Add.
6543 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
6544 (msp430_hard_regno_nregs_with_padding): New.
6545 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
6546 (msp430_hard_regno_nregs_has_padding): New.
6547 (msp430_hard_regno_nregs_with_padding): New.
6548 (msp430_unwind_word_mode): Use PSImode instead of SImode.
6549 (msp430_addr_space_legitimate_address_p): New.
6550 (msp430_asm_integer): New.
6551 (msp430_init_dwarf_reg_sizes_extra): New.
6552 (msp430_print_operand): Use X suffix for PSImode even in small model.
6553 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
6554 (PTR_SIZE): ...but 4 bytes for EH.
6555 (SIZE_TYPE): Use __int20.
6556 (PTRDIFF_TYPE): Likewise.
6557 (INCOMING_FRAME_SP_OFFSET): Adjust.
6558 * config/msp430/msp430.md (movqi_topbyte): New.
6559 (movpsi): Use fixed suffixes.
6560 (movsipsi2): Enable for 430X, not large model.
6561 (extendhipsi2): Likewise.
6562 (zero_extendhisi2): Likewise.
6563 (zero_extendhisipsi2): Likewise.
6564 (extend_and_shift1_hipsi2): Likewise.
6565 (extendpsisi2): Likewise.
6566 (*bitbranch<mode>4_z): Fix suffix logic.
6568 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
6571 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
6572 do not choke on null node.
6573 <VAR_DECL>: Likewise.
6575 2014-10-14 DJ Delorie <dj@redhat.com>
6577 * machmode.h (int_n_data_t): New.
6578 (int_n_enabled_p): New.
6580 * tree.c (int_n_enabled_p): New.
6582 (make_or_reuse_type): Check for all __intN types, not just
6584 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
6586 * tree.h (int128_integer_type_node): Remove.
6587 (int128_unsigned_type_node): Remove.
6588 (int_n_trees_t): New.
6589 (int_n_enabled_p): New.
6591 * toplev.c (standard_type_bitsize): New.
6592 (do_compile): Check which __intN types are enabled for the current
6594 * builtin-types.def (BT_INT128): Remove.
6595 (BT_UINT128): Remove.
6596 * machmode.def: Add macro to create __int128 for all targets.
6597 * stor-layout.c (mode_for_size): Support __intN types.
6598 (smallest_mode_for_size): Likewise.
6599 (initialize_sizetypes): Support __intN types.
6600 * genmodes.c (struct mode_data): Add int_n field.
6601 (blank_mode): Likewise.
6604 (emit_insn_modes_h): Count __intN entries and define
6606 (emit_mode_int_n): New.
6607 (emit_insn_modes_c): Call it.
6608 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
6609 types, not just __int128.
6610 * tree-core.h (integer_type_kind): Remove __int128-specific
6611 entries, reserve spots for __intN entries.
6613 * config/msp430/msp430-modes.def (PSI): Add.
6615 2014-10-14 Kito Cheng <kito@0xlab.org>
6617 * ira.c: Fix typo in comment.
6619 * ira-build.c: Ditto.
6620 * ira-color.c: Ditto.
6621 * ira-emit.c: Ditto.
6623 * ira-lives.c: Ditto.
6625 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
6627 PR rtl-optimization/63475
6628 * alias.c (true_dependence_1): Always use get_addr to extract
6629 true address operands from x_addr and mem_addr. Use extracted
6630 address operands to check for references with alignment ANDs.
6631 Use extracted address operands with find_base_term and
6632 base_alias_check. For noncanonicalized operands call canon_rtx with
6633 extracted address operand.
6634 (write_dependence_1): Ditto.
6635 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
6637 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
6640 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
6643 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6644 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6645 Anna Tikhonova <anna.tikhonova@intel.com>
6646 Ilya Tocar <ilya.tocar@intel.com>
6647 Andrey Turetskiy <andrey.turetskiy@intel.com>
6648 Ilya Verbin <ilya.verbin@intel.com>
6649 Kirill Yukhin <kirill.yukhin@intel.com>
6650 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6652 * config/i386/i386.c
6653 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
6654 (ix86_expand_int_vcond): Ditto.
6656 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6657 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6658 Anna Tikhonova <anna.tikhonova@intel.com>
6659 Ilya Tocar <ilya.tocar@intel.com>
6660 Andrey Turetskiy <andrey.turetskiy@intel.com>
6661 Ilya Verbin <ilya.verbin@intel.com>
6662 Kirill Yukhin <kirill.yukhin@intel.com>
6663 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6665 * config/i386/i386.c
6666 (emit_reduc_half): Handle V64QI and V32HI mode.
6667 * config/i386/sse.md
6668 (define_mode_iterator VI_AVX512BW): New.
6669 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
6671 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6672 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6673 Anna Tikhonova <anna.tikhonova@intel.com>
6674 Ilya Tocar <ilya.tocar@intel.com>
6675 Andrey Turetskiy <andrey.turetskiy@intel.com>
6676 Ilya Verbin <ilya.verbin@intel.com>
6677 Kirill Yukhin <kirill.yukhin@intel.com>
6678 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6680 * config/i386/sse.md
6681 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
6683 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6684 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6685 Anna Tikhonova <anna.tikhonova@intel.com>
6686 Ilya Tocar <ilya.tocar@intel.com>
6687 Andrey Turetskiy <andrey.turetskiy@intel.com>
6688 Ilya Verbin <ilya.verbin@intel.com>
6689 Kirill Yukhin <kirill.yukhin@intel.com>
6690 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6692 * config/i386/i386.c
6693 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
6694 * config/i386/sse.md
6695 (define_mode_iterator VI): Add V64QI and V32HI modes.
6697 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6698 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6699 Anna Tikhonova <anna.tikhonova@intel.com>
6700 Ilya Tocar <ilya.tocar@intel.com>
6701 Andrey Turetskiy <andrey.turetskiy@intel.com>
6702 Ilya Verbin <ilya.verbin@intel.com>
6703 Kirill Yukhin <kirill.yukhin@intel.com>
6704 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6706 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
6708 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6709 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6710 Anna Tikhonova <anna.tikhonova@intel.com>
6711 Ilya Tocar <ilya.tocar@intel.com>
6712 Andrey Turetskiy <andrey.turetskiy@intel.com>
6713 Ilya Verbin <ilya.verbin@intel.com>
6714 Kirill Yukhin <kirill.yukhin@intel.com>
6715 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6717 * config/i386/sse.md
6718 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
6719 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
6721 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6722 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6723 Anna Tikhonova <anna.tikhonova@intel.com>
6724 Ilya Tocar <ilya.tocar@intel.com>
6725 Andrey Turetskiy <andrey.turetskiy@intel.com>
6726 Ilya Verbin <ilya.verbin@intel.com>
6727 Kirill Yukhin <kirill.yukhin@intel.com>
6728 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6730 * config/i386/sse.md
6731 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
6732 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
6734 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6735 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6736 Anna Tikhonova <anna.tikhonova@intel.com>
6737 Ilya Tocar <ilya.tocar@intel.com>
6738 Andrey Turetskiy <andrey.turetskiy@intel.com>
6739 Ilya Verbin <ilya.verbin@intel.com>
6740 Kirill Yukhin <kirill.yukhin@intel.com>
6741 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6743 * config/i386/sse.md
6744 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
6745 (define_mode_iterator VI2_AVX2): Add V32HI mode.
6746 (define_expand "mul<mode>3<mask_name>"): Add masking.
6747 (define_insn "*mul<mode>3<mask_name>"): Ditto.
6748 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
6749 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
6750 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
6751 (define_mode_attr SDOT_PMADD_SUF): Ditto.
6752 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
6753 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
6754 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
6755 (define_insn "avx2_packusdw"): Delete.
6756 (define_insn "sse4_1_packusdw"): Ditto.
6757 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
6759 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6760 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6761 Anna Tikhonova <anna.tikhonova@intel.com>
6762 Ilya Tocar <ilya.tocar@intel.com>
6763 Andrey Turetskiy <andrey.turetskiy@intel.com>
6764 Ilya Verbin <ilya.verbin@intel.com>
6765 Kirill Yukhin <kirill.yukhin@intel.com>
6766 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6768 * config/i386/sse.md
6769 (define_insn "vec_dup<mode>"): Update constraints.
6771 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6772 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6773 Anna Tikhonova <anna.tikhonova@intel.com>
6774 Ilya Tocar <ilya.tocar@intel.com>
6775 Andrey Turetskiy <andrey.turetskiy@intel.com>
6776 Ilya Verbin <ilya.verbin@intel.com>
6777 Kirill Yukhin <kirill.yukhin@intel.com>
6778 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6780 * config/i386/sse.md
6781 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
6782 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
6783 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
6785 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6786 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6787 Anna Tikhonova <anna.tikhonova@intel.com>
6788 Ilya Tocar <ilya.tocar@intel.com>
6789 Andrey Turetskiy <andrey.turetskiy@intel.com>
6790 Ilya Verbin <ilya.verbin@intel.com>
6791 Kirill Yukhin <kirill.yukhin@intel.com>
6792 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6794 * config/i386/sse.md
6795 (define_expand "mul<mode>3<mask_name>"): Add masking.
6797 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6798 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6799 Anna Tikhonova <anna.tikhonova@intel.com>
6800 Ilya Tocar <ilya.tocar@intel.com>
6801 Andrey Turetskiy <andrey.turetskiy@intel.com>
6802 Ilya Verbin <ilya.verbin@intel.com>
6803 Kirill Yukhin <kirill.yukhin@intel.com>
6804 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6806 * config/i386/sse.md
6807 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
6808 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
6810 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6811 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6812 Anna Tikhonova <anna.tikhonova@intel.com>
6813 Ilya Tocar <ilya.tocar@intel.com>
6814 Andrey Turetskiy <andrey.turetskiy@intel.com>
6815 Ilya Verbin <ilya.verbin@intel.com>
6816 Kirill Yukhin <kirill.yukhin@intel.com>
6817 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6819 * config/i386/sse.md
6820 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
6821 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
6822 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
6825 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6826 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6827 Anna Tikhonova <anna.tikhonova@intel.com>
6828 Ilya Tocar <ilya.tocar@intel.com>
6829 Andrey Turetskiy <andrey.turetskiy@intel.com>
6830 Ilya Verbin <ilya.verbin@intel.com>
6831 Kirill Yukhin <kirill.yukhin@intel.com>
6832 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6834 * config/i386/sse.md
6835 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
6836 use VF_128_256 mode iterator and update assembler emit code.
6837 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
6838 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
6839 Add masking, use VF_128_256 mode iterator.
6840 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
6841 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
6842 Add masking, use VF_128_256 mode iterator and update assembler emit
6844 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
6845 (define_mode_attr avx512flogicsuff): Delete.
6846 (define_insn "avx512f_<logic><mode>"): Ditto.
6847 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
6849 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
6851 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6852 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6853 Anna Tikhonova <anna.tikhonova@intel.com>
6854 Ilya Tocar <ilya.tocar@intel.com>
6855 Andrey Turetskiy <andrey.turetskiy@intel.com>
6856 Ilya Verbin <ilya.verbin@intel.com>
6857 Kirill Yukhin <kirill.yukhin@intel.com>
6858 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6860 * config/i386/sse.md
6861 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
6862 (define_expand "vashr<mode>3<mask_name>"): Add masking,
6863 use VI12_128 mode iterator.
6864 (define_expand "ashrv2di3<mask_name>"): New.
6866 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6867 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6868 Anna Tikhonova <anna.tikhonova@intel.com>
6869 Ilya Tocar <ilya.tocar@intel.com>
6870 Andrey Turetskiy <andrey.turetskiy@intel.com>
6871 Ilya Verbin <ilya.verbin@intel.com>
6872 Kirill Yukhin <kirill.yukhin@intel.com>
6873 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6875 * config/i386/i386.c
6876 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
6877 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
6878 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
6879 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
6880 CODE_FOR_avx512vl_ucmpv4si3_mask.
6881 * config/i386/sse.md
6882 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
6883 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
6885 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
6886 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
6887 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
6888 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
6889 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
6890 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
6892 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6893 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6894 Anna Tikhonova <anna.tikhonova@intel.com>
6895 Ilya Tocar <ilya.tocar@intel.com>
6896 Andrey Turetskiy <andrey.turetskiy@intel.com>
6897 Ilya Verbin <ilya.verbin@intel.com>
6898 Kirill Yukhin <kirill.yukhin@intel.com>
6899 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6901 * config/i386/sse.md
6902 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
6903 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
6904 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
6905 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
6906 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
6907 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
6908 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
6909 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
6910 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
6912 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
6913 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6914 Anna Tikhonova <anna.tikhonova@intel.com>
6915 Ilya Tocar <ilya.tocar@intel.com>
6916 Andrey Turetskiy <andrey.turetskiy@intel.com>
6917 Ilya Verbin <ilya.verbin@intel.com>
6918 Kirill Yukhin <kirill.yukhin@intel.com>
6919 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6921 * config/i386/sse.md
6922 (define_insn "avx512f_blendm<mode>"): Delete.
6923 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
6924 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
6925 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
6926 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
6928 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
6931 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
6934 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
6936 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
6937 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
6938 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
6939 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
6942 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
6945 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
6947 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
6950 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
6953 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
6956 2014-10-14 Richard Biener <rguenther@suse.de>
6958 PR tree-optimization/63512
6959 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
6962 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
6965 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
6966 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
6968 (negsf2_i): Rename to *negsf2_i.
6969 (abssf2_i): Rename to *abssf2_i.
6970 (negdf2_i): Rename to *negdf2_i.
6971 (absdf2_i): Rename to *absdf2_i.
6973 2014-10-14 Felix Yang <felix.yang@huawei.com>
6974 Jeff Law <law@redhat.com>
6976 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
6977 "replace" into boolean bitfields; turn member "loop_depth" into a short
6978 integer; add new member "no_equiv" and "reserved".
6979 (no_equiv): Set no_equiv of struct equivalence if register is marked
6980 as having no known equivalence.
6981 (update_equiv_regs): Check all definitions for a multiple-set
6982 register to make sure that the RHS have the same value.
6984 2014-10-13 Richard Henderson <rth@redhat.com>
6986 * combine-stack-adj.c (no_unhandled_cfa): New.
6987 (maybe_merge_cfa_adjust): New.
6988 (combine_stack_adjustments_for_block): Use them.
6990 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
6992 * Makefile.in (TAGS): Tag ../include files.
6994 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6996 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
6997 to rs6000_dbx_register_number.
6998 (DWARF_FRAME_REGNUM): Redefine as identity map.
6999 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
7000 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
7001 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
7002 argument to handle .debug_frame and .eh_frame directly. Always
7003 translate SPE high register numbers. Add special treatment for CR,
7004 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
7006 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
7007 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
7008 (RS6000_USE_DWARF_NUMBERING): Define.
7009 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
7010 (RS6000_USE_DWARF_NUMBERING): Define.
7011 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
7012 (RS6000_USE_DWARF_NUMBERING): Define.
7013 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
7014 (RS6000_USE_DWARF_NUMBERING): Define.
7015 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
7016 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
7018 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
7020 * config/i386/i386.c (ix86_address_cost): Lower cost for
7021 when address contains GOT register.
7023 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
7024 Vladimir Makarov <vmakarov@redhat.com>
7028 PR rtl-optimization/55458
7029 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
7030 (ix86_init_pic_reg): New.
7031 (ix86_select_alt_pic_regnum): Add check on pseudo register.
7032 (ix86_save_reg): Likewise.
7033 (ix86_expand_prologue): Remove PIC register initialization
7034 now performed in ix86_init_pic_reg.
7035 (ix86_output_function_epilogue): Add check on pseudo register.
7036 (set_pic_reg_ever_alive): New.
7037 (legitimize_pic_address): Replace df_set_regs_ever_live with new
7038 set_pic_reg_ever_alive.
7039 (legitimize_tls_address): Likewise.
7040 (ix86_pic_register_p): New check.
7041 (ix86_delegitimize_address): Add check on pseudo register.
7042 (ix86_expand_call): Insert move from pseudo PIC register to ABI
7043 defined REAL_PIC_OFFSET_TABLE_REGNUM.
7044 (TARGET_INIT_PIC_REG): New.
7045 (TARGET_USE_PSEUDO_PIC_REG): New.
7046 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
7047 if pic_offset_table_rtx exists.
7048 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
7050 * doc/tm.texi: Regenerate.
7051 * function.c (assign_parms): Generate pseudo register for PIC.
7052 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
7054 * ira-color.c (color_pass): Add check on pseudo register.
7055 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
7057 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
7059 (ira): Add target specific PIC register initialization.
7060 (do_reload): Keep PIC pseudo register.
7061 * lra-assigns.c (spill_for): Add checks on pseudo register.
7062 * lra-constraints.c (contains_symbol_ref_p): New.
7063 (lra_constraints): Enable lra risky transformations when PIC is pseudo
7065 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
7066 * target.def (use_pseudo_pic_reg): New.
7067 (init_pic_reg): New.
7069 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
7071 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
7072 Remove m_SILVERMONT and m_INTEL from the tune.
7074 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7077 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
7078 when _HPUX_SOURCE is defined.
7080 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
7082 PR tree-optimization/62127
7083 * tree.c (remap_type_1): When remapping array, remap
7086 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
7088 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
7089 longer impact parallelization.
7091 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
7094 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
7096 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
7098 * asan.c (instrument_derefs): BIT_FIELD_REF added.
7100 2014-10-13 Richard Biener <rguenther@suse.de>
7102 PR tree-optimization/63419
7103 * gimple-fold.h (gimple_convert): New function.
7104 * gimple-fold.c (gimple_convert): Likewise.
7105 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
7106 to split out required conversions early.
7108 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
7110 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
7111 Add the parts of an insn in reverse order, with the pattern at
7112 the top of the queue. Detect when we're iterating over a SEQUENCE
7113 pattern and in that case just consider patterns of subinstructions.
7115 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
7118 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
7120 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
7122 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
7123 address. Use def chains to handle GBR clobbering call insns.
7125 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
7127 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
7128 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
7129 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
7130 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
7131 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
7132 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
7133 * doc/gty.texi (for_user): Document new option.
7134 * gengtype.c (create_user_defined_type): Don't try to get a struct for
7136 (walk_type): Don't error out on for_user option.
7137 (write_func_for_structure): Emit user marking routines if requested by
7139 (write_local_func_for_structure): Likewise.
7140 (main): Mark types with for_user option as used.
7141 * ggc.h (gt_pch_nx): Add overload for unsigned int.
7142 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
7143 * hash-table.h (ggc_hasher): New struct.
7144 (hash_table::create_ggc): New function.
7145 (gt_pch_nx): New overload for hash_table.
7147 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
7149 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
7150 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
7151 * config/sh/sh.c: Likewise.
7152 * config/sh/sh-mem.cc: Likewise.
7153 * config/sh/sh.md: Likewise.
7154 * config/sh/predicates.md: Likewise.
7155 * config/sh/sync.md: Likewise.
7157 2014-10-11 Martin Liska <mliska@suse.cz>
7160 * cgraphunit.c (symbol_table::process_new_functions): Missing call
7161 for call_cgraph_insertion_hooks added.
7163 2014-10-10 Jakub Jelinek <jakub@redhat.com>
7166 * stor-layout.c (min_align_of_type): Don't decrease alignment
7167 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
7168 TYPE_USER_ALIGN is set.
7170 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
7172 PR rtl-optimization/63483
7173 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
7174 references when alignment ANDs are involved.
7175 (write_dependence_p): Ditto.
7176 (may_alias_p): Ditto.
7178 2014-10-10 Marek Polacek <polacek@redhat.com>
7180 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
7181 * doc/invoke.texi: Document -fsanitize=object-size.
7182 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
7183 or it into SANITIZE_UNDEFINED.
7184 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
7185 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
7186 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
7187 * opts.c (common_handle_option): Handle -fsanitize=object-size.
7188 * ubsan.c: Include tree-object-size.h.
7189 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
7190 (ubsan_expand_bounds_ifn): Use false instead of 0.
7191 (ubsan_expand_objsize_ifn): New function.
7192 (instrument_object_size): New function.
7193 (pass_ubsan::execute): Add object size instrumentation.
7194 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
7196 2014-10-10 Richard Henderson <rth@redhat.com>
7199 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
7200 Restrict the set of expressions we're willing to move.
7202 2014-10-10 Jeff Law <law@redhat.com>
7204 * ira.c (struct equivalence): Promote INIT_INSNs field to
7205 an rtx_insn_list. Add comments.
7206 (no_equiv): Promote LIST to an rtx_insn_list. Update
7207 testing for and creating the special marker. Use methods
7208 to extract the insn and next pointers. Promote INSN to an
7210 (update_equiv_regs): Update test for special marker in the
7213 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7215 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
7216 * configure: Regenerate.
7217 * config/aarch64/aarch64.c (aarch64_override_options): Handle
7218 TARGET_FIX_ERR_A53_835769_DEFAULT.
7219 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
7221 * doc/install.texi (aarch64*-*-*): Document
7222 new --enable-fix-cortex-a53-835769 option.
7224 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7225 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7227 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
7228 (ADJUST_INSN_LENGTH): Define.
7229 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
7230 * config/aarch64/aarch64.c (is_mem_p): New function.
7231 (is_memory_op): Likewise.
7232 (aarch64_prev_real_insn): Likewise.
7233 (is_madd_op): Likewise.
7234 (dep_between_memop_and_curr): Likewise.
7235 (aarch64_madd_needs_nop): Likewise.
7236 (aarch64_final_prescan_insn): Likewise.
7237 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
7238 and -mno-fix-cortex-a53-835769 options.
7240 2014-10-10 Jakub Jelinek <jakub@redhat.com>
7242 PR tree-optimization/63464
7243 * tree-switch-conversion.c (struct case_bit_test): Remove
7244 hi and lo fields, add wide_int mask field.
7245 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
7246 hi/lo fields into wide_int mask operations, optimize by pretending
7247 minval to be 0 if maxval is small enough.
7248 (process_switch): Adjust caller.
7250 2014-10-10 Richard Biener <rguenther@suse.de>
7252 PR tree-optimization/63379
7253 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
7254 a neutral operand for min/max when it is not a reduction chain.
7256 2014-10-10 Richard Biener <rguenther@suse.de>
7258 PR tree-optimization/63476
7259 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
7260 (BB_LIVE_VOP_ON_EXIT): New define.
7261 (create_expression_by_pieces): Assign VUSEs to stmts.
7262 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
7263 (pass_pre::execute): Assert virtual SSA form is up-to-date
7266 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
7268 * lra-assigns.c (assign_by_spills): Error out on spill failure.
7270 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
7272 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
7275 2014-10-09 Richard Biener <rguenther@suse.de>
7277 PR tree-optimization/63380
7278 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
7281 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
7283 * config/avr/avr.opt (mmcu=): Change to have a string value.
7284 (mn-flash=, mskip-bug, march=, mrmw): New options.
7285 (HeaderInclude): New.
7286 (mmcu=): Remove Var / Init clauses.
7287 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
7289 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
7290 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
7291 (SYMBOL_FLAG_IO_LOW): Define.
7292 (avr_device_to_as, avr_device_to_ld): Don't declare.
7293 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
7294 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
7295 (EXTRA_SPEC_FUNCTIONS): Don't define.
7296 (ASM_SPEC): Translate -arch= option to -mmcu= option.
7297 (LINK_SPEC): Translate -arch= option to -m= option.
7298 Don't use device_to_ld / device_to_data_start.
7299 (STARTFILE_SPEC): Now empty.
7300 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
7301 * config/avr/gen-avr-mmcu-specs.c: New file.
7302 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
7303 (s-device-specs): Likewise.
7304 (GCC_PASSES): Add s-device-specs.
7305 (install-driver): Depend on install-device-specs.
7306 (install-device-specs): New rule.
7307 * config/avr/avr.c (avr_option_override): Look up mcu arch by
7308 avr_arch_index and provide fallback initialization for avr_n_flash.
7309 (varasm.h): #include.
7310 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
7311 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
7312 (avr_attribute_table): Add "io", "address" and "io_low".
7313 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
7314 Add special handling for symbols with "io" and/or "address" attributes.
7315 (avr_asm_asm_output_aligned_bss): New function.
7316 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
7317 as appropriate. Handle io_low attribute.
7318 (avr_out_sbxx_branch): Handle symbolic io addresses.
7319 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
7320 avr_n_flash instead of avr_current_device->n_flash.
7321 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
7322 (avr_emit_movmemhi): Likewise.
7323 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
7324 Use TARGET_RMW instead of avr_current_device->dev_attributes.
7325 Don't define avr_current_device->macro (that's the specfile's job).
7326 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
7327 * config/avr/avr.c (avr_2word_insn_p): Likewise.
7328 * config/avr/avr.md (*cpse.ne): Likewise.
7329 (mov<mode>): Use avr_eval_addr_attrib.
7330 (cbi): Change constraint for low_io_address_operand operand to "i".
7331 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
7332 * config/avr/predicates.md (io_address_operand):
7333 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
7334 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
7335 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
7337 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
7338 * config/avr/genmultilib.awk: Use -march=.
7339 Remove Multilib matches processing.
7340 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
7341 * config/avr/avr-arch.h: Add double include guard.
7342 (avr_mcu_t) <library_name>: Update comment.
7343 * config/avr/driver-avr.c (avr_device_to_as): Delete.
7344 (avr_device_to_ld, avr_device_to_data_start): Likewise.
7345 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
7346 (avr_device_to_sp8): Likewise.
7347 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
7349 * doc/extend.texi (io, address): Document new AVR variable attributes.
7352 2014-10-09 Marek Polacek <polacek@redhat.com>
7354 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
7356 2014-10-08 Richard Biener <rguenther@suse.de>
7358 PR tree-optimization/61969
7359 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
7362 2014-10-09 Richard Biener <rguenther@suse.de>
7364 PR tree-optimization/63445
7365 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
7366 overflow for non-equality compares.
7368 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
7370 PR rtl-optimization/57003
7371 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
7372 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
7373 killing regs_invalidated_by_call.
7375 2014-10-08 Teresa Johnson <tejohnson@google.com>
7378 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
7379 (ssa_fix_duplicate_block_edges): Invoke it.
7380 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
7382 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
7385 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
7386 atomic_fetch_<fetchop_name>si_hard,
7387 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
7388 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
7389 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
7390 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
7392 2014-10-08 Rong Xu <xur@google.com>
7394 * gcov-tool.c (profile_overlap): New driver function
7395 to compute profile overlap.
7396 (print_overlap_usage_message): New.
7397 (overlap_usage): New.
7399 (print_usage): Add calls to overlap function.
7401 * doc/gcov-tool.texi: Add documentation.
7403 2014-10-08 Steve Ellcey <sellcey@mips.com>
7405 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
7406 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
7408 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
7410 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
7411 pattern matching of MEM_REF.
7412 (check_stmt_for_type_change): Update.
7414 2014-10-08 Steve Ellcey <sellcey@mips.com>
7416 * config/mips/linux64.h: Remove.
7417 * config/mips/gnu-user64.h: Remove.
7418 * gcc.config (mips*-*-*): Remove references to linux64.h and
7420 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
7421 with modified version from gnu-user64.h.
7422 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
7423 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
7424 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
7426 (GNU_USER_LINK_EMULATION64): Ditto.
7427 (GNU_USER_LINK_EMULATIONN32): Ditto.
7428 (GLIBC_DYNAMIC_LINKER32): Ditto.
7429 (GLIBC_DYNAMIC_LINKER64): Ditto.
7430 (GLIBC_DYNAMIC_LINKERN32): Ditto.
7431 (UCLIBC_DYNAMIC_LINKER32): Ditto.
7432 (UCLIBC_DYNAMIC_LINKER64): Ditto.
7433 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
7434 (BIONIC_DYNAMIC_LINKERN32): Ditto.
7435 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
7436 (GLIBC_DYNAMIC_LINKER): Delete.
7437 (UCLIBC_DYNAMIC_LINKER): Delete.
7439 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
7440 Richard Biener <rguenther@suse.de>
7442 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
7443 Get address space from operand 0 (BASE).
7445 2014-10-07 Iain Sandoe <iain@codesourcery.com>
7448 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
7450 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
7452 * dwarf2out.c: Remove current_function_has_inlines.
7453 (gen_subprogram_die): Same.
7454 (gen_inlined_subroutine_die): Same.
7456 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
7458 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
7460 (_addcarry_u64): Ditto.
7461 (_addcarryx_u64): Ditto.
7463 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
7465 * cgraph.h (cgraph_node::get_fun): Declare.
7466 * cgraph.c (cgraph_node::get_fun): New method.
7467 * ipa-inline.c (can_inline_edge_p): Use it.
7469 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
7471 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
7472 and -ftrapping-math.
7473 * lto-wrapper.c (merge_and_complain): Likewise.
7474 (run_gcc): Likewise.
7476 2014-10-06 Rong Xu <xur@google.com>
7478 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
7479 * tree-profile.c: (params.h): New include.
7480 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
7481 and __gcov_indirect_call_topn_counters for
7482 indirect_call_topn_profile.
7483 (gimple_init_edge_profiler): New decls for
7484 __gcov_indirect_call_topn_profiler.
7485 (gimple_gen_ic_profiler): Generate the correct profiler call.
7486 (gimple_gen_ic_func_profiler): Fix format.
7487 * value-prof.c (params.h): New include.
7488 (dump_histogram_value): Hanlde indirect_call_topn counters.
7489 (stream_in_histogram_value): Ditto.
7490 (gimple_indirect_call_to_profile): Use indirect_call_topn
7491 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
7492 (gimple_find_values_to_profile): Hanlde indirect_call_topn
7494 * value-prof.h (enum hist_type): Histrogram type for
7495 indirect_call_topn counters.
7496 * profile.c (instrument_values): Instrument
7497 indirect_call_topn counters.
7499 2014-10-06 Rong Xu <xur@google.com>
7501 * Makefile.in: Fix dependence.
7502 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
7503 indirect call topn profiler.
7506 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
7508 * calls.c (expand_call): Do not use the target as the return slot if
7509 it is not sufficiently aligned.
7511 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7513 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
7514 discussion of permutes and why we don't handle them.
7516 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
7518 * config/sparc/predicates.md (int_register_operand): Delete.
7520 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
7522 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
7524 2014-10-06 Jakub Jelinek <jakub@redhat.com>
7526 * ubsan.h (ubsan_get_source_location): New prototype.
7527 * ubsan.c (ubsan_source_location_type): New variable.
7528 Function renamed to ...
7529 (ubsan_get_source_location_type): ... this. Cache
7530 return value in ubsan_source_location_type variable.
7531 (ubsan_source_location, ubsan_create_data): Use
7532 ubsan_get_source_location_type instead of
7533 ubsan_source_location_type.
7534 * asan.c (asan_protect_global): Don't protect globals
7535 with ubsan_get_source_location_type () type.
7536 (asan_add_global): Provide global decl location info
7539 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7541 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
7544 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7546 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
7548 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
7550 (ipa_polymorphic_call_context::dump): Fix formating.
7551 (walk_ssa_copies): Add logic avoiding loops; update uses.
7552 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
7554 2014-10-02 Mark Wielaard <mjw@redhat.com>
7557 * dwarf2out.c (gen_subprogram_die): When a member function is
7558 explicitly deleted then add a DW_AT_GNU_deleted attribute.
7559 * langhooks.h (struct lang_hooks_for_decls): Add
7560 function_decl_deleted_p langhook.
7561 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
7562 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
7564 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7566 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
7567 NULL pointer checks.
7568 (ipa_polymorphic_call_context::get_dynamic_type): Return true
7569 if type doesn't change.
7570 * cgraph.h (cgraph_indirect_call_info): New flag.
7571 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
7572 (cgraph_node::dump): Dump it.
7573 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
7574 of context.get_dynamic_type.
7575 (ipa_make_edge_direct_to_target): Do not speculate
7576 edge that is already speuclative.
7577 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
7578 speculate to __builtin_unreachable
7579 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
7581 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
7583 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
7585 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
7586 get_dynamic_type; drop TODO.
7587 * ipa-polymorphic-call.c
7588 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
7589 for otr_type to be unknown.
7591 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
7593 * common/config/score/score-common.c: Remove.
7594 * config.gcc: Remove support for score-*.
7595 * config/score/constraints.md: Remove.
7596 * config/score/elf.h: Remove.
7597 * config/score/predicates.md: Remove.
7598 * config/score/score-conv.h: Remove.
7599 * config/score/score-generic.md: Remove.
7600 * config/score/score-modes.def: Remove.
7601 * config/score/score-protos.h: Remove.
7602 * config/score/score.c: Remove.
7603 * config/score/score.h: Remove.
7604 * config/score/score.md: Remove.
7605 * config/score/score.opt: Remove.
7606 * doc/md.texi: Don't document score-*.
7608 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
7611 * genconditions.c: Directly include ggc.h before rtl.h.
7613 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
7615 * ipa-polymorphic-call.c
7616 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
7617 code determining speculative type.
7618 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
7620 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7622 * altivec.md (altivec_lvsl): New define_expand.
7623 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
7624 (altivec_lvsr): New define_expand.
7625 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
7626 * rs6000.c (rs6000_expand_builtin): Change to use
7627 altivec_lvs[lr]_direct; remove commented-out code.
7629 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7631 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7632 Issue a warning message when vec_lvsl or vec_lvsr is used with a
7633 little endian target.
7635 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
7637 * tree-pretty-print.c (dump_location): Make it extern. Dump also
7639 * tree-pretty-print.h (dump_location): Declare.
7640 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
7641 (pp_gimple_stmt_1): Likewise.
7642 (dump_implicit_edges): Likewise.
7643 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
7647 2014-10-03 David Malcolm <dmalcolm@redhat.com>
7649 * gcc.c (driver::global_initializations): Remove "const" so
7650 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
7651 and decoded_options_count.
7653 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
7655 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
7657 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
7658 TARGET_E500_DOUBLE case here.
7660 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
7665 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
7667 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
7669 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
7670 * lto-cgraph.c (lto_output_edge, input_edge): Stream
7671 in_polymorphic_cdtor
7672 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
7673 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
7674 * cgraphclones.c (cgraph_edge::clone): Likewise.
7675 * ipa-prop.c (update_jump_functions_after_inlining,
7676 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
7677 to possible_dynamic_type_change.
7678 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
7679 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
7680 IN_POLY_CDOTR argument.
7682 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
7683 for BASE and OUTER_TYPE being NULL.
7684 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
7685 in_poly_cdtor parameter.
7687 2014-10-03 Jakub Jelinek <jakub@redhat.com>
7689 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
7690 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
7692 (expand_vec_perm_1): Likewise.
7694 2014-10-03 Jakub Jelinek <jakub@redhat.com>
7695 Uros Bizjak <ubizjak@gmail.com>
7697 PR tree-optimization/61403
7698 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
7699 error in comment. Also optimize 256-bit vectors for AVX2
7700 or AVX (floating vectors only), provided the first permutation
7701 can be performed in one insn.
7703 2014-10-03 David Malcolm <dmalcolm@redhat.com>
7705 * gcc.c (class driver): New class.
7706 (main): Reimplement in terms of driver::main, moving most of the
7707 locals to be locals within individual methods of class driver.
7708 The remaining locals "explicit_link_files", "decoded_options" and
7709 "decoded_options_count" are used by multiple driver:: methods, and
7710 so become member data. Doing so isolates the argc/argv reads and
7711 writes. Replace "goto out" with a special exit code from
7712 new method driver::prepare_infiles. Split out the old
7713 implementation of main into the following...
7714 (driver::main): New function, corresponding to the old "main"
7716 (driver::set_progname): New function, taken from the old
7717 "main" implementation.
7718 (driver::expand_at_files): Likewise.
7719 (driver::decode_argv): Likewise.
7720 (driver::global_initializations): Likewise.
7721 (driver::build_multilib_strings): Likewise.
7722 (driver::set_up_specs): Likewise.
7723 (driver::putenv_COLLECT_GCC): Likewise.
7724 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
7725 (driver::handle_unrecognized_options): Likewise.
7726 (driver::maybe_print_and_exit): Likewise.
7727 (driver::prepare_infiles): Likewise.
7728 (driver::do_spec_on_infiles): Likewise.
7729 (driver::maybe_run_linker): Likewise.
7730 (driver::final_actions): Likewise.
7731 (driver::get_exit_code): Likewise.
7733 2014-10-03 Yury Gribov <y.gribov@samsung.com>
7735 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
7736 don't emit empty ctors.
7738 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
7740 * convert.c (convert_to_integer): Do not introduce useless conversions
7741 between integral types.
7743 2014-10-03 David Sherwood <david.sherwood@arm.com>
7745 * ira-int.h (ira_allocno): Mark hard_regno as signed.
7747 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
7749 * lra-constraints.c (inherit_in_ebb): Handle calls with
7750 multiple return values.
7751 * caller-save.c (save_call_clobbered_regs): Likewise.
7753 2014-10-03 Jakub Jelinek <jakub@redhat.com>
7755 * tree-vect-data-refs.c (vect_permute_load_chain,
7756 vect_shift_permute_load_chain): Fix a typo in temporary var names,
7757 suffle3 to shuffle3.
7760 * omp-low.c (taskreg_contexts): New variable.
7761 (scan_omp_parallel): Push newly created context into taskreg_contexts
7762 vector and move record layout code to finish_taskreg_scan.
7763 (scan_omp_task): Likewise.
7764 (finish_taskreg_scan): New function.
7765 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
7766 vector elements and release it.
7769 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
7770 of palignr arguments can't be used due to min 0 or max - min
7771 too high, try also op0, op1 order of palignr arguments.
7773 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
7775 * cgraph.h (ipa_polymorphic_call_context):
7776 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
7777 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
7778 * ipa-polymorphic-call.c
7779 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
7780 past end of dynamic types.
7781 (ipa_polymorphic_call_context::stream_out,
7782 speculative_outer_type): Stream dynamic flag.
7783 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
7784 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
7786 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
7788 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
7789 * ipa-prop.c (update_jump_functions_after_inlining,
7790 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
7792 2014-10-02 Teresa Johnson <tejohnson@google.com>
7794 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
7795 up when synthesizing counts to avoid rounding errors.
7797 2014-10-02 Teresa Johnson <tejohnson@google.com>
7800 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
7801 asserts to handle incoming insanities.
7803 2014-10-02 Martin Jambor <mjambor@suse.cz>
7805 PR tree-optimization/63375
7806 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
7809 2014-10-02 Olivier Hainque <hainque@adacore.com>
7811 * Makefile.in (CROSS): Define, to @CROSS.
7813 2014-10-02 Jakub Jelinek <jakub@redhat.com>
7816 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
7817 if it expands to a single insn only.
7818 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
7819 fail unless in_order is true. Add forward declaration.
7820 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
7821 is useful for one_operand_p.
7822 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
7824 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7826 * cgraphclones.c (build_function_type_skip_args): Do not make new
7827 type variant of old.
7829 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7831 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
7832 when speculation is added.
7833 (ipa_edge_args): Add polymorphic_call_contexts.
7834 (ipa_get_ith_polymorhic_call_context): New accesor.
7835 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
7836 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
7837 (ipa_compute_jump_functions_for_edge): Compute contexts.
7838 (update_jump_functions_after_inlining): Update contexts.
7839 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
7840 update dumping; add speculative edge creation.
7841 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
7843 (update_indirect_edges_after_inlining): Pass down context.
7844 (ipa_edge_duplication_hook): Duplicate contexts.
7845 (ipa_write_node_info): Stream out contexts.
7846 (ipa_read_node_info): Stream in contexts.
7847 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
7849 (try_speculative_devirtualization): New function.
7850 * ipa-utils.h (try_speculative_devirtualization): Declare.
7852 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7854 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
7857 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7859 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
7862 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
7864 * ipa-polymorphic-call.c
7865 (ipa_polymorphic_call_context::restrict_to_inner_class):
7866 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
7867 use speculation_consistent_p to do so; Add CONSDER_BASES
7868 and CONSIDER_PLACEMENT_NEW parameters.
7869 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
7870 short circuit obvious cases.
7871 (ipa_polymorphic_call_context::dump): Improve formatting.
7872 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
7873 combine_speculation_with to record speculations; Do not ICE when
7874 object is located in pointer type decl; do not ICE for methods
7875 of UNION_TYPE; do not record nonpolymorphic types.
7876 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
7877 (ipa_polymorphic_call_context::combine_speculation_with): New method.
7878 (ipa_polymorphic_call_context::combine_with): New method.
7879 (ipa_polymorphic_call_context::make_speculative): Move here; use
7880 combine speculation.
7881 * cgraph.h (ipa_polymorphic_call_context): Update
7882 restrict_to_inner_class prototype; add offset_by, make_speculative,
7883 combine_with, useless_p, combine_speculation_with and
7884 speculation_consistent_p methods.
7885 (ipa_polymorphic_call_context::offset_by): New method.
7886 (ipa_polymorphic_call_context::useless_p): New method.
7888 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
7890 PR rtl-optimization/62151
7891 * combine.c (can_combine_p): Allow the destination register of INSN
7892 to be clobbered in I3.
7893 (subst): Do not substitute into clobbers of registers.
7895 2014-10-01 Jakub Jelinek <jakub@redhat.com>
7898 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
7899 offset, TARGET_MEM_REF and SSA_NAME.
7901 * config/i386/i386.c (expand_vec_perm_palignr): Handle
7902 256-bit vectors for TARGET_AVX2.
7904 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
7908 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
7909 argument to avx2_permv2ti.
7911 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7913 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
7915 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
7917 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
7918 (fmod<mode>3): Ditto.
7919 (fpremxf4_i387): Ditto.
7920 (reminderxf3): Ditto.
7921 (reminder<mode>3): Ditto.
7922 (fprem1xf4_i387): Ditto.
7924 2014-09-30 Teresa Johnson <tejohnson@google.com>
7926 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
7927 duplicate_blocks bitmap.
7928 (remove_ctrl_stmt_and_useless_edges): Ditto.
7929 (create_block_for_threading): Ditto.
7930 (compute_path_counts): New function.
7931 (update_profile): Ditto.
7932 (recompute_probabilities): Ditto.
7933 (update_joiner_offpath_counts): Ditto.
7934 (freqs_to_counts_path): Ditto.
7935 (clear_counts_path): Ditto.
7936 (ssa_fix_duplicate_block_edges): Update profile info.
7937 (ssa_create_duplicates): Pass new parameter.
7938 (ssa_redirect_edges): Remove old profile update.
7939 (thread_block_1): New duplicate_blocks bitmap,
7940 remove old profile update.
7941 (thread_single_edge): Pass new parameter.
7943 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
7946 * varasm.c (decode_reg_name_and_count): Check availability for
7947 registers from ADDITIONAL_REGISTER_NAMES.
7949 2014-09-30 David Malcolm <dmalcolm@redhat.com>
7952 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
7953 (PLUGIN_HEADERS): Add pass-instances.def.
7955 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
7957 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
7959 * config/aarch64/aarch64-simd.md
7960 (aarch64_sqdmull_laneq<mode>): Expand iterator.
7961 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
7962 (vqdmulls_lane_s32): Fix return type.
7963 (vqdmulls_laneq_s32): New.
7965 2014-09-30 Jakub Jelinek <jakub@redhat.com>
7968 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
7969 or invert_jump_1 if jump isn't any_condjump_p.
7971 2014-09-30 Terry Guo <terry.guo@arm.com>
7973 * config/arm/arm-cores.def (cortex-m7): New core name.
7974 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
7976 * config/arm/arm-tables.opt: Regenerated.
7977 * config/arm/arm-tune.md: Regenerated.
7978 * config/arm/arm.h (TARGET_VFP5): New macro.
7979 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
7980 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
7981 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
7982 * doc/invoke.texi: Document new cpu and fpu names.
7984 2014-09-30 Jiong Wang <jiong.wang@arm.com>
7986 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
7987 before sinking insn.
7989 2014-09-30 David Sherwood <david.sherwood@arm.com>
7991 * ira-int.h (ira_allocno): Add "wmode" field.
7992 * ira-build.c (create_insn_allocnos): Add new "parent" function
7994 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
7995 that cannot be accessed in wmode.
7997 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
7999 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
8002 2014-09-29 Andi Kleen <ak@linux.intel.com>
8004 * opts.c (print_filtered_help): Print --param min/max/default
8007 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
8009 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
8011 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
8013 * tree-vrp.c (get_single_symbol): New function.
8014 (build_symbolic_expr): Likewise.
8015 (symbolic_range_based_on_p): New predicate.
8016 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
8017 for PLUS and MINUS. Do not drop symbolic ranges at the end.
8018 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
8019 operand is symbolic and based on the other operand.
8021 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
8023 * config/microblaze/microblaze.md (call_internal1): Use VOID
8024 instead of SI to fix "((void (*)(void)) 0)()" issue
8026 2014-09-29 Nick Clifton <nickc@redhat.com>
8028 * config/msp430/msp430.c (msp430_expand_prologue): Return a
8029 CLOBBER rtx for naked functions.
8030 (msp430_expand_epilogue): Likewise.
8031 (msp430_use_f5_series_hwmult): Cache result.
8032 (use_32bit_hwmult): Cache result.
8033 (msp430_no_hwmult): New function.
8034 (msp430_output_labelref): Use it.
8036 2014-09-29 Jakub Jelinek <jakub@redhat.com>
8039 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
8040 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
8041 use the alignment of avar rather than ovar.
8043 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
8045 * config/pa/pa.c (pa_output_function_epilogue): Only update
8046 last_address when a nonnote insn is found.
8048 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
8051 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
8053 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
8056 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
8057 fix pasto in checking array size.
8059 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
8062 * passes.def (pass_tracer): Move before last dominator pass.
8064 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
8066 * gcc.c (try_generate_repro): Remove argument "prog". Change all
8068 (run_attempt): Handle errors of "pex_run" invocation.
8070 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
8072 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
8074 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
8075 (TARGET_ASAN_SHADOW_OFFSET): Define.
8077 2014-09-26 Martin Liska <mliska@suse.cz>
8079 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
8081 * cgraph.h: Likewise.
8082 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
8083 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
8084 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
8085 * tree-ssa-alias.h: Likewise.
8087 2014-09-26 Jakub Jelinek <jakub@redhat.com>
8088 Max Ostapenko <m.ostapenko@partner.samsung.com>
8090 * common.opt: New option.
8091 * doc/invoke.texi: Describe new option.
8092 * gcc.c (execute): Don't free first string early, but at the end
8093 of the function. Call retry_ice if compiler exited with
8095 (main): Factor out common code.
8096 (print_configuration): New function.
8097 (files_equal_p): Likewise.
8098 (check_repro): Likewise.
8099 (run_attempt): Likewise.
8100 (do_report_bug): Likewise.
8101 (append_text): Likewise.
8102 (try_generate_repro): Likewise
8104 2014-09-25 Andi Kleen <ak@linux.intel.com>
8106 * config/i386/i386.c (x86_print_call_or_nop): New function.
8107 (x86_function_profiler): Support -mnop-mcount and
8109 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
8110 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
8112 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
8114 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
8115 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
8116 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
8119 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
8121 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
8122 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
8123 types_odr_comparable): Declare.
8124 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
8125 * ipa-polymorphic-call.c: New file.
8126 (contains_polymorphic_type_p, possible_placement_new,
8127 ipa_polymorphic_call_context::restrict_to_inner_class,
8128 contains_type_p, decl_maybe_in_construction_p,
8129 ipa_polymorphic_call_context::stream_out,
8130 ipa_polymorphic_call_context::debug,
8131 ipa_polymorphic_call_context::stream_in,
8132 ipa_polymorphic_call_context::set_by_decl,
8133 ipa_polymorphic_call_context::set_by_invariant,
8135 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
8136 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
8137 extr_type_from_vtbl_ptr_store, record_known_type
8138 check_stmt_for_type_change,
8139 ipa_polymorphic_call_context::get_dynamic_type): Move here from
8141 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
8142 and streamer-hooks.h
8143 (contains_polymorphic_type_p, possible_placement_new,
8144 ipa_polymorphic_call_context::restrict_to_inner_class,
8145 contains_type_p, decl_maybe_in_construction_p,
8146 ipa_polymorphic_call_context::stream_out,
8147 ipa_polymorphic_call_context::debug,
8148 ipa_polymorphic_call_context::stream_in,
8149 ipa_polymorphic_call_context::set_by_decl,
8150 ipa_polymorphic_call_context::set_by_invariant,
8152 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
8153 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
8154 extr_type_from_vtbl_ptr_store, record_known_type
8155 check_stmt_for_type_change,
8156 ipa_polymorphic_call_context::get_dynamic_type): Move to
8157 ipa-polymorphic-call.c
8158 (type_all_derivations_known_p, types_odr_comparable,
8159 types_must_be_same_for_odr): Export.
8160 (type_known_to_have_no_deriavations_p): New function.
8161 * Makefile.in: Add ipa-polymorphic-call.c
8163 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
8165 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
8167 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
8168 (possible_polymorphic_call_targets): Instead of computing both
8169 speculative and non-speculative answers, do just one at a time.
8170 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
8171 (dump_targets): Break out from ...
8172 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
8173 and non-speculative lists.
8174 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
8175 * ipa-utils.h (possible_polymorphic_call_targets): Update.
8177 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
8179 PR rtl-optimization/63348
8180 * emit-rtl.c (try_split): Do not emit extra barrier.
8182 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
8184 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
8185 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
8187 (aarch64_<sur>shll2_n<mode>): Likewise.
8188 (aarch64_<sur>shr_n<mode>): Likewise.
8189 (aarch64_<sur>sra_n<mode>: Likewise.
8190 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
8191 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
8192 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
8193 * config/aarch64/iterators.md (ve_mode): New.
8194 (offsetlr): Remap to infix text for use in new predicates.
8195 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
8196 (aarch64_simd_shift_imm_hi): Likewise.
8197 (aarch64_simd_shift_imm_si): Likewise.
8198 (aarch64_simd_shift_imm_di): Likewise.
8199 (aarch64_simd_shift_imm_offset_qi): Likewise.
8200 (aarch64_simd_shift_imm_offset_hi): Likewise.
8201 (aarch64_simd_shift_imm_offset_si): Likewise.
8202 (aarch64_simd_shift_imm_offset_di): Likewise.
8203 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
8204 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
8205 (aarch64_simd_shift_imm_bitsize_si): Likewise.
8206 (aarch64_simd_shift_imm_bitsize_di): Likewise.
8208 2014-09-25 Jiong Wang <jiong.wang@arm.com>
8210 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
8211 new created BB as the intersection of live-in from "old_dest" and
8214 2014-09-25 Felix Yang <felix.yang@huawei.com>
8216 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
8217 * genautomata.c (merge_states): Ditto.
8219 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
8222 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
8223 in instruction sequence.
8225 2014-09-25 Nick Clifton <nickc@redhat.com>
8228 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
8229 in instruction sequence.
8231 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8234 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
8235 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
8237 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
8238 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8239 Anna Tikhonova <anna.tikhonova@intel.com>
8240 Ilya Tocar <ilya.tocar@intel.com>
8241 Andrey Turetskiy <andrey.turetskiy@intel.com>
8242 Ilya Verbin <ilya.verbin@intel.com>
8243 Kirill Yukhin <kirill.yukhin@intel.com>
8244 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8246 * config/i386/sse.md
8247 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
8248 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
8249 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
8250 (define_expand "<avx512>_perm<mode>_mask"): ... this.
8251 Use VI8F_256_512 mode iterator.
8252 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
8253 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
8255 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
8256 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8257 Anna Tikhonova <anna.tikhonova@intel.com>
8258 Ilya Tocar <ilya.tocar@intel.com>
8259 Andrey Turetskiy <andrey.turetskiy@intel.com>
8260 Ilya Verbin <ilya.verbin@intel.com>
8261 Kirill Yukhin <kirill.yukhin@intel.com>
8262 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8264 * config/i386/sse.md
8265 (define_insn "avx_movshdup256<mask_name>"): Add masking.
8266 (define_insn "sse3_movshdup<mask_name>"): Ditto.
8267 (define_insn "avx_movsldup256<mask_name>"): Ditto.
8268 (define_insn "sse3_movsldup<mask_name>"): Ditto.
8269 (define_insn "vec_dupv2df<mask_name>"): Ditto.
8270 (define_insn "*vec_concatv2df"): Add EVEX version.
8272 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
8273 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8274 Anna Tikhonova <anna.tikhonova@intel.com>
8275 Ilya Tocar <ilya.tocar@intel.com>
8276 Andrey Turetskiy <andrey.turetskiy@intel.com>
8277 Ilya Verbin <ilya.verbin@intel.com>
8278 Kirill Yukhin <kirill.yukhin@intel.com>
8279 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8281 * config/i386/sse.md
8282 (define_insn "vec_set<mode>_0"): Add EVEX version.
8284 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
8285 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8286 Anna Tikhonova <anna.tikhonova@intel.com>
8287 Ilya Tocar <ilya.tocar@intel.com>
8288 Andrey Turetskiy <andrey.turetskiy@intel.com>
8289 Ilya Verbin <ilya.verbin@intel.com>
8290 Kirill Yukhin <kirill.yukhin@intel.com>
8291 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8293 * config/i386/sse.md
8295 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
8297 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
8298 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
8299 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
8300 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
8301 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
8302 (define_expand "sse2_cvtpd2ps_mask): New.
8303 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
8304 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
8306 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
8307 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8308 Anna Tikhonova <anna.tikhonova@intel.com>
8309 Ilya Tocar <ilya.tocar@intel.com>
8310 Andrey Turetskiy <andrey.turetskiy@intel.com>
8311 Ilya Verbin <ilya.verbin@intel.com>
8312 Kirill Yukhin <kirill.yukhin@intel.com>
8313 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8315 * config/i386/i386.c
8316 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
8317 (ufix_notruncv8dfv8si2_mask_round): ... this.
8318 * config/i386/sse.md
8319 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
8320 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
8321 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
8322 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
8323 (define_expand "sse2_cvtpd2dq"): Delete.
8324 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
8325 make 2nd operand const0 vector.
8326 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
8328 (define_mode_attr pd2udqsuff): New.
8330 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
8331 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
8332 (define_insn "*avx_cvttpd2dq256_2"): Delete.
8333 (define_expand "sse2_cvttpd2dq"): Ditto.
8334 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
8335 make 2nd operand const0 vector.
8337 2014-09-25 Jakub Jelinek <jakub@redhat.com>
8339 PR tree-optimization/63341
8340 * tree-vectorizer.h (vect_create_data_ref_ptr,
8341 vect_create_addr_base_for_vector_ref): Add another tree argument
8342 defaulting to NULL_TREE.
8343 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
8344 argument, pass it down to vect_create_addr_base_for_vector_ref.
8345 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
8346 add that to base_offset too if non-NULL.
8347 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
8348 for dr_explicit_realign_optimized set it to vector byte size
8349 - 1 instead of setting offset, pass byte_offset down to
8350 vect_create_data_ref_ptr.
8352 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
8354 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
8355 forgotten debug output; canonicalize querries more wtih LTO.
8357 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
8359 * cgraph.h (class ipa_polymorphic_call_context): Move here from
8360 ipa-utils.h; add stream_int and stream_out methods.
8361 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
8362 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
8363 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
8365 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
8366 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
8367 ipa_polymorphic_call_context::clear_speculation,
8368 ipa_polymorphic_call_context::clear_outer_type): Move here from
8370 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
8371 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
8372 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
8373 ipa_polymorphic_call_context::clear_speculation,
8374 ipa_polymorphic_call_context::clear_outer_type): Likewise.
8375 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
8377 (ipa_polymorphic_call_context::stream_out): New method.
8378 (ipa_polymorphic_call_context::stream_in): New method.
8379 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
8380 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
8382 (ipa_analyze_call_uses): Simplify.
8383 (update_indirect_edges_after_inlining): Do not care about outer_type.
8384 (ipa_write_indirect_edge_info): Update.
8385 (ipa_write_indirect_edge_info): Likewise.
8386 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
8387 (dump_edge_flags): Break out from ...
8388 (cgraph_node::dump): ... here; dump indirect edges.
8390 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
8392 * ipa-utils.h (polymorphic_call_context): Add
8393 metdhos dump, debug and clear_outer_type.
8394 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
8395 (ipa_polymorphic_call_context::clear_outer_type): New method.
8396 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
8397 * ipa-devirt.c (types_odr_comparable): New function.
8398 (types_must_be_same_for_odr): New function.
8399 (odr_subtypes_equivalent_p): Simplify.
8400 (possible_placement_new): Break out from ...
8401 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
8402 be more cuatious about returning false in cases the context may be
8403 valid in derived type or via placement new.
8404 (contains_type_p): Clear maybe_derived_type
8405 (ipa_polymorphic_call_context::dump): New method.
8406 (ipa_polymorphic_call_context::debug): New method.
8407 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
8408 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
8409 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
8410 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
8411 to suceed on all valid cases; remove confused sanity check.
8412 (dump_possible_polymorphic_call_targets): Simplify.
8414 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
8416 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
8417 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
8418 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
8419 varpool.c: Rename all instances of DECL_ABSTRACT to
8422 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8424 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
8425 special handling for stores whose SET_SRC is an UNSPEC (such as
8428 2014-09-24 Jiong Wang <jiong.wang@arm.com>
8430 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
8431 !REG_P (src) to release more instruction sink opportunities.
8433 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
8435 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
8436 move costs for 128-bit types.
8438 2014-09-24 Martin Jambor <mjambor@suse.cz>
8440 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
8441 when duplicating a PASS_THROUGH jump function when creating a
8444 2014-09-24 Marek Polacek <polacek@redhat.com>
8448 * asan.c (maybe_instrument_call): Add default case.
8449 * ipa-pure-const.c (special_builtin_state): Likewise.
8450 * predict.c (expr_expected_value_1): Likewise.
8451 * lto-streamer-out.c (write_symbol): Initialize variable.
8453 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8455 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
8457 (vmuld_laneq_f64): Likewise.
8458 (vmuls_lane_f32): Likewise.
8459 (vmuls_laneq_f32): Likewise.
8461 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
8464 * varpool.c (varpool_node::add): Pass decl attributes
8465 to lookup_attribute.
8467 2014-09-24 Jakub Jelinek <jakub@redhat.com>
8470 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
8472 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
8474 PR tree-optimization/63266
8475 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
8476 marker for unknown byte value.
8477 (MARKER_MASK): New macro.
8478 (MARKER_BYTE_UNKNOWN): New macro.
8479 (HEAD_MARKER): New macro.
8480 (do_shift_rotate): Mark bytes with unknown values due to sign
8481 extension when doing an arithmetic right shift. Replace hardcoded
8482 mask for marker by new MARKER_MASK macro.
8483 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
8484 numbers accordingly.
8486 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
8487 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8488 Anna Tikhonova <anna.tikhonova@intel.com>
8489 Ilya Tocar <ilya.tocar@intel.com>
8490 Andrey Turetskiy <andrey.turetskiy@intel.com>
8491 Ilya Verbin <ilya.verbin@intel.com>
8492 Kirill Yukhin <kirill.yukhin@intel.com>
8493 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8495 * config/i386/sse.md
8497 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
8499 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
8500 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
8502 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
8503 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8504 Anna Tikhonova <anna.tikhonova@intel.com>
8505 Ilya Tocar <ilya.tocar@intel.com>
8506 Andrey Turetskiy <andrey.turetskiy@intel.com>
8507 Ilya Verbin <ilya.verbin@intel.com>
8508 Kirill Yukhin <kirill.yukhin@intel.com>
8509 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8511 * config/i386/sse.md
8512 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
8513 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
8514 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
8515 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
8516 (define_expand "avx512vl_pshuflw_mask"): New.
8517 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
8518 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
8519 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
8520 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
8521 (define_expand "avx512vl_pshufhw_mask"): New.
8522 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
8524 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
8525 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8526 Anna Tikhonova <anna.tikhonova@intel.com>
8527 Ilya Tocar <ilya.tocar@intel.com>
8528 Andrey Turetskiy <andrey.turetskiy@intel.com>
8529 Ilya Verbin <ilya.verbin@intel.com>
8530 Kirill Yukhin <kirill.yukhin@intel.com>
8531 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8533 * config/i386/i386.c
8534 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
8535 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
8536 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
8537 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
8538 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
8539 * config/i386/sse.md
8540 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
8542 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
8543 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
8545 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
8546 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
8547 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
8548 (define_expand "avx512vl_pshufd_mask"): New.
8549 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
8551 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
8552 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8553 Anna Tikhonova <anna.tikhonova@intel.com>
8554 Ilya Tocar <ilya.tocar@intel.com>
8555 Andrey Turetskiy <andrey.turetskiy@intel.com>
8556 Ilya Verbin <ilya.verbin@intel.com>
8557 Kirill Yukhin <kirill.yukhin@intel.com>
8558 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8560 * config/i386/i386.c
8561 (CODE_FOR_avx2_extracti128): Rename to ...
8562 (CODE_FOR_avx_vextractf128v4di): this.
8563 (CODE_FOR_avx2_inserti128): Rename to ...
8564 (CODE_FOR_avx_vinsertf128v4di): this.
8565 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
8566 CODE_FOR_avx_vextractf128v4di.
8567 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
8568 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
8569 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
8570 CODE_FOR_avx512vl_vinsertv8si.
8571 * config/i386/sse.md
8573 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
8574 AVX512_VEC mode iterator.
8576 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
8579 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
8580 AVX512_VEC_2 mode iterator.
8581 (define_insn "vec_set_lo_<mode><mask_name>"): New.
8582 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
8583 (define_expand "avx512vl_vinsert<mode>"): Ditto.
8584 (define_insn "avx2_vec_set_lo_v4di"): Delete.
8585 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
8586 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
8587 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
8588 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
8589 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
8590 (define_expand "avx2_extracti128"): Delete.
8591 (define_expand "avx2_inserti128"): Ditto.
8593 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
8594 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8595 Anna Tikhonova <anna.tikhonova@intel.com>
8596 Ilya Tocar <ilya.tocar@intel.com>
8597 Andrey Turetskiy <andrey.turetskiy@intel.com>
8598 Ilya Verbin <ilya.verbin@intel.com>
8599 Kirill Yukhin <kirill.yukhin@intel.com>
8600 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8602 * config/i386/sse.md
8603 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
8604 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
8605 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
8606 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
8607 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
8608 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
8609 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
8610 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
8611 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
8612 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
8613 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
8614 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
8615 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
8617 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
8619 PR rtl-optimization/63210
8620 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
8621 HARD_REGNO is not available for CONFLICT_A.
8623 2014-09-23 Andi Kleen <ak@linux.intel.com>
8625 * cgraph.h (symtab_node): Add no_reorder attribute.
8626 (symbol_table::output_asm_statements): Remove.
8627 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
8628 (cgraph_node::create_version_clone): Dito.
8629 (symbol_table::output_asm_statements): Remove.
8630 * trans-mem.c (ipa_tm_create_version_alias): Dito.
8631 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
8632 (output_in_order): Add no_reorder flag. Only handle no_reorder
8634 (symbol_table::compile): Add separate pass for no_reorder nodes.
8635 (process_common_attributes): Set no_reorder flag in symtab node.
8637 (process_function_and_variable_attributes): Pass symtab nodes to
8638 process_common_attributes.
8639 * doc/extend.texi (no_reorder): Document no_reorder attribute.
8640 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
8641 (lto_output_varpool_node): Dito.
8642 (input_overwrite_node): Dito.
8643 (input_varpool_node): Dito.
8644 * varpool.c (varpool_node::add): Set no_reorder attribute.
8645 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
8646 (symbol_table::output_variables): Dito.
8647 * symtab.c (symtab_node::dump_base): Print no_reorder.
8649 2014-09-23 Jiong Wang <jiong.wang@arm.com>
8651 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
8654 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
8656 * configure: Regenerate.
8658 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
8660 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
8661 when result_mode == shift_mode.
8663 2014-09-23 Kostya Serebryany <kcc@google.com>
8665 Update to match the changed asan API.
8666 * asan.c (asan_global_struct): Update the __asan_global definition
8667 to match the new API.
8668 (asan_add_global): Ditto.
8669 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
8672 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8674 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
8675 refine the constraints used on 32/64-bit floating point moves.
8677 (f64_vsx): Likewise.
8680 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
8681 (BOOL_REGS_OP1): Likewise.
8682 (BOOL_REGS_OP2): Likewise.
8683 (BOOL_REGS_UNARY): Likewise.
8684 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
8685 32/64-bit floating point moves. Do not use wa, instead use ww/ws
8686 for moves involving VSX registers. Do not use constraints that
8687 target VSX registers for decimal types.
8688 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
8689 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
8691 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
8693 * tree.h (int_bit_position): Turn into inline function;
8694 implement using wide int.
8695 * tree.c (int_bit_position): Remove.
8697 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
8700 * target-globals.c (target_globals::~target_globals): Fix location
8701 of ira_int destruction.
8703 2014-09-23 Renlin Li <renlin.li@arm.com>
8705 * config/aarch64/aarch64.md (return): New.
8706 (simple_return): Likewise.
8707 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
8708 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
8710 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
8712 * common/config/aarch64/aarch64-common.c:
8713 (default_options aarch_option_optimization_table):
8714 Default to -fsched-pressure.
8716 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
8718 * cfgcleanup.c (try_optimize_cfg): Do not remove label
8719 with LABEL_PRESERVE_P flag set.
8721 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
8722 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8723 Anna Tikhonova <anna.tikhonova@intel.com>
8724 Ilya Tocar <ilya.tocar@intel.com>
8725 Andrey Turetskiy <andrey.turetskiy@intel.com>
8726 Ilya Verbin <ilya.verbin@intel.com>
8727 Kirill Yukhin <kirill.yukhin@intel.com>
8728 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8730 * config/i386/sse.md
8731 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
8732 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
8733 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
8734 (define_insn "sse2_shufpd_v2df_mask"): New.
8736 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
8737 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8738 Anna Tikhonova <anna.tikhonova@intel.com>
8739 Ilya Tocar <ilya.tocar@intel.com>
8740 Andrey Turetskiy <andrey.turetskiy@intel.com>
8741 Ilya Verbin <ilya.verbin@intel.com>
8742 Kirill Yukhin <kirill.yukhin@intel.com>
8743 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8745 * config/i386/sse.md
8746 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
8747 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
8748 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
8749 (define_insn "sse_shufps_v4sf_mask"): New.
8751 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
8752 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8753 Anna Tikhonova <anna.tikhonova@intel.com>
8754 Ilya Tocar <ilya.tocar@intel.com>
8755 Andrey Turetskiy <andrey.turetskiy@intel.com>
8756 Ilya Verbin <ilya.verbin@intel.com>
8757 Kirill Yukhin <kirill.yukhin@intel.com>
8758 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8760 * config/i386/sse.md
8761 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
8762 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
8763 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
8764 (define_insn "unpcklps128_mask"): New.
8766 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
8767 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8768 Anna Tikhonova <anna.tikhonova@intel.com>
8769 Ilya Tocar <ilya.tocar@intel.com>
8770 Andrey Turetskiy <andrey.turetskiy@intel.com>
8771 Ilya Verbin <ilya.verbin@intel.com>
8772 Kirill Yukhin <kirill.yukhin@intel.com>
8773 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8775 * config/i386/sse.md
8776 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
8777 (define_insn "avx512vl_unpckhpd128_mask"): New.
8778 (define_expand "avx_movddup256<mask_name>"): Add masking.
8779 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
8780 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
8781 (define_insn "avx512vl_unpcklpd128_mask"): New.
8783 2014-09-22 Joseph Myers <joseph@codesourcery.com>
8785 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8786 * doc/tm.texi: Regenerate.
8787 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
8788 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8789 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
8791 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8792 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8793 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8794 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8795 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
8797 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8798 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8799 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8800 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8801 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8802 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8803 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8804 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8805 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8806 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
8807 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
8810 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
8812 * tree-ssa-ccp.c (prop_value_d): Rename to ...
8813 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
8814 * ipa-prop.c (struct type_change_info): Rename to ...
8815 (prop_type_change_info): ... this; update uses.
8816 * ggc-page.c (globals): Rename to ...
8817 (static struct ggc_globals): ... this; update uses.
8818 * tree-ssa-loop-im.c (mem_ref): Rename to ...
8819 (im_mem_ref): ... this; update uses.
8820 * ggc-common.c (loc_descriptor): Rename to ...
8821 (ggc_loc_descriptor): ... this; update uses.
8822 * lra-eliminations.c (elim_table): Rename to ...
8823 (lra_elim_table): ... this; update uses.
8824 * bitmap.c (output_info): Rename to ...
8825 (bitmap_output_info): ... this; update uses.
8826 * gcse.c (expr): Rename to ...
8827 (gcse_expr) ... this; update uses.
8828 (occr): Rename to ...
8829 (gcse_occr): .. this; update uses.
8830 * tree-ssa-copy.c (prop_value_d): Rename to ...
8831 (prop_value_t): ... this.
8832 * predict.c (block_info_def): Rename to ...
8833 (block_info): ... this; update uses.
8834 (edge_info_def): Rename to ...
8835 (edge_info): ... this; update uses.
8836 * profile.c (bb_info): Rename to ...
8837 (bb_profile_info): ... this; update uses.
8838 * alloc-pool.c (output_info): Rename to ...
8839 (pool_output_info): ... this; update uses.
8840 * ipa-cp.c (topo_info): Rename to ..
8841 (ipa_topo_info): ... this; update uses.
8842 * tree-nrv.c (nrv_data): Rename to ...
8843 (nrv_data_t): ... this; update uses.
8844 * ipa-split.c (bb_info): Rename to ...
8845 (split_bb_info): ... this one.
8846 * profile.h (edge_info): Rename to ...
8847 (edge_profile_info): ... this one; update uses.
8848 * dse.c (bb_info): Rename to ...
8849 (dse_bb_info): ... this one; update uses.
8850 * cprop.c (occr): Rename to ...
8851 (cprop_occr): ... this one; update uses.
8852 (expr): Rename to ...
8853 (cprop_expr): ... this one; update uses.
8855 2014-09-22 Jason Merrill <jason@redhat.com>
8857 * Makefile.in (check-parallel-%): Add @.
8859 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
8861 * config/aarch64/geniterators.sh: New.
8862 * config/aarch64/iterators.md (VDQF_DF): New.
8863 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
8864 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
8866 2014-09-22 Peter A. Bigot <pab@pabigot.com>
8868 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
8869 -lnosys when -msim absent.
8871 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
8873 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
8875 2014-09-22 Richard Biener <rguenther@suse.de>
8877 * gimplify.c (gimplify_init_constructor): Do not leave
8878 non-GIMPLE vector constructors around.
8879 * tree-cfg.c (verify_gimple_assign_single): Verify that
8880 CONSTRUCTORs have gimple elements.
8882 2014-09-22 Jakub Jelinek <jakub@redhat.com>
8885 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
8886 insert a debug source bind stmt setting DEBUG_EXPR_DECL
8887 instead of a normal gimple assignment stmt.
8889 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
8891 * config/bfin/bfin.md: Fix use of constraints in define_split.
8893 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8895 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
8896 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
8898 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8900 * hard-reg-set.h: Include hash-table.h.
8901 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
8903 * target-globals.c (target_globals::~target_globals): Call
8904 hard_regs->finalize.
8905 * rtl.h (subreg_shape): New structure.
8906 (shape_of_subreg): New function.
8907 (simplifiable_subregs): Declare.
8908 * reginfo.c (simplifiable_subreg): New structure.
8909 (simplifiable_subregs_hasher): Likewise.
8910 (simplifiable_subregs): New function.
8911 (invalid_mode_changes): Delete.
8912 (alid_mode_changes, valid_mode_changes_obstack): New variables.
8913 (record_subregs_of_mode): Remove subregs_of_mode parameter.
8914 Record valid mode changes in valid_mode_changes.
8915 (find_subregs_of_mode): Remove subregs_of_mode parameter.
8916 Update calls to record_subregs_of_mode.
8917 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
8918 handling. Initialize new variables. Update call to
8919 find_subregs_of_mode.
8920 (invalid_mode_change_p): Check new variables instead of
8921 invalid_mode_changes.
8922 (finish_subregs_of_mode): Finalize new variables instead of
8923 invalid_mode_changes.
8924 (target_hard_regs::finalize): New function.
8925 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
8926 even when CLASS_CANNOT_CHANGE_MODE is undefined.
8928 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8930 * combine.c (subst): Use simplify_subreg_regno rather than
8931 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
8933 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8935 * rtl.h (subreg_info): Expand commentary
8936 * rtlanal.c (subreg_get_info): Likewise.
8938 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
8940 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
8941 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
8942 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
8944 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
8946 * config/arm/arm.c: #include "tm-constrs.h"
8947 (thumb1_size_rtx_costs): Adjust rtx costs.
8949 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
8951 * configure.ac (target_header_dir): Move block defining
8952 this to before the block setting inhibit_libc.
8953 (inhibit_libc): When considering $with_headers, just
8954 check it it's explicitly "no". If not, also check if
8955 $target_header_dir/stdio.h is present. If not, set
8957 * configure: Regenerate.
8959 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
8961 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
8963 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8965 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
8966 insn for divides by integer powers of two.
8967 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
8968 (mod<mode>3): Fix formatting.
8969 (three anonymous define_insn and two define_split): Delete.
8971 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8973 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
8974 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
8975 (floatdisf2_internal2): Ditto.
8976 (ashrdi3_no_power): Ditto. Fix formatting.
8978 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8980 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
8981 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
8984 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
8986 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
8987 constant, use addsi3 directly.
8988 (three anonymous define_insn, two define_split): Delete.
8989 (sub<mode>3): Move. Do not allow constant second operand.
8990 Generate different insn for constant first operand.
8991 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
8992 (subf<mode>3_imm): New.
8993 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
8994 (*plus_ltu<mode>): Only handle registers.
8995 (*plus_ltu<mode>_1): New. Handle integer third operand.
8996 (*plus_gtu<mode>): Only handle registers.
8997 (*plus_gtu<mode>_1): New. Handle integer third operand.
8999 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9001 * config/rs6000/rs6000.md (iorxor): New code_iterator.
9002 (iorxor): New code_attr.
9003 (IORXOR): New code_attr.
9004 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
9005 (ior<mode>3, xor<mode>3): Delete.
9006 (<iorxor><mode>3): New.
9007 (splitter for "big" integer ior, xor): New.
9008 (*bool<mode>3): Move. Also handle AND.
9009 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
9010 (splitter for "big" integer ior, xor): Delete.
9012 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9014 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
9015 (two anonymous define_insn and two define_split): Delete.
9016 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
9018 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9020 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
9021 (two anonymous define_insn and two define_split): Delete.
9022 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
9024 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9026 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
9028 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
9030 * config/rs6000/predicates.md (ca_operand): Allow subregs.
9031 (input_operand): Do not allow ca_operand.
9032 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
9033 carry bit, allow SImode and Pmode.
9034 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
9036 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
9038 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
9039 clobbered registers using clobber_reg. Remove UNSPEC decoration.
9040 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
9041 (*call_rex64_ms_sysv): Remove.
9042 (*call_value_rex64_ms_sysv): Ditto.
9043 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
9045 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
9047 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
9050 2014-09-20 Andreas Schwab <schwab@suse.de>
9052 * config/ia64/ia64.md: Remove constraints from define_split
9055 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9057 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
9058 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
9059 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
9060 (get_dynamic_type): Remove.
9061 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
9062 (clear_speculation): Bring to ipa-deivrt.h
9063 (get_class_context): Rename to ...
9064 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
9065 (contains_type_p): Update.
9066 (get_dynamic_type): Rename to ...
9067 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
9068 (possible_polymorphic_call_targets): UPdate.
9069 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
9070 * ipa-prop.c (ipa_analyze_call_uses): Update.
9072 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9074 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
9075 privatize dynamic TLS variables.
9077 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9079 * diagnostic.c (warning_n): New function.
9080 * diagnostic-core.h (warning_n): Declare.
9081 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
9082 output dynamic counts when available.
9084 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9086 PR tree-optimization/63255
9087 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
9088 issue in setting body_removed flag.
9090 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9093 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
9094 that visibility change is possible
9095 (handle_weakref_attribute): Likewise.
9096 * cgraph.h (symtab_node): Add method get_create and
9097 field refuse_visibility_changes.
9098 (symtab_node::get_create): New method.
9099 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
9100 * varasm.c (mark_weak): Verify that visibility change is
9103 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
9105 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
9106 for base_reg_operand to be common between LO_SUM and PLUS.
9107 (fusion_gpr_mem_combo): New predicate to match a fused address
9108 that combines the addis and memory offset address.
9110 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
9112 (emit_fusion_gpr_load): Likewise.
9114 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
9115 signature to pass each argument separately, rather than
9116 using an operands array. Rewrite the insns found by peephole2 to
9117 be a single insn, rather than hoping the insns will still be
9118 together when the peephole pass is done. Drop being called via a
9120 (emit_fusion_gpr_load): Change calling signature to be called from
9121 the fusion_gpr_load_<mode> insns with a combined memory address
9122 instead of the peephole pass passing the addis and offset
9125 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
9127 (power8 fusion peephole): Drop support for doing power8 via a
9128 normal peephole that was created by the peephole2 pass.
9129 (power8 fusion peephole2): Create a new insn with the fused
9130 address, so that the fused operation is kept together after
9131 register allocation is done.
9132 (fusion_gpr_load_<mode>): Likewise.
9134 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
9137 * tree.c (need_assembler_name_p): Do not mangle variadic types.
9139 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
9141 * recog.c (scratch_operand): Do not simply allow all hard registers:
9142 only allow those that are allocatable.
9144 2014-09-19 Felix Yang <felix.yang@huawei.com>
9146 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
9147 comments and fix spacing to conform to coding style.
9149 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9151 * genrecog.c (validate_pattern): Allow empty constraints in
9154 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
9156 * dwarf2out.c (decl_ultimate_origin): Update comment.
9157 * tree.c (block_ultimate_origin): Same.
9159 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9161 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
9162 Update GCC version name to GCC 5.
9163 (rs6000_function_arg_boundary): Likewise.
9164 (rs6000_function_arg): Likewise.
9166 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9168 * config/sh/sh.md: Fix use of constraints in define_split.
9170 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
9173 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
9175 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9177 * doc/md.texi (Modifiers): Consistently use "read/write"
9178 nomenclature rather than "input/output".
9179 * genrecog.c (constraints_supported_in_insn_p): New.
9180 (validate_pattern): If needed, also check constraints on
9181 MATCH_SCRATCH operands.
9182 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
9183 operands with no '=' or '+' modifier.
9185 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
9187 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
9188 scratch register as written.
9190 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9192 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
9195 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9197 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
9200 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9203 * config/s390/s390.c (s390_emit_epilogue): When doing the return
9204 address load optimization force s390_optimize_prologue to leave it
9205 that way. Only do the optimization if we already decided to push
9206 r14 into a stack slot.
9208 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
9210 * asan.c (build_check_stmt): Alignment arg was added.
9211 (asan_expand_check_ifn): Optimization for alignment >= 8.
9213 2014-09-19 Olivier Hainque <hainque@adacore.com>
9215 * config/i386/vxworksae.h: Remove obsolete definitions.
9216 (STACK_CHECK_PROTECT): Define.
9217 * config/i386/vx-common.h: Remove. Merge contents within
9218 config/i386/vxworks.h.
9219 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
9222 2014-09-19 Olivier Hainque <hainque@adacore.com>
9224 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
9225 * config/rs6000/t-vxworksmils: New file.
9226 * config/rs6000/vxworksmils.h: New file.
9228 2014-09-19 Olivier Hainque <hainque@adacore.com>
9230 * varasm.c (default_section_type_flags): Flag .persistent.bss
9231 sections as SECTION_BSS.
9233 2014-09-19 Nick Clifton <nickc@redhat.com>
9235 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
9236 pop'ed registers so that DCE does not eliminate them.
9238 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
9241 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
9243 2014-09-18 Joseph Myers <joseph@codesourcery.com>
9245 * system.h (LIBGCC2_TF_CEXT): Poison.
9246 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
9247 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
9248 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
9249 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
9250 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
9251 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
9252 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
9253 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
9254 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
9256 2014-09-19 Kito Cheng <kito@0xlab.org>
9258 * except.h: Fix header guard.
9259 * addresses.h: Add missing header guard.
9260 * cfghooks.h: Likewise.
9261 * collect-utils.h: Likewise.
9262 * collect2-aix.h: Likewise.
9263 * conditions.h: Likewise.
9264 * cselib.h: Likewise.
9265 * dwarf2asm.h: Likewise.
9266 * graphds.h: Likewise.
9267 * graphite-scop-detection.h: Likewise.
9268 * gsyms.h: Likewise.
9269 * hw-doloop.h: Likewise.
9270 * incpath.h: Likewise.
9271 * ipa-inline.h: Likewise.
9272 * ipa-ref.h: Likewise.
9273 * ira-int.h: Likewise.
9275 * lra-int.h: Likewise.
9277 * lto-section-names.h: Likewise.
9278 * read-md.h: Likewise.
9279 * reload.h: Likewise.
9280 * rtl-error.h: Likewise.
9281 * sdbout.h: Likewise.
9282 * targhooks.h: Likewise.
9283 * tree-affine.h: Likewise.
9284 * xcoff.h: Likewise.
9285 * xcoffout.h: Likewise.
9287 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
9290 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
9293 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
9296 * lra.c (lra): Call recog_init.
9298 2014-09-18 Jakub Jelinek <jakub@redhat.com>
9301 * asan.c (transform_statements): Don't instrument clobber statements.
9303 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9305 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
9306 to neon_load1_1reg<q>.
9308 2014-09-17 Jakub Jelinek <jakub@redhat.com>
9311 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
9312 if there are only debug stmts after the noreturn call, instead
9313 remove the debug stmts.
9315 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
9317 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
9318 (odr_types_equivalent_p): Use pair hash.
9319 (odr_subtypes_equivalent_p): Likewise, do structural compare
9320 on ODR types that may be mismatched.
9321 (warn_odr): Support warning when only one field is given.
9322 (odr_types_equivalent_p): Strenghten comparsions made;
9324 (add_type_duplicate): Update VISITED hash set.
9326 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
9328 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
9329 Enable selection of 'posix' or no thread model.
9331 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
9333 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
9334 when architecture is older than ARMv7.
9336 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
9339 * config/pa/pa.c (pa_function_value): Directly handle aggregates
9340 that fit exactly in a word or double word.
9342 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
9344 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
9347 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
9348 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9349 Anna Tikhonova <anna.tikhonova@intel.com>
9350 Ilya Tocar <ilya.tocar@intel.com>
9351 Andrey Turetskiy <andrey.turetskiy@intel.com>
9352 Ilya Verbin <ilya.verbin@intel.com>
9353 Kirill Yukhin <kirill.yukhin@intel.com>
9354 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9356 * config/i386/i386.c
9357 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
9358 * config/i386/sse.md
9359 (define_mode_iterator VI48F_256): New.
9360 (define_mode_attr extract_type): Ditto.
9361 (define_mode_attr extract_suf): Ditto.
9362 (define_mode_iterator AVX512_VEC): Ditto.
9364 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
9366 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
9368 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
9370 (define_mode_attr extract_type_2): Ditto.
9371 (define_mode_attr extract_suf_2): Ditto.
9372 (define_mode_iterator AVX512_VEC_2): Ditto.
9374 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
9375 AVX512_VEC_2 mode iterator.
9376 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
9377 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
9378 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
9379 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
9380 (define_split for V16FI mode): Ditto.
9381 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
9382 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
9383 (define_split for VI8F_256 mode): Ditto.
9384 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
9385 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
9386 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
9387 (define_split for VI4F_256 mode): Ditto.
9388 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
9389 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
9390 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
9391 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
9392 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
9393 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
9394 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
9395 Update `type' attribute, remove explicit `memory' attribute calculation.
9397 2014-09-16 Kito Cheng <kito@0xlab.org>
9399 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
9400 ira_spilled_reg_stack_slots_num if using lra.
9401 (do_reload): Remove release ira_spilled_reg_stack_slots part.
9402 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
9403 make sure not using lra.
9404 (ira_reuse_stack_slot): Likewise.
9405 (ira_mark_new_stack_slot): Likewise.
9407 2014-09-15 Andi Kleen <ak@linux.intel.com>
9409 * function.c (allocate_struct_function): Force
9410 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
9411 profiling is disabled.
9413 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
9415 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
9416 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
9417 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
9418 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
9419 macro with statically checked member functions.
9420 * rtl.h (rtx_insn::deleted): New method.
9421 (rtx_insn::set_deleted): Likewise.
9422 (rtx_insn::set_undeleted): Likewise.
9423 (INSN_DELETED_P): Remove.
9425 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
9427 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
9428 result of emit_jump_insn_before to a new variable.
9429 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
9430 (mark_jump_label_1): Likewise.
9431 (mark_jump_label_asm): Likewise.
9432 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
9433 * rtl.h (mark_jump_label): Adjust.
9435 2014-09-15 Jakub Jelinek <jakub@redhat.com>
9437 * Makefile.in (dg_target_exps): Remove.
9438 (check_gcc_parallelize): Change to just an upper bound number.
9439 (check-%-subtargets): Always print the non-parallelized goals.
9440 (check_p_vars, check_p_comma, check_p_subwork): Remove.
9441 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
9442 check_p_numbers3, check_p_numbers4, check_p_numbers5,
9443 check_p_numbers6): New variables.
9444 (check_p_numbers): Set to sequence from 1 to 9999.
9445 (check_p_subdirs): Set to sequence from 1 to minimum of
9446 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
9448 (check-%, check-parallel-%): Rewritten so that for parallelized
9449 testing each job runs all the *.exp files, with
9450 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
9452 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9454 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
9456 (arc_sets_cc_p): Likewise.
9457 * config/arc/arc.c (arc_print_operand): Use methods of
9458 "final_sequence" for clarity, and to enable strengthening of
9459 locals "jump" and "delay" from rtx to rtx_insn *.
9460 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
9461 rtx_insn *; use method of rtx_sequence for typesafety.
9462 (arc_get_insn_variants): Use insn method of rtx_sequence for
9464 (arc_pad_return): Likewise.
9465 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
9466 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
9467 dyn_cast to rtx_sequence *, using insn method for typesafety.
9468 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
9469 rtx_sequence * and use insn method when invoking get_attr_length.
9470 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
9471 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
9472 rtx_sequence *, introducing a local "seq", using its insn method
9473 from typesafety and clarity.
9474 (add_sched_insns_for_speculation): Strengthen local "next" from
9476 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
9477 (predicate_insn): Likewise.
9478 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
9480 * config/cris/cris.c (cris_notice_update_cc): Likewise.
9481 * config/epiphany/epiphany-protos.h
9482 (extern void epiphany_insert_mode_switch_use): Likewise for param
9484 (get_attr_sched_use_fpu): Likewise for param.
9485 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
9486 Likewise for param "insn".
9487 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
9488 param "insn" of "target_insert_mode_switch_use" callback.
9489 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
9490 (frv_issues_to_branch_unit_p): Likewise.
9491 (frv_pack_insn_p): Likewise.
9492 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
9493 const rtx * (i.e. mutable rtx_def * const *) to
9495 * config/i386/i386-protos.h (standard_sse_constant_opcode):
9496 Strengthen first param from rtx to rtx_insn *.
9497 (output_fix_trunc): Likewise.
9498 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
9499 (output_fix_trunc): Likewise.
9500 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
9502 (min_insn_size): Likewise for param "insn".
9503 (get_mem_group): Likewise.
9505 (get_insn_path): Likewise.
9506 (get_insn_group): Likewise.
9507 (count_num_restricted): Likewise.
9508 (fits_dispatch_window): Likewise.
9509 (add_insn_window): Likewise.
9510 (add_to_dispatch_window): Likewise.
9511 (debug_insn_dispatch_info_file): Likewise.
9512 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
9514 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
9515 "cmp" and local "prev".
9516 (m32c_output_compare): Likewise for param "insn".
9517 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
9518 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
9519 (define_predicate "large_insn_p"): Likewise.
9520 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
9521 param from rtx to rtx_insn *.
9522 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
9523 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
9524 (m68k_sched_attr_size): Likewise.
9525 (sched_get_opxy_mem_type): Likewise for param "insn".
9526 (m68k_sched_attr_op_mem): Likewise.
9527 (sched_mem_operand_p): Likewise.
9528 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
9529 * config/mep/mep.c (mep_multi_slot): Likewise.
9530 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
9532 (mips_sync_loop_insns): Likewise.
9533 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
9534 method of "final_sequence" for typesafety.
9535 (mips_process_sync_loop): Strengthen param "insn" from rtx to
9537 (mips_output_sync_loop): Likewise.
9538 (mips_sync_loop_insns): Likewise.
9539 (mips_74k_agen_init): Likewise.
9540 (mips_sched_init): Use NULL rather than NULL_RTX when working with
9542 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
9543 Strengthen param "insn" from rtx to rtx_insn *.
9544 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
9546 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
9548 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
9549 "insn". Use method of rtx_sequence for typesafety.
9550 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
9552 (branch_needs_nop_p): Likewise.
9553 (use_skip_p): Likewise.
9554 (pa_insn_refs_are_delayed): Likewise.
9555 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
9556 for locals "insn", "ninsn".
9557 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
9559 (is_cracked_insn): Likewise.
9560 (is_branch_slot_insn): Likewise.
9561 (is_nonpipeline_insn): Likewise.
9562 (insn_terminates_group_p): Likewise.
9563 (insn_must_be_first_in_group): Likewise.
9564 (insn_must_be_last_in_group): Likewise.
9565 (force_new_group): Likewise for param "next_insn".
9566 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
9568 (s390_sched_score): Likewise.
9569 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
9570 (rtx sfunc_uses_reg): Likewise for sole param.
9571 * config/sh/sh.c (sh_print_operand): Use insn method of
9572 final_sequence for typesafety.
9573 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
9574 Use insn method of final_sequence for typesafety.
9575 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
9576 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
9578 (eligible_for_return_delay): Likewise.
9579 (eligible_for_sibcall_delay): Likewise.
9580 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
9581 (eligible_for_return_delay): Likewise.
9582 (eligible_for_sibcall_delay): Likewise.
9583 * config/stormy16/stormy16-protos.h
9584 (xstormy16_output_cbranch_hi): Likewise for final param.
9585 (xstormy16_output_cbranch_si): Likewise.
9586 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
9587 (xstormy16_output_cbranch_si): Likewise.
9588 * config/v850/v850-protos.h (notice_update_cc): Likewise.
9589 * config/v850/v850.c (notice_update_cc): Likewise.
9591 * final.c (get_attr_length_1): Strengthen param "insn" and param
9592 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
9593 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
9594 (get_attr_min_length): Likewise.
9595 (shorten_branches): Likewise for signature of locals "length_fun"
9596 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
9597 from a checked cast and use its methods for clarity and to enable
9598 strengthening local "inner_insn" from rtx to rtx_insn *.
9599 * genattr.c (gen_attr): When writing out the prototypes of the
9600 various generated "get_attr_" functions, strengthen the params of
9601 the non-const functions from rtx to rtx_insn *.
9602 Similarly, strengthen the params of insn_default_length,
9603 insn_min_length, insn_variable_length_p, insn_current_length.
9604 (main): Similarly, strengthen the param of num_delay_slots,
9605 internal_dfa_insn_code, insn_default_latency, bypass_p,
9606 insn_latency, min_issue_delay, print_reservation,
9607 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
9608 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
9609 to hook_int_rtx_insn_unreachable.
9610 * genattrtab.c (write_attr_get): When writing out the generated
9611 "get_attr_" functions, strengthen the param "insn" from rtx to
9612 rtx_insn *, eliminating a checked cast.
9613 (make_automaton_attrs): When writing out prototypes of
9614 "internal_dfa_insn_code_", "insn_default_latency_" functions
9615 and the "internal_dfa_insn_code" and "insn_default_latency"
9616 callbacks, strengthen their params from rtx to rtx_insn *
9617 * genautomata.c (output_internal_insn_code_evaluation): When
9618 writing out code, add a checked cast from rtx to rtx_insn * when
9619 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
9620 (output_dfa_insn_code_func): Strengthen param of generated
9621 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
9622 (output_trans_func): Likewise for generated function
9624 (output_internal_insn_latency_func): When writing out generated
9625 function "internal_insn_latency", rename params from "insn" and
9626 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
9627 locals "insn" and "insn2" as rtx_insn * with checked casts once
9628 we've proven that we're not dealing with const0_rtx.
9629 (output_insn_latency_func): Strengthen param of generated
9630 function "insn_latency" from rtx to rtx_insn *.
9631 (output_print_reservation_func): Likewise for generated function
9632 "print_reservation".
9633 (output_insn_has_dfa_reservation_p): Likewise for generated
9634 function "insn_has_dfa_reservation_p".
9635 * hooks.c (hook_int_rtx_unreachable): Rename to...
9636 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
9637 from rtx to rtx_insn *.
9638 * hooks.h (hook_int_rtx_unreachable): Likewise.
9639 (extern int hook_int_rtx_insn_unreachable): Likewise.
9640 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
9641 (get_attr_min_length): Likewise.
9642 * recog.c (get_enabled_alternatives): Likewise.
9643 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
9644 * reorg.c (find_end_label): Introduce local rtx "pat" and
9645 strengthen local "insn" from rtx to rtx_insn *.
9646 (redundant_insn): Use insn method of "seq" rather than element for
9647 typesafety; strengthen local "control" from rtx to rtx_insn *.
9648 * resource.c (mark_referenced_resources): Add checked cast to
9649 rtx_insn * within INSN/JUMP_INSN case.
9650 (mark_set_resources): Likewise.
9651 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
9654 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9656 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
9657 param "label" from rtx to rtx_insn *.
9658 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
9660 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
9661 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
9662 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
9663 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
9664 * final.c (default_label_align_after_barrier_max_skip): Strengthen
9665 param from rtx to rtx_insn *.
9666 (default_loop_align_max_skip): Likewise.
9667 (default_label_align_max_skip): Likewise.
9668 (default_jump_align_max_skip): Likewise.
9669 * target.def (label_align_after_barrier_max_skip): Likewise.
9670 (loop_align_max_skip): Likewise.
9671 (label_align_max_skip): Likewise.
9672 (jump_align_max_skip): Likewise.
9673 * targhooks.h (default_label_align_after_barrier_max_skip):
9675 (default_loop_align_max_skip): Likewise.
9676 (default_label_align_max_skip): Likewise.
9677 (default_jump_align_max_skip): Likewise.
9679 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9681 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
9682 from const_rtx to const rtx_insn *. Update union members from rtx
9684 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
9685 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
9686 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
9687 strengthen both params from const_rtx to const rtx_insn *.
9688 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
9689 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
9690 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
9692 * target.def (can_follow_jump): Strengthen both params from
9693 const_rtx to const rtx_insn *, and update default implementation
9694 from hook_bool_const_rtx_const_rtx_true to
9695 hook_bool_const_rtx_insn_const_rtx_insn_true.
9697 2014-09-15 David Malcolm <dmalcolm@redhat.com>
9699 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
9700 "insn" from rtx to rtx_insn *.
9701 * sched-int.h (deps_start_bb): Likewise for 2nd param.
9703 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
9704 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9705 Anna Tikhonova <anna.tikhonova@intel.com>
9706 Ilya Tocar <ilya.tocar@intel.com>
9707 Andrey Turetskiy <andrey.turetskiy@intel.com>
9708 Ilya Verbin <ilya.verbin@intel.com>
9709 Kirill Yukhin <kirill.yukhin@intel.com>
9710 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9712 * config/i386/sse.md
9713 (define_insn "vcvtph2ps<mask_name>"): Add masking.
9714 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
9715 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
9716 (define_expand "vcvtps2ph_mask"): New.
9717 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
9718 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
9719 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
9721 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
9722 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9723 Anna Tikhonova <anna.tikhonova@intel.com>
9724 Ilya Tocar <ilya.tocar@intel.com>
9725 Andrey Turetskiy <andrey.turetskiy@intel.com>
9726 Ilya Verbin <ilya.verbin@intel.com>
9727 Kirill Yukhin <kirill.yukhin@intel.com>
9728 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9730 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
9732 (define_mode_iterator VI24_AVX512BW_1): Ditto.
9733 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
9734 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
9735 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
9736 also for TARGET_AVX512VL.
9737 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
9739 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
9741 * doc/install.texi (Options specification): add
9742 --disable-libsanitizer item.
9744 2014-09-14 James Clarke <jrtc27@jrtc27.com>
9745 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9748 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
9750 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
9751 kernel version check to avoid incrementing it after every major OS X
9753 (darwin_default_min_version): Avoid static memory buffer.
9755 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
9757 * tree.c (need_assembler_name_p): Store C++ type mangling only
9760 2014-09-13 Marek Polacek <polacek@redhat.com>
9762 * tree.c (protected_set_expr_location): Don't check whether T is
9765 2014-09-12 DJ Delorie <dj@redhat.com>
9767 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
9768 (extend_and_shift1_hipsi2): Likewise.
9769 (extend_and_shift2_hipsi2): Likewise.
9771 2014-09-12 David Malcolm <dmalcolm@redhat.com>
9773 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
9774 with NULL when dealing with an insn.
9775 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
9776 from rtx to rtx_insn *.
9777 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
9778 const_rtx to const rtx_insn *.
9779 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
9781 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
9783 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
9786 2014-09-12 Joseph Myers <joseph@codesourcery.com>
9788 * target.def (libgcc_floating_mode_supported_p): New hook.
9789 * targhooks.c (default_libgcc_floating_mode_supported_p): New
9791 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
9792 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
9793 (LIBGCC2_HAS_TF_MODE): Remove.
9794 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
9795 * doc/tm.texi: Regenerate.
9796 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
9798 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
9799 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
9800 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
9801 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
9802 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9803 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
9804 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
9805 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
9806 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
9807 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
9809 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
9810 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9811 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9812 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9813 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9814 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9815 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9816 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
9817 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
9818 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
9819 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
9820 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
9821 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
9822 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
9824 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
9826 (ia64_libgcc_floating_mode_supported_p): New function.
9827 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
9828 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
9829 (IA64_NO_LIBGCC_TFMODE): Define.
9830 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
9831 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
9833 (pdp11_scalar_mode_supported_p): New function.
9834 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
9835 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
9837 2014-09-12 Richard Biener <rguenther@suse.de>
9840 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
9842 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
9844 * tree.c (integer_each_onep): New function.
9845 * tree.h (integer_each_onep): Declare it.
9846 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
9847 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
9848 (X & 1) == 0 for vector and complex.
9850 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9852 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
9854 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
9855 cost to spilling from integer to FP registers.
9857 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9859 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
9861 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
9862 are now handled correctly.
9864 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9866 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
9867 handling of CALLER_SAVE_REGS and POINTER_REGS.
9869 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
9871 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
9872 the number of hard registers.
9874 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
9875 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9876 Anna Tikhonova <anna.tikhonova@intel.com>
9877 Ilya Tocar <ilya.tocar@intel.com>
9878 Andrey Turetskiy <andrey.turetskiy@intel.com>
9879 Ilya Verbin <ilya.verbin@intel.com>
9880 Kirill Yukhin <kirill.yukhin@intel.com>
9881 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9883 * config/i386/sse.md
9884 (define_mode_iterator VI48_AVX512VL): New.
9885 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
9886 "avx512f_vternlog<mode>_maskz" and update mode iterator.
9887 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
9888 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
9889 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
9890 "avx512f_vternlog<mode>_mask" and update mode iterator.
9891 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
9892 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
9894 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
9895 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
9896 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
9897 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
9898 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
9899 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
9901 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
9902 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9903 Anna Tikhonova <anna.tikhonova@intel.com>
9904 Ilya Tocar <ilya.tocar@intel.com>
9905 Andrey Turetskiy <andrey.turetskiy@intel.com>
9906 Ilya Verbin <ilya.verbin@intel.com>
9907 Kirill Yukhin <kirill.yukhin@intel.com>
9908 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9910 * config/i386/sse.md (VI128_256): Delete.
9911 (define_mode_iterator VI124_256): New.
9912 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
9913 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
9914 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
9915 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
9916 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
9917 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
9918 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
9919 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
9921 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
9922 in presence of AVX-512.
9924 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
9925 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9926 Anna Tikhonova <anna.tikhonova@intel.com>
9927 Ilya Tocar <ilya.tocar@intel.com>
9928 Andrey Turetskiy <andrey.turetskiy@intel.com>
9929 Ilya Verbin <ilya.verbin@intel.com>
9930 Kirill Yukhin <kirill.yukhin@intel.com>
9931 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9933 * config/i386/sse.md
9934 (define_expand "<avx512>_gathersi<mode>"): Rename from
9935 "avx512f_gathersi<mode>".
9936 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
9937 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
9938 (define_expand "<avx512>_gatherdi<mode>"): Rename from
9939 "avx512f_gatherdi<mode>".
9940 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
9941 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
9943 (define_expand "<avx512>_scattersi<mode>"): Rename from
9944 "avx512f_scattersi<mode>".
9945 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
9946 (define_expand "<avx512>_scatterdi<mode>"): Rename from
9947 "avx512f_scatterdi<mode>".
9948 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
9950 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
9952 * ira.h (ira_finish_once): Delete.
9953 * ira-int.h (target_ira_int::~target_ira_int): Declare.
9954 (target_ira_int::free_ira_costs): Likewise.
9955 (target_ira_int::free_register_move_costs): Likewise.
9956 (ira_finish_costs_once): Delete.
9957 * ira.c (free_register_move_costs): Replace with...
9958 (target_ira_int::free_register_move_costs): ...this new function.
9959 (target_ira_int::~target_ira_int): Define.
9960 (ira_init): Call free_register_move_costs as a member function rather
9961 than a global function.
9962 (ira_finish_once): Delete.
9963 * ira-costs.c (free_ira_costs): Replace with...
9964 (target_ira_int::free_ira_costs): ...this new function.
9965 (ira_init_costs): Call free_ira_costs as a member function rather
9966 than a global function.
9967 (ira_finish_costs_once): Delete.
9968 * target-globals.c (target_globals::~target_globals): Call the
9969 target_ira_int destructor.
9970 * toplev.c: Include lra.h.
9971 (finalize): Call lra_finish_once rather than ira_finish_once.
9973 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
9975 * common.opt (flto-odr-type-merging): New flag.
9976 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
9977 (types_same_for_odr): Likewise.
9978 (odr_subtypes_equivalent_p): Likewise.
9979 (add_type_duplicate): Do not walk type variants.
9980 (register_odr_type): New function.
9981 * ipa-utils.h (register_odr_type): Declare.
9982 (odr_type_p): New function.
9983 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
9985 * doc/invoke.texi (-flto-odr-type-merging): Document.
9986 * tree.c (need_assembler_name_p): Compute ODR names when asked
9988 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
9990 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
9993 * config/i386/i386.c (ix86_option_override_internal): Also turn
9994 off OPTION_MASK_ABI_X32 for -m16.
9996 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
9998 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
10001 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
10004 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
10005 Directly forward to __*_DENORM_MIN__.
10007 2014-09-11 David Malcolm <dmalcolm@redhat.com>
10009 * rtl.h (LABEL_REF_LABEL): New macro.
10011 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
10012 of XEXP (, 0), where we know that we have a LABEL_REF.
10013 * cfgbuild.c (make_edges): Likewise.
10014 (purge_dead_tablejump_edges): Likewise.
10015 * cfgexpand.c (convert_debug_memory_address): Likewise.
10016 * cfgrtl.c (patch_jump_insn): Likewise.
10017 * combine.c (distribute_notes): Likewise.
10018 * cse.c (hash_rtx_cb): Likewise.
10019 (exp_equiv_p): Likewise.
10020 (fold_rtx): Likewise.
10021 (check_for_label_ref): Likewise.
10022 * cselib.c (rtx_equal_for_cselib_1): Likewise.
10023 (cselib_hash_rtx): Likewise.
10024 * emit-rtl.c (mark_label_nuses): Likewise.
10025 * explow.c (convert_memory_address_addr_space): Likewise.
10026 * final.c (output_asm_label): Likewise.
10027 (output_addr_const): Likewise.
10028 * gcse.c (add_label_notes): Likewise.
10029 * genconfig.c (walk_insn_part): Likewise.
10030 * genrecog.c (validate_pattern): Likewise.
10031 * ifcvt.c (cond_exec_get_condition): Likewise.
10032 (noce_emit_store_flag): Likewise.
10033 (noce_get_alt_condition): Likewise.
10034 (noce_get_condition): Likewise.
10035 * jump.c (maybe_propagate_label_ref): Likewise.
10036 (mark_jump_label_1): Likewise.
10037 (redirect_exp_1): Likewise.
10038 (rtx_renumbered_equal_p): Likewise.
10039 * lra-constraints.c (operands_match_p): Likewise.
10040 * reload.c (operands_match_p): Likewise.
10041 (find_reloads): Likewise.
10042 * reload1.c (set_label_offsets): Likewise.
10043 * reorg.c (get_branch_condition): Likewise.
10044 * rtl.c (rtx_equal_p_cb): Likewise.
10045 (rtx_equal_p): Likewise.
10046 * rtlanal.c (reg_mentioned_p): Likewise.
10047 (rtx_referenced_p): Likewise.
10048 (get_condition): Likewise.
10049 * sched-vis.c (print_value): Likewise.
10050 * varasm.c (const_hash_1): Likewise.
10051 (compare_constant): Likewise.
10052 (const_rtx_hash_1): Likewise.
10053 (output_constant_pool_1): Likewise.
10055 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
10057 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
10058 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
10060 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
10061 cr6_test_for_lt_reverse): Ditto.
10063 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
10066 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
10068 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
10070 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
10071 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
10072 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
10073 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
10076 (aarch64_fold_builtin): Remove all reinterpret cases.
10078 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
10080 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
10082 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
10083 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
10084 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
10085 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
10086 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
10087 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
10088 aarch64_reinterpretv2df<mode>): Delete.
10090 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
10092 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
10093 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
10094 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
10095 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
10096 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
10097 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
10098 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
10099 vreinterpret_u32_f64): Use cast.
10101 * config/aarch64/iterators.md (VD_RE): Delete.
10103 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
10105 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
10106 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
10107 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
10108 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
10109 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
10110 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
10111 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
10112 Replace inline assembler with __aarch64_vset_lane_any.
10114 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
10116 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
10118 (vmull_high_lane_s32): Likewise.
10119 (vmull_high_lane_u16): Likewise.
10120 (vmull_high_lane_u32): Likewise.
10122 2014-09-11 Jason Merrill <jason@redhat.com>
10125 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
10127 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
10130 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
10131 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
10132 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
10134 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
10135 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10136 Anna Tikhonova <anna.tikhonova@intel.com>
10137 Ilya Tocar <ilya.tocar@intel.com>
10138 Andrey Turetskiy <andrey.turetskiy@intel.com>
10139 Ilya Verbin <ilya.verbin@intel.com>
10140 Kirill Yukhin <kirill.yukhin@intel.com>
10141 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10143 * config/i386/sse.md
10144 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
10145 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
10146 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
10148 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
10149 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
10151 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
10153 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
10154 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
10155 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
10156 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
10157 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
10158 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
10159 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
10160 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
10162 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
10164 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
10165 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
10166 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
10168 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
10170 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
10171 to access removed nodes.
10173 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
10175 PR tree-optimization/63186
10176 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
10177 (mark_nonssa_use): Likewise.
10178 (verify_non_ssa_vars): Verify all header blocks for label
10181 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
10182 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10183 Anna Tikhonova <anna.tikhonova@intel.com>
10184 Ilya Tocar <ilya.tocar@intel.com>
10185 Andrey Turetskiy <andrey.turetskiy@intel.com>
10186 Ilya Verbin <ilya.verbin@intel.com>
10187 Kirill Yukhin <kirill.yukhin@intel.com>
10188 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10190 * config/i386/sse.md
10191 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
10192 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
10193 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
10194 "<avx2_avx512f>_permvar<mode><mask_name>".
10195 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
10196 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
10197 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
10198 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
10200 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
10201 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
10202 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
10203 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
10205 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
10207 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
10208 V2DF, V4SF, DF, and DI modes.
10209 (vsx_fmav2df2): Likewise.
10210 (vsx_float_fix_<mode>2): Likewise.
10211 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
10213 2014-09-10 Xinliang David Li <davidxl@google.com>
10216 * config/arm/arm.md (movcond_addsi): Handle case where source
10217 and target operands are the same.
10219 2014-09-10 David Malcolm <dmalcolm@redhat.com>
10221 * final.c (this_is_asm_operands): Strengthen this variable from
10222 rtx to const rtx_insn *.
10223 * output.h (this_is_asm_operands): Likewise.
10224 * rtl-error.c (location_for_asm): Strengthen param "insn" from
10225 const_rtx to const rtx_insn *.
10226 (diagnostic_for_asm): Likewise.
10227 * rtl-error.h (error_for_asm): Likewise.
10228 (warning_for_asm): Likewise.
10230 2014-09-10 David Malcolm <dmalcolm@redhat.com>
10232 * genextract.c (print_header): When writing out insn_extract to
10233 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
10234 * recog.h (insn_extract): Strengthen the param from rtx to
10237 2014-09-10 Mike Stump <mikestump@comcast.net>
10239 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
10242 2014-09-10 Martin Jambor <mjambor@suse.cz>
10244 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
10245 (analyze): Do not set analyze flag if expand_thunk returns false;.
10246 (create_wrapper): Likewise.
10247 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
10249 2014-09-10 Martin Jambor <mjambor@suse.cz>
10252 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
10253 new decl properly. Analyze the new thunk if it is expanded.
10255 2014-09-10 Andreas Schwab <schwab@suse.de>
10257 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
10258 [USED_FOR_TARGET]: Define.
10260 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
10262 * config/mips/mips.c (mips_secondary_reload_class): Handle
10265 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
10267 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
10270 2014-09-10 Jakub Jelinek <jakub@redhat.com>
10272 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
10273 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
10274 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
10275 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
10276 flag_delete_null_pointer_checks for them.
10277 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
10278 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
10279 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
10280 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
10281 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
10283 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
10284 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
10285 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
10286 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
10287 * doc/invoke.texi (-fsanitize=nonnull-attribute,
10288 -fsanitize=returns-nonnull-attribute): Document.
10290 * ubsan.h (struct ubsan_mismatch_data): Removed.
10291 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
10292 * ubsan.c (ubsan_source_location): For unknown locations,
10293 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
10294 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
10295 Allow more than one location and arbitrary extra arguments passed
10296 in ... instead of through MISMATCH pointer.
10297 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
10298 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
10299 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
10302 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
10303 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10304 Anna Tikhonova <anna.tikhonova@intel.com>
10305 Ilya Tocar <ilya.tocar@intel.com>
10306 Andrey Turetskiy <andrey.turetskiy@intel.com>
10307 Ilya Verbin <ilya.verbin@intel.com>
10308 Kirill Yukhin <kirill.yukhin@intel.com>
10309 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10311 * config/i386/sse.md
10312 (define_mode_iterator VI48F): New.
10313 (define_insn "<avx512>_compress<mode>_mask"): Rename from
10314 "avx512f_compress<mode>_mask" and update mode iterator.
10315 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
10316 "avx512f_compressstore<mode>_mask" and update mode iterator.
10317 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
10318 "avx512f_expand<mode>_maskz" and update mode iterator.
10319 (define_insn "<avx512>_expand<mode>_mask"): Rename from
10320 "avx512f_expand<mode>_mask" and update mode iterator.
10322 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
10323 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10324 Anna Tikhonova <anna.tikhonova@intel.com>
10325 Ilya Tocar <ilya.tocar@intel.com>
10326 Andrey Turetskiy <andrey.turetskiy@intel.com>
10327 Ilya Verbin <ilya.verbin@intel.com>
10328 Kirill Yukhin <kirill.yukhin@intel.com>
10329 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10331 * config/i386/i386.c
10332 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
10333 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
10334 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
10335 avx512dq_rangepv4sf_mask.
10336 * config/i386/sse.md
10337 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
10339 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
10340 (define_insn "reduces<mode>"): Ditto.
10341 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
10343 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
10344 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
10345 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
10347 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
10348 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10349 Anna Tikhonova <anna.tikhonova@intel.com>
10350 Ilya Tocar <ilya.tocar@intel.com>
10351 Andrey Turetskiy <andrey.turetskiy@intel.com>
10352 Ilya Verbin <ilya.verbin@intel.com>
10353 Kirill Yukhin <kirill.yukhin@intel.com>
10354 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10356 * config/i386/i386.c
10357 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
10358 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
10359 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
10360 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
10361 avx512vl_getmantv2df_mask.
10362 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
10363 avx512f_vgetmantv4sf_round.
10364 * config/i386/sse.md
10365 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
10366 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
10368 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
10369 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
10370 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
10371 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
10373 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
10374 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
10375 update mode iterator.
10377 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
10378 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
10381 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
10382 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
10383 update mode iterator.
10384 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
10385 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
10388 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
10389 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
10391 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
10392 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
10393 update mode iterator.
10394 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
10395 "avx512f_getmant<mode><round_saeonly_name>".
10397 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
10400 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
10402 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
10403 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10404 Anna Tikhonova <anna.tikhonova@intel.com>
10405 Ilya Tocar <ilya.tocar@intel.com>
10406 Andrey Turetskiy <andrey.turetskiy@intel.com>
10407 Ilya Verbin <ilya.verbin@intel.com>
10408 Kirill Yukhin <kirill.yukhin@intel.com>
10409 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10411 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
10412 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
10413 (define_mode_iterator FMAMODE_AVX512): New.
10414 (define_mode_iterator FMAMODE): Remove conditions.
10415 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
10416 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
10417 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
10419 (define_mode_iterator FMAMODE_NOVF512): Remove.
10420 (define_insn "*fma_fmadd_<mode>"): Rename from
10421 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
10422 FMAMODE mode iterator.
10423 (define_mode_iterator VF_SF_AVX512VL): New.
10424 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
10425 Use VF_SF_AVX512VL mode iterator.
10426 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
10427 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
10429 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
10430 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10432 (define_insn "*fma_fmsub_<mode>"): Rename from
10433 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
10434 FMAMODE mode iterator.
10435 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
10436 Use VF_SF_AVX512VL mode iterator.
10437 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
10438 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
10440 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
10441 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10443 (define_insn "*fma_fnmadd_<mode>"): Rename from
10444 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
10445 use FMAMODE mode iterator.
10446 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
10447 Use VF_SF_AVX512VL mode iterator.
10448 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
10449 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
10451 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
10452 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10454 (define_insn "*fma_fnmsub_<mode>"): Rename from
10455 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
10456 FMAMODE mode iterator.
10457 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
10458 Use VF_SF_AVX512VL mode iterator.
10459 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
10460 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
10462 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
10463 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10465 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
10466 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
10467 use VF_AVX512VL mode iterator.
10468 (define_insn "*fma_fmaddsub_<mode>"): Rename from
10469 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
10470 remove subst usage.
10471 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
10472 Use VF_SF_AVX512VL mode iterator.
10473 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
10474 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
10476 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
10477 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10479 (define_insn "*fma_fmsubadd_<mode>"): Rename from
10480 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
10481 remove usage of subst.
10482 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
10483 Use VF_SF_AVX512VL mode iterator.
10484 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
10485 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
10487 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
10488 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
10491 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
10494 * calls.c (precompute_arguments): Check
10495 promoted_for_signed_and_unsigned_p and set the promoted mode.
10496 (promoted_for_signed_and_unsigned_p): New function.
10497 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
10498 and set the promoted mode.
10499 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
10500 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
10501 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
10503 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10505 * opth-gen.awk: Generate mapping from cpp message reasons to the
10506 options that enable them.
10507 * doc/options.texi (CppReason): Document.
10509 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
10511 * doc/invoke.texi (Wnormalized=): Update.
10513 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
10516 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
10517 operands. Split off the constant operand alternative to ...
10518 (*bool<mode>3_imm): New.
10520 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10522 * rtl.h (single_set_2): Strengthen first param from const_rtx to
10523 const rtx_insn *, and move prototype to above...
10524 (single_set): ...this. Convert this from a macro to an inline
10525 function, enforcing the requirement that the param is a const
10527 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
10529 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
10530 Strengthen both params from rtx to rtx_insn *.
10531 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
10532 Likewise; introduce locals "producer_set", "consumer_set", using
10533 them in place of "producer" and "consumer" when dealing with SET
10535 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
10536 when invoking single_set in region guarded by INSN_P.
10537 (avr_out_bitop): Likewise.
10538 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
10539 region guarded by GET_CODE check, using methods to strengthen
10540 local "this_insn" from rtx to rtx_insn *, and for clarity.
10541 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
10542 Strengthen local "insn" from rtx to rtx_insn *.
10543 (define_insn_and_split "xload<mode>_A"): Likewise.
10544 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
10546 (find_load): Likewise for return type.
10547 (workaround_speculation): Likewise for both locals named
10549 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
10551 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
10553 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
10555 * config/h8300/h8300.c (notice_update_cc): Likewise.
10556 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
10557 "insn" and "dep_insn".
10558 (exact_store_load_dependency): Likewise for both params.
10559 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
10560 since this now clashes with inline function. Instead, delay
10561 calling single_set until the point where its needed, and then
10562 assign the result to "compare_set" and rework the conditional that
10564 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
10565 local "last" from rtx to rtx_insn *.
10566 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
10568 (mips_store_data_bypass_p): Likewise for both params.
10569 * config/mips/mips.c (mips_load_store_insns): Likewise for second
10571 (mips_store_data_bypass_p): Likewise for both params.
10572 (mips_orphaned_high_part_p): Likewise for param "insn".
10573 * config/mn10300/mn10300.c (extract_bundle): Likewise.
10574 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
10575 Introduce local rtx "insn2_pat".
10576 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
10578 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
10579 Introduce local rtx "set", using it in place of "insn" for the
10580 result of single_set. This appears to fix a bug, since the call
10581 to find_regno_note on a SET does nothing.
10582 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
10583 params from rtx to rtx_insn *.
10584 (set_to_load_agen): Likewise.
10585 * config/s390/s390.c (s390_label_align): Likewise for local
10586 "prev_insn". Introduce new rtx locals "set" and "src", using
10587 them in place of "prev_insn" for the results of single_set
10588 and SET_SRC respectively.
10589 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
10590 Introduce new rtx local "set" using in place of "jump" for the
10591 result of single_set. Use SET_SRC (set) rather than plain
10593 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
10595 (noncall_uses_reg): Likewise.
10596 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
10597 guarded by GET_CODE check, using its methods for clarity, and to
10598 enable strengthening local "this_insn" from rtx to rtx_insn *.
10599 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
10600 "insn" from rtx to rtx_insn *.
10601 (define_expand "umulhisi3"): Likewise.
10602 (define_expand "smulsi3_highpart"): Likewise.
10603 (define_expand "umulsi3_highpart"): Likewise.
10604 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
10605 local "after". Replace GET_CODE check with a dyn_cast,
10606 introducing new local rtx_sequence * "seq", using insn method for
10609 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
10610 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
10611 place of "insn" once we're dealing with patterns rather than the
10613 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
10614 (scan_trace): Likewise for local "elt", updating lookups within
10615 sequence to use insn method rather than element method.
10616 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
10618 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
10619 * ifcvt.c (noce_try_abs): Likewise for local "insn".
10620 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
10621 invoking single_set.
10622 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
10623 "insn" from rtx to rtx_insn *.
10624 (skip_usage_debug_insns): Likewise for return type, adding a
10626 (check_secondary_memory_needed_p): Likewise for local "insn".
10627 (inherit_reload_reg): Likewise.
10628 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
10629 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
10631 (store_data_bypass_p): Likewise for both params.
10632 (if_test_bypass_p): Likewise.
10633 * recog.h (store_data_bypass_p): Likewise for both params.
10634 (if_test_bypass_p): Likewise.
10635 * reload.c (find_equiv_reg): Likewise for local "where".
10636 * reorg.c (delete_jump): Likewise for param "insn".
10637 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
10638 to const rtx_insn *.
10639 * store-motion.c (replace_store_insn): Likewise for param "del".
10640 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
10641 and use its methods for clarity, and to strengthen local "del"
10642 from rtx to rtx_insn *.
10643 (build_store_vectors): Use insn method of "st" when calling
10644 replace_store_insn for typesafety and clarity.
10646 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10648 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
10649 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
10650 on how to make it legal in future.
10652 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10654 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
10656 (restinsn): Likewise.
10657 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
10658 Likewise for param.
10659 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
10661 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
10663 (arc_hazard): Likewise for both params.
10664 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
10665 checked casts to rtx_sequence * and uses of the insn method for
10667 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
10668 (arc_adjust_insn_length): Likewise for param "insn".
10669 (struct insn_length_parameters_s): Likewise for first param of
10670 "get_variants" callback field.
10671 (arc_get_insn_variants): Likewise for first param and local
10672 "inner". Replace a check of GET_CODE with a dyn_cast to
10673 rtx_sequence *, using methods for type-safety and clarity.
10674 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
10675 rtx_sequence * and uses of the insn method for type-safety when
10676 invoking arc_adjust_insn_length.
10677 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
10679 (arm_address_offset_is_imm): Likewise.
10680 (struct tune_params): Likewise for params 1 and 3 of the
10681 "sched_adjust_cost" callback field.
10682 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
10683 params 1 and 3 ("insn" and "dep").
10684 (xscale_sched_adjust_cost): Likewise.
10685 (fa726te_sched_adjust_cost): Likewise.
10686 (cortexa7_older_only): Likewise for param "insn".
10687 (cortexa7_younger): Likewise.
10688 (arm_attr_length_move_neon): Likewise.
10689 (arm_address_offset_is_imm): Likewise.
10690 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
10691 * config/avr/avr.c (avr_notice_update_cc): Likewise.
10692 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
10693 (workaround_speculation): Likewise for local "last_condjump".
10694 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
10695 (shadow_or_blockage_p): Likewise.
10696 (get_unit_reqs): Likewise.
10697 (get_unit_operand_masks): Likewise.
10698 (c6x_registers_update): Likewise.
10699 (returning_call_p): Likewise.
10700 (can_use_callp): Likewise.
10701 (convert_to_callp): Likewise.
10702 (find_last_same_clock): Likwise for local "t".
10703 (reorg_split_calls): Likewise for local "shadow".
10704 (hwloop_pattern_reg): Likewise for param "insn".
10705 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
10706 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
10707 (frv_extract_membar): Likewise.
10708 (frv_optimize_membar_local): Strengthen param "last_membar" from
10709 rtx * to rtx_insn **.
10710 (frv_optimize_membar_global): Strengthen param "membar" from rtx
10712 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
10714 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
10715 both params from rtx to rtx_insn *.
10716 (ia64_ld_address_bypass_p): Likewise.
10717 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
10719 (ia64_safe_type): Likewise.
10720 (group_barrier_needed): Likewise.
10721 (safe_group_barrier_needed): Likewise.
10722 (ia64_single_set): Likewise.
10723 (is_load_p): Likewise.
10724 (record_memory_reference): Likewise.
10725 (get_mode_no_for_insn): Likewise.
10726 (important_for_bundling_p): Likewise.
10727 (unknown_for_bundling_p): Likewise.
10728 (ia64_st_address_bypass_p): Likewise for both params.
10729 (ia64_ld_address_bypass_p): Likewise.
10730 (expand_vselect): Introduce new local rtx_insn * "insn", using it
10731 in place of rtx "x" after the emit_insn call.
10732 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
10733 Strengthen param from rtx to rtx_insn *.
10734 (ix86_agi_dependent): Likewise for both params.
10735 (ix86_attr_length_immediate_default): Likewise for param 1.
10736 (ix86_attr_length_address_default): Likewise for param.
10737 (ix86_attr_length_vex_default): Likewise for param 1.
10738 * config/i386/i386.c (ix86_attr_length_immediate_default):
10739 Likewise for param "insn".
10740 (ix86_attr_length_address_default): Likewise.
10741 (ix86_attr_length_vex_default): Likewise.
10742 (ix86_agi_dependent): Likewise for both params.
10743 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
10744 (vselect_insn): Likewise for this variable.
10745 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
10747 (m68k_sched_attr_opy_type): Likewise.
10748 * config/m68k/m68k.c (sched_get_operand): Likewise.
10749 (sched_attr_op_type): Likewise.
10750 (m68k_sched_attr_opx_type): Likewise.
10751 (m68k_sched_attr_opy_type): Likewise.
10752 (sched_get_reg_operand): Likewise.
10753 (sched_get_mem_operand): Likewise.
10754 (m68k_sched_address_bypass_p): Likewise for both params.
10755 (sched_get_indexed_address_scale): Likewise.
10756 (m68k_sched_indexed_address_bypass_p): Likewise.
10757 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
10758 (m68k_sched_indexed_address_bypass_p): Likewise.
10759 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
10760 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
10762 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
10763 params from rtx to rtx_insn *.
10764 (mips_fmadd_bypass): Likewise.
10765 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
10766 (mips_linked_madd_p): Likewise.
10767 (mips_macc_chains_last_hilo): Likewise for this variable.
10768 (mips_macc_chains_record): Likewise for param.
10769 (vr4130_last_insn): Likewise for this variable.
10770 (vr4130_swap_insns_p): Likewise for both params.
10771 (mips_ls2_variable_issue): Likewise for param.
10772 (mips_need_noat_wrapper_p): Likewise for param "insn".
10773 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
10774 in place of "x" after the emit_insn.
10775 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
10776 params from rtx to rtx_insn *.
10777 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
10778 (pa_combine_instructions): Introduce local "par" for result of
10779 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
10781 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
10782 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
10783 (rl78_alloc_physical_registers_op1): Likewise.
10784 (rl78_alloc_physical_registers_op2): Likewise.
10785 (rl78_alloc_physical_registers_ro1): Likewise.
10786 (rl78_alloc_physical_registers_cmp): Likewise.
10787 (rl78_alloc_physical_registers_umul): Likewise.
10788 (rl78_alloc_address_registers_macax): Likewise.
10789 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
10790 * config/s390/predicates.md (execute_operation): Likewise for
10792 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
10794 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
10795 (addr_generation_dependency_p): Likewise for param "insn".
10796 (s390_agen_dep_p): Likewise for both params.
10797 (s390_fpload_toreg): Likewise for param "insn".
10798 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
10799 * config/sh/sh.c (sh_loop_align): Likewise for param and local
10801 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
10802 * config/sh/sh_treg_combine.cc
10803 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
10805 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
10806 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
10807 "and_insn", "load", "shift".
10808 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
10810 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
10811 for XEXP (note, 0) of the REG_CC_SETTER note.
10812 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
10813 rtx_insn *, eliminating a checked cast made redundant by this.
10814 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
10816 * genattr.c (main): When writing out the prototype to
10817 const_num_delay_slots, strengthen the param from rtx to
10819 * genattrtab.c (write_const_num_delay_slots): Likewise when
10820 writing out the implementation of const_num_delay_slots.
10821 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
10822 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
10823 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
10824 favor of new rtx locals "src" and "set" and new local rtx_insn *
10826 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
10828 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
10829 locals "cond", "if_then_else", "set" and new rtx_insn * locals
10831 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
10832 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
10833 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
10834 the top-level scope, replacing with new more tightly-scoped rtx
10835 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
10836 "new_insn", "copy_of_insn_b", and make local rtx "set" more
10838 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
10840 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
10842 (ira_setup_alts): Likewise for param "insn".
10843 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
10844 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
10846 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
10847 new more-tightly scoped rtx locals "add3_insn", "insn",
10848 "add2_insn" and rtx_insn * "move_insn".
10849 * postreload-gcse.c (eliminate_partially_redundant_load): Add
10850 checked cast on result of gen_move_insn when invoking
10852 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
10854 (verify_changes): Add a checked cast on "object" when invoking
10856 (extract_insn_cached): Strengthen param "insn" from rtx to
10858 (extract_constrain_insn_cached): Likewise.
10859 (extract_insn): Likewise.
10860 * recog.h (insn_invalid_p): Likewise for param 1.
10861 (recog_memoized): Likewise for param.
10862 (extract_insn): Likewise.
10863 (extract_constrain_insn_cached): Likewise.
10864 (extract_insn_cached): Likewise.
10865 * reload.c (can_reload_into): Likewise for local "test_insn".
10866 * reload.h (cleanup_subreg_operands): Likewise for param.
10867 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
10868 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
10869 result of emit_insn. Remove a checked cast made redundant by this
10871 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
10873 * sel-sched.c (get_reg_class): Likewise.
10875 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
10876 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10878 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
10879 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
10881 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
10883 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10885 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
10886 const rtx_insn *, and from rtx to rtx_insn * for the other
10887 overloaded variant.
10888 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
10889 INSN_LOCATION, since we know INSN_P holds.
10890 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
10891 (insn_file): Likewise.
10892 (insn_scope): Likewise.
10893 (insn_location): Likewise.
10895 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
10896 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
10897 for the result of gen_load_const_gp.
10898 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
10899 param from rtx to rtx_insn *.
10900 * config/rs6000/rs6000.c (output_call): Likewise.
10901 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
10902 introducing a checked cast to rtx_sequence * and use of the insn
10904 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
10905 from rtx to rtx_insn *.
10906 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
10907 (insn_line): Likewise.
10908 (insn_file): Likewise.
10909 (insn_location): Likewise.
10910 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
10911 from rtx to rtx_insn *.
10912 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
10913 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
10914 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
10915 via a checked cast.
10916 * reorg.c (relax_delay_slots): Strengthen locals named "after"
10917 from rtx to rtx_insn *; use methods of "pat" for type-safety.
10919 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10921 * combine.c (try_combine): Eliminate checked cast on result of
10923 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
10924 autogenerated one by strengthening the return type and params 2 and 3
10925 from rtx to rtx_insn *, and by naming the params.
10926 * gengenrtl.c (special_rtx): Add INSN to those that are
10928 * rtl.h (gen_rtx_INSN): New prototype.
10930 2014-09-09 David Malcolm <dmalcolm@redhat.com>
10932 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
10934 (no_equiv): Likewise.
10935 (update_equiv_regs): Likewise.
10936 (setup_reg_equiv): Likewise. Strengthen locals "elem",
10937 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
10938 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
10940 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
10941 from rtx to rtx_insn_list *.
10942 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
10943 rtx_insn_list * and use methods for clarity and typesafety.
10944 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
10946 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
10947 redundant check on INSN_P (insns): this cannot hold, as "insns" is
10948 an INSN_LIST, not an insn.
10949 (reverse_equiv_p): Strengthen local "insns" from rtx to
10950 rtx_insn_list * and use methods for clarity and typesafety.
10951 (contains_reloaded_insn_p): Likewise for local "list".
10953 2014-09-09 Jiong Wang <jiong.wang@arm.com>
10955 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
10956 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
10957 (arm_builtin_vectorized_function): Likewise.
10958 * config/arm/arm_neon_builtins.def: New macro for copysignf.
10959 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
10961 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
10963 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
10964 * builtins.h (default_target_builtins): Likewise.
10965 * gcse.h (default_target_gcse): Likewise.
10966 * target-globals.h (target_globals): Add a destructor. Convert
10967 void-pointer fields back to their real type and change from
10968 GTY((atomic)) to GTY((skip)).
10969 (restore_target_globals): Remove casts accordingly.
10970 * target-globals.c (save_target_globals): Use XCNEW rather than
10971 ggc_internal_cleared_alloc to allocate non-GC structures.
10972 Use ggc_cleared_alloc to allocate the target_globals structure
10974 (target_globals::~target_globals): Define.
10976 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10978 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
10979 mnemonic instead of fldmfdd.
10980 * config/arm/arm.c (vfp_output_fstmd): Rename to...
10981 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
10982 Output vpush when address register is SP.
10983 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
10984 (vfp_output_vstmd): ... This.
10985 * config/arm/vfp.md (push_multi_vfp): Update call to
10988 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10990 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
10992 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10994 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
10995 (*sqrtdf2_vfp): Likewise.
10996 (*cmpsf_vfp): Likewise.
10997 (*cmpsf_trap_vfp): Likewise.
10998 (*cmpdf_vfp): Likewise.
10999 (*cmpdf_trap_vfp): Likewise.
11001 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11003 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
11004 (*truncdfsf2_vfp): Likewise.
11005 (*truncsisf2_vfp): Likewise.
11006 (*truncsidf2_vfp): Likewise.
11007 (fixuns_truncsfsi2): Likewise.
11008 (fixuns_truncdfsi2): Likewise.
11009 (*floatsisf2_vfp): Likewise.
11010 (*floatsidf2_vfp): Likewise.
11011 (floatunssisf2): Likewise.
11012 (floatunssidf2): Likewise.
11014 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11016 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
11017 (*muldf3_vfp): Likewise.
11018 (*mulsf3negsf_vfp): Likewise.
11019 (*muldf3negdf_vfp): Likewise.
11020 (*mulsf3addsf_vfp): Likewise.
11021 (*muldf3adddf_vfp): Likewise.
11022 (*mulsf3subsf_vfp): Likewise.
11023 (*muldf3subdf_vfp): Likewise.
11024 (*mulsf3negsfaddsf_vfp): Likewise.
11025 (*fmuldf3negdfadddf_vfp): Likewise.
11026 (*mulsf3negsfsubsf_vfp): Likewise.
11027 (*muldf3negdfsubdf_vfp): Likewise.
11029 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11031 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
11032 (*absdf2_vfp): Likewise.
11033 (*negsf2_vfp): Likewise.
11034 (*negdf2_vfp): Likewise.
11035 (*addsf3_vfp): Likewise.
11036 (*adddf3_vfp): Likewise.
11037 (*subsf3_vfp): Likewise.
11038 (*subdf3_vfp): Likewise.
11039 (*divsf3_vfp): Likewise.
11040 (*divdf3_vfp): Likewise.
11042 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11044 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
11046 (arm_print_operand): Don't convert real values to decimal
11047 representation in default case.
11048 (fp_immediate_constant): Delete.
11049 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
11050 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
11052 (*thumb2_movsi_vfp): Likewise.
11053 (*movdi_vfp): Likewise.
11054 (*movdi_vfp_cortexa8): Likewise.
11055 (*movhf_vfp_neon): Likewise.
11056 (*movhf_vfp): Likewise.
11057 (*movsf_vfp): Likewise.
11058 (*thumb2_movsf_vfp): Likewise.
11059 (*movdf_vfp): Likewise.
11060 (*thumb2_movdf_vfp): Likewise.
11061 (*movsfcc_vfp): Likewise.
11062 (*thumb2_movsfcc_vfp): Likewise.
11063 (*movdfcc_vfp): Likewise.
11064 (*thumb2_movdfcc_vfp): Likewise.
11066 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
11068 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
11069 (-mtune): Likewise.
11072 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11075 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
11076 Use qualifier_immediate for last operand. Rename to...
11077 (aarch64_types_ternop_lane_qualifiers): ... This.
11078 (TYPES_QUADOP): Rename to...
11079 (TYPES_TERNOP_LANE): ... This.
11080 (aarch64_simd_expand_args): Return const0_rtx when encountering user
11081 error. Change return of 0 to return of NULL_RTX.
11082 (aarch64_crc32_expand_builtin): Likewise.
11083 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
11084 ICE when expanding unknown builtin.
11085 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
11086 TERNOP_LANE qualifiers.
11087 (sqdmlsl_lane): Likewise.
11088 (sqdmlal_laneq): Likewise.
11089 (sqdmlsl_laneq): Likewise.
11090 (sqdmlal2_lane): Likewise.
11091 (sqdmlsl2_lane): Likewise.
11092 (sqdmlal2_laneq): Likewise.
11093 (sqdmlsl2_laneq): Likewise.
11095 2014-09-09 Nick Clifton <nickc@redhat.com>
11097 * doc/invoke.texi (Optimization Options): Add missing @gol to the
11099 (S/390 and zSeries Options): Remove superfluous word from the
11100 description of the -mhotpatch option.
11102 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
11104 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
11105 * ira.c: #include "shrink-wrap.h"
11106 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
11107 * ifcvt.c: #include "shrink-wrap.h"
11108 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
11110 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
11112 * common/config/picochip/picochip-common.c: Remove.
11113 * config.gcc: Remove support for picochip.
11114 * config/picochip/constraints.md: Remove.
11115 * config/picochip/dfa_space.md: Remove.
11116 * config/picochip/dfa_speed.md: Remove.
11117 * config/picochip/picochip-protos.h: Remove.
11118 * config/picochip/picochip.c: Remove.
11119 * config/picochip/picochip.h: Remove.
11120 * config/picochip/picochip.md: Remove.
11121 * config/picochip/picochip.opt: Remove.
11122 * config/picochip/predicates.md: Remove.
11123 * config/picochip/t-picochip: Remove.
11124 * doc/md.texi: Don't document picochi.
11126 2014-09-08 David Malcolm <dmalcolm@redhat.com>
11128 * basic-block.h (control_flow_insn_p): Strengthen param from
11129 const_rtx to const rtx_insn *.
11130 * cfgbuild.c (control_flow_insn_p): Likewise.
11132 2014-09-08 David Malcolm <dmalcolm@redhat.com>
11134 * gcse.c (modify_mem_list): Strengthen this variable from
11135 vec<rtx> * to vec<rtx_insn *> *.
11136 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
11138 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
11139 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
11140 (record_last_mem_set_info): Strengthen param "insn" from rtx to
11142 (record_last_set_info): Likewise for local "last_set_insn".
11144 2014-09-08 DJ Delorie <dj@redhat.com>
11146 * doc/invoke.texi (MSP430 Options): Add -minrt.
11148 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11150 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
11151 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
11152 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
11154 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
11156 (adjust_splat): New function.
11157 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
11158 (dump_swap_insn_table): Add case for SH_SPLAT.
11160 2014-09-08 Richard Biener <rguenther@suse.de>
11163 * tree-inline.c (copy_loops): The source loop header should
11164 always be non-NULL.
11165 (tree_function_versioning): If loops need fixup after removing
11166 unreachable blocks fix them.
11167 * omp-low.c (simd_clone_adjust): Do not add incr block to
11168 loop under construction.
11170 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
11172 * config/aarch64/aarch64-builtins.c
11173 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
11175 2014-09-08 Joseph Myers <joseph@codesourcery.com>
11177 * config/i386/cygming.h (TF_SIZE): Remove.
11178 * config/i386/darwin.h (TF_SIZE): Remove.
11179 * config/i386/dragonfly.h (TF_SIZE): Remove.
11180 * config/i386/freebsd.h (TF_SIZE): Remove.
11181 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
11182 * config/i386/openbsdelf.h (TF_SIZE): Remove.
11183 * config/i386/sol2.h (TF_SIZE): Remove.
11184 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
11185 * config/ia64/linux.h (TF_SIZE): Remove.
11186 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
11187 * doc/tm.texi: Regenerate.
11188 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
11190 2014-09-08 Joseph Myers <joseph@codesourcery.com>
11192 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
11194 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
11196 * doc/tm.texi: Regenerate.
11197 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
11199 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
11200 * config/cris/cris.h (__make_dp): Remove.
11202 2014-09-08 Richard Biener <rguenther@suse.de>
11205 * cfgloop.c (mark_loop_for_removal): Track former header
11207 * cfgloop.h (struct loop): Add former_header member unconditionally.
11208 * loop-init.c (fix_loop_structure): Enable bogus loop removal
11209 diagnostic unconditionally.
11211 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
11214 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
11215 constraint for operand0 and remove write only modifier from operand3.
11217 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
11219 PR rtl-optimization/62208
11220 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
11221 rather than const0_rtx in eq/ne-xor simplifications.
11223 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
11225 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
11226 (arc_output_mi_thunk): Likewise.
11228 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
11229 arguments to silence bogus warning.
11231 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
11233 PR middle-end/63171
11234 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
11236 2014-09-06 Tom de Vries <tom@codesourcery.com>
11238 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
11239 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
11240 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
11242 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
11245 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
11246 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
11248 2014-09-05 Easwaran Raman <eraman@google.com>
11250 PR rtl-optimization/62146
11251 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
11252 hoisted instruction unconditional.
11254 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
11257 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
11258 Do not allow any_mask_operand for operands[2].
11259 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
11261 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11263 * config/arc/arc.c (arc_print_operand): Use insn method of
11264 final_sequence for type-safety.
11265 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
11266 "insn" from rtx to rtx_insn *.
11267 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
11268 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
11269 Likewise for locals "branch", "label".
11270 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
11271 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
11272 (same_cmp_following_p): Likewise for locals "i2", "i3".
11273 * config/sh/sh_optimize_sett_clrt.cc
11274 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
11275 param "cbranch_insn".
11276 * function.c (convert_jumps_to_returns): Likewis for local "jump".
11277 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
11278 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
11280 (condjump_p): Likewise.
11281 (condjump_in_parallel_p): Likewise.
11282 (pc_set): Likewise.
11283 (any_uncondjump_p): Likewise.
11284 (any_condjump_p): Likewise.
11285 (condjump_label): Likewise.
11286 (returnjump_p): Strengthen param "insn" from rtx to
11288 (onlyjump_p): Strengthen param "insn" from const_rtx to
11290 (jump_to_label_p): Likewise.
11291 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
11292 (invert_jump): Likewise.
11293 * reorg.c (simplejump_or_return_p): Add checked cast when calling
11295 (get_jump_flags): Strengthen param "insn" from rtx to
11297 (get_branch_condition): Likewise.
11298 (condition_dominates_p): Likewise.
11299 (make_return_insns): Move declaration of local "pat" earlier, to
11300 after we've handled NONJUMP_INSN_P and non-sequences, using its
11301 methods to simplify the code and for type-safety.
11302 * rtl.h (find_constant_src): Strengthen param from const_rtx to
11304 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
11305 (condjump_p): Strengthen param from const_rtx to
11307 (any_condjump_p): Likewise.
11308 (any_uncondjump_p): Likewise.
11309 (pc_set): Likewise.
11310 (condjump_label): Likewise.
11311 (simplejump_p): Likewise.
11312 (returnjump_p): Likewise.
11313 (onlyjump_p): Likewise.
11314 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
11315 (invert_jump): Likewise.
11316 (condjump_in_parallel_p): Strengthen param from const_rtx to
11318 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
11319 to const rtx_insn *.
11320 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
11321 to const rtx_insn *.
11322 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
11324 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11326 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
11327 above the conditional, and convert the check on GET_CODE to a
11328 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
11329 the conditional. Simplify the conditional by using methods of
11332 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11334 * haifa-sched.c (check_clobbered_conditions): Strengthen local
11335 "link" from rtx to rtx_insn_list *, and use its methods for
11336 clarity and type-safety.
11337 (toggle_cancelled_flags): Likewise.
11338 (restore_last_backtrack_point): Likewise.
11339 (queue_to_ready): Use insn method of "link" in one place.
11340 (schedule_block): Strengthen local "link" from rtx to
11341 rtx_insn_list *, and use its methods for clarity and type-safety.
11343 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11345 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
11346 param "insn" from const_rtx to const rtx_insn *.
11347 (sched_get_reverse_condition_uncached): Likewise.
11348 (sched_get_condition_with_rev): Likewise.
11349 (sched_has_condition_p): Likewise.
11350 (sched_insns_conditions_mutex_p): Likewise for both params.
11351 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
11352 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
11353 (setup_insn_reg_uses): Move local "list" to be more tightly
11354 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
11355 its methods for clarity and type-safety.
11356 (sched_analyze_1): Strengthen local "pending" from rtx to
11357 rtx_insn_list *, and local "pending_mem" from rtx to
11358 rtx_expr_list *. Use methods of each for clarity and type-safety.
11359 (sched_analyze_2): Likewise.
11360 (sched_analyze_insn): Likewise.
11362 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
11363 param from const_rtx to const rtx_insn *.
11364 (sched_insns_conditions_mutex_p): Likewise for both params.
11365 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
11368 * system.h (CONST_CAST_RTX_INSN): New macro.
11370 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11372 * recog.c (peep2_attempt): Strengthen return type from rtx to
11374 (peep2_update_life): Likewise for params "last", "prev", removing
11375 a checked cast made redundant by this.
11376 (peephole2_optimize): Likewise for local "last".
11378 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11380 * basic-block.h (set_block_for_insn): Eliminate this macro in
11382 * rtl.h (set_block_for_insn): New inline function, imposing the
11383 requirement that the "insn" param is an rtx_insn *.
11385 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11387 * caller-save.c (setup_save_areas): Strengthen local "insn" from
11389 * final.c (get_call_reg_set_usage): Likewise for first param,
11390 eliminating a checked cast.
11391 * regs.h (get_call_reg_set_usage): Likewise for first param.
11392 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
11393 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
11394 cast, replacing references to "x" with "call_insn" where
11396 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
11397 rtx_insn *, adding a checked cast.
11399 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11401 * output.h (final_scan_insn): Strengthen first param from rtx to
11404 * final.c (final_scan_insn): Likewise, renaming it back from
11405 "uncast_insn" to "insn", eliminating the checked cast.
11407 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
11408 "vec" with an rtx_sequence * "seq", taking a copy of
11409 "final_sequence", and using methods of "seq" for clarity, and for
11410 type-safety in the calls to final_scan_insn.
11411 * config/mips/mips.c (mips_output_conditional_branch): Use methods
11412 of "final_sequence" for clarity, and for type-safety in the call to
11414 * config/sh/sh.c (print_slot): Strengthen param from rtx to
11415 rtx_sequence * and rename from "insn" to "seq".
11417 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11419 * jump.c (delete_related_insns): Introduce a new local "table" by
11420 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
11421 get_labels method of "table" to simplify access to the labels in
11424 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11426 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
11427 f_minmaxs, f_minmaxd types.
11429 2014-09-05 Richard Biener <rguenther@suse.de>
11431 * cfgloop.c (mark_loop_for_removal): Record former header
11432 when ENABLE_CHECKING.
11433 * cfgloop.h (strut loop): Add former_header member when
11435 * loop-init.c (fix_loop_structure): Sanity check loops
11436 marked for removal if they re-appeared.
11438 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11440 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
11441 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
11443 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
11444 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
11445 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
11446 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
11447 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
11448 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
11449 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
11450 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
11451 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
11452 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
11453 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
11454 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
11455 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
11456 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
11457 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
11458 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
11459 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
11460 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
11461 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
11462 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
11463 with int{32,16,8}_t.
11465 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11467 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
11468 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
11469 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
11470 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
11471 Remove temporary __asm__ and reimplement.
11473 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11475 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
11476 handling cmge, cmgt, cmeq, cmtst.
11478 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
11479 cmlt, cmgeu, cmgtu, cmtst): Remove.
11481 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
11482 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
11483 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
11484 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
11486 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11488 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
11489 TYPES_TST): Define.
11490 (aarch64_fold_builtin): Update pattern for cmtst.
11492 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
11495 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
11497 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
11498 Switch operands, separate out more cases, refactor.
11500 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
11502 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
11503 argument; rename old version to...
11504 (aarch64_const_vec_all_same_in_range_p): ...this.
11505 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
11507 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
11509 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11511 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11512 Remove qualifier_const_pointer, update comment.
11514 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11516 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
11518 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11520 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
11521 varargs with pointer parameter.
11522 (aarch64_simd_expand_builtin): pass pointer into previous.
11524 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11526 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
11529 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
11531 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
11532 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
11533 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
11534 Replace temporary asm with call to builtin.
11535 (vrbit_p8, vrbitq_p8): New functions.
11537 2014-09-05 Richard Biener <rguenther@suse.de>
11539 * cfgloop.c (mark_loop_for_removal): New function.
11540 * cfgloop.h (mark_loop_for_removal): Declare.
11541 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
11542 (merge_blocks): Likewise.
11543 (duplicate_block): Likewise.
11544 * except.c (sjlj_emit_dispatch_table): Likewise.
11545 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
11546 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
11547 (thread_through_loop_header): Likewise.
11549 2014-09-05 Richard Biener <rguenther@suse.de>
11551 PR middle-end/63148
11552 * fold-const.c (try_move_mult_to_index): Remove.
11553 (fold_binary_loc): Do not call it.
11554 * tree-data-ref.c (dr_analyze_indices): Strip conversions
11555 from the base object again.
11557 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
11559 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
11562 2014-09-05 Bin Cheng <bin.cheng@arm.com>
11565 * config/arm/arm.md (setmem): New pattern.
11566 * config/arm/arm-protos.h (struct tune_params): New fields.
11567 (arm_gen_setmem): New prototype.
11568 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
11569 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
11570 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
11571 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
11572 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
11573 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
11574 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
11575 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
11576 (arm_const_inline_cost): New function.
11577 (arm_block_set_max_insns): New function.
11578 (arm_block_set_non_vect_profit_p): New function.
11579 (arm_block_set_vect_profit_p): New function.
11580 (arm_block_set_unaligned_vect): New function.
11581 (arm_block_set_aligned_vect): New function.
11582 (arm_block_set_unaligned_non_vect): New function.
11583 (arm_block_set_aligned_non_vect): New function.
11584 (arm_block_set_vect, arm_gen_setmem): New functions.
11586 2014-09-05 Bin Cheng <bin.cheng@arm.com>
11588 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
11590 2014-09-05 Bin Cheng <bin.cheng@arm.com>
11592 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
11594 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11596 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
11598 * valtrack.h: Adjust.
11600 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11602 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
11604 (emit_jump_insn_before_noloc): Likewise.
11605 (emit_call_insn_before_noloc): Likewise.
11606 (emit_label_before): Likewise.
11607 (emit_label_after): Likewise.
11608 (emit_insn_before_setloc): Likewise.
11609 (emit_jump_insn_before_setloc): Likewise.
11610 (emit_call_insn_before_setloc): Likewise.
11611 (emit_call_insn_before): Likewise.
11614 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11616 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
11617 rtx_insn *, eliminating a checked cast.
11619 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11621 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
11622 const_rtx to const rtx_insn *.
11623 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
11626 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11628 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
11629 fixup_args_size_notes.
11630 * expr.c (fixup_args_size_notes): Strengthen first two params from
11631 rtx to rtx_insn *, eliminating a checked cast.
11632 * rtl.h (fixup_args_size_notes): Strengthen first two params from
11635 2014-09-05 David Malcolm <dmalcolm@redhat.com>
11637 * haifa-sched.c (get_ready_element): Strengthen return type from
11639 * sched-int.h (get_ready_element): Likewise.
11641 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
11644 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
11645 indexed_or_indirect_operand instead of memory_operand.
11646 (floatsi<mode>2_lfiwzx_mem): Ditto.
11648 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11650 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
11651 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
11652 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
11654 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
11656 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
11658 (get_last_nonnote_insn): Likewise.
11659 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
11660 * resource.c (find_basic_block): Likewise.
11662 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
11665 2014-09-04 David Malcolm <dmalcolm@redhat.com>
11667 * genattr.c (main): Within the prototype of insn_latency written
11668 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
11669 * genautomata.c (output_internal_maximal_insn_latency_func):
11670 Within the implementation of insn_latency written out to
11671 insn-automata.c, strengthen both params from rtx to rtx_insn *,
11672 eliminating a pair of checked casts.
11674 2014-09-04 David Malcolm <dmalcolm@redhat.com>
11676 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
11679 * rtl.h (eh_returnjump_p): Likewise.
11681 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
11683 * Makefile.in (TAGS): Handle constructs in timevar.def.
11685 2014-09-04 Guozhi Wei <carrot@google.com>
11688 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
11689 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
11690 it into two patterns.
11691 (move_lo_quad_internal_be_<mode>): Likewise.
11693 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
11695 * doc/options.texi: Document that Var and Init are required if CPP
11697 * optc-gen.awk: Require Var and Init if CPP is given.
11698 * common.opt (Wpedantic): Use Init.
11700 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11702 * config/rs6000/rs6000.c (special_handling_values): Add
11704 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
11705 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
11706 as swappable with special handling SH_EXTRACT. Remove
11707 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
11709 (adjust_extract): New function.
11710 (handle_special_swappables): Add default to case statement; add
11711 case for SH_EXTRACT that calls adjust_extract.
11712 (dump_swap_insn_table): Handle SH_EXTRACT.
11714 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11716 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
11717 selection of 0th memory doubleword, regardless of endianness.
11719 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11721 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
11723 2014-09-04 Alan Modra <amodra@gmail.com>
11726 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
11729 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
11731 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
11732 * targhooks.c (default_dwarf_frame_reg_mode): New function.
11733 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
11734 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
11735 * doc/tm.texi: Regenerate.
11736 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
11737 selection logic to default_dwarf_frame_reg_mode.
11739 2014-09-03 Marek Polacek <polacek@redhat.com>
11741 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
11744 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
11746 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
11747 the automodified register.
11749 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
11751 * output.h (get_some_local_dynamic_name): Declare.
11752 * final.c (some_local_dynamic_name): New variable.
11753 (get_some_local_dynamic_name): New function.
11754 (final_end_function): Clear some_local_dynamic_name.
11755 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
11756 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
11757 (print_operand): Report an error if '%&' is used inappropriately.
11758 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
11759 (get_some_local_dynamic_name_1): Delete.
11760 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
11761 (rs6000_get_some_local_dynamic_name): Delete.
11762 (rs6000_get_some_local_dynamic_name_1): Delete.
11763 (print_operand): Report an error if '%&' is used inappropriately.
11764 * config/s390/s390.c (machine_function): Remove some_ld_name.
11765 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
11766 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
11767 * config/sparc/sparc.c: Include rtl-iter.h.
11768 (machine_function): Remove some_ld_name.
11769 (sparc_print_operand): Report an error if '%&' is used inappropriately.
11770 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
11772 2014-09-03 Richard Henderson <rth@redhat.com>
11774 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
11775 (aarch64_popwb_pair_reg): Remove.
11776 (aarch64_set_frame_expr): Remove.
11777 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
11778 the restore ops performed by the insns generated.
11779 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
11780 insn. Perform the calls_eh_return addition later; do not attempt to
11781 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
11782 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
11783 special markup at all. Load cfun->machine->frame.hard_fp_offset
11784 into a local variable.
11785 (aarch64_frame_pointer_required): Don't check calls_alloca.
11787 2014-09-03 Richard Biener <rguenther@suse.de>
11789 * opts.c (default_options_optimization): Adjust
11790 max-combine-insns to 2 for -Og.
11792 2014-09-03 Martin Jambor <mjambor@suse.cz>
11795 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
11796 pass-trough jump functions correctly.
11798 2014-09-03 Martin Jambor <mjambor@suse.cz>
11801 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
11802 created replacements in ascending order of offsets.
11803 (known_aggs_to_agg_replacement_list): Likewise.
11805 2014-09-03 Martin Liska <mliska@suse.cz>
11807 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
11808 is set to set uninitialized value for vnresult.
11810 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11812 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
11813 for TARGET_MUST_PASS_IN_STACK.
11815 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11817 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
11818 for TARGET_ARG_PARTIAL_BYTES.
11820 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11822 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
11823 instructions for varargs implementation.
11824 (nds32_expand_epilogue): Emit stack adjustment instructions for
11825 varargs implementation.
11827 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11829 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
11830 optimization detection.
11832 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11834 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
11836 (nds32_function_arg_advance): Deal with nameless arguments.
11837 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
11838 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
11839 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
11841 2014-09-03 Richard Biener <rguenther@suse.de>
11843 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
11844 (struct bb_bitmap_sets): Remove deferred member.
11845 (BB_DEFERRED): Remove.
11846 (defer_or_phi_translate_block): Remove.
11847 (compute_antic_aux): Remove deferring of blocks, assert
11848 proper iteration order.
11849 (compute_antic): Do not set BB_DEFERRED.
11850 (eliminate): Allocate el_avail of proper size initially.
11852 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11854 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
11855 according to the value of crtl->args.pretend_args_size.
11857 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11859 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
11860 varargs information.
11862 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11864 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
11865 implementation for TARGET_SETUP_INCOMING_VARARGS.
11866 (nds32_strict_argument_naming): Refine comment.
11867 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
11868 Define for future implementation.
11870 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
11872 * config/i386/adxintrin.h (_subborrow_u32): New.
11873 (_addcarry_u32): Ditto.
11874 (_subborrow_u64): Ditto.
11875 (_addcarry_u64): Ditto.
11876 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
11877 IX86_BUILTIN_SBB64.
11878 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
11879 __builtin_ia32_sbb_u64
11881 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11883 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
11884 GPR-specific stuff.
11885 (nds32_function_arg_advance): Likewise.
11886 (nds32_init_cumulative_args): Likewise.
11887 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
11888 (NDS32_FIRST_GPR_REGNUM): Define.
11889 (NDS32_LAST_GPR_REGNUM): Define.
11890 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
11891 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
11892 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
11893 (machine_function): Use GRP-specific stuff.
11895 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11897 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
11898 (nds32_expand_epilogue): Likewise.
11899 (nds32_expand_prologue_v3push): Likewise.
11900 (nds32_expand_epilogue_v3pop): Likewise.
11902 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11904 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
11905 v3push/v3pop for variadic function.
11906 * config/nds32/nds32.md (prologue, epilogue): Likewise.
11908 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11910 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
11911 Check rtx for varargs implementation.
11912 (nds32_output_stack_pop): Likewise.
11913 * config/nds32/nds32-protos.h: Have a rtx argument for
11914 nds32_output_stack_push and nds32_output_stack_pop.
11915 * config/nds32/nds32.md: Likewise.
11917 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11919 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
11920 to check if FUNC is an interrupt service routine.
11921 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
11923 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11925 * config/nds32/nds32.h (machine_function): Add some fields for variadic
11926 arguments implementation.
11928 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11930 * config/nds32/nds32-predicates.c
11931 (nds32_valid_stack_push_pop): Rename to ...
11932 (nds32_valid_stack_push_pop_p): ... this.
11933 * config/nds32/nds32-protos.h: Likewise.
11934 * config/nds32/predicates.md: Likewise.
11936 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11938 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
11939 (nds32_emit_stack_v3push): ... this.
11940 (nds32_gen_stack_v3pop): Rename to ...
11941 (nds32_emit_stack_v3pop): ... this and consider CFA restore
11944 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11946 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
11947 (nds32_emit_stack_push_multiple): ... this.
11948 (nds32_gen_stack_pop_multiple): Rename to ...
11949 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
11952 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11955 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
11956 and add a second splitter to handle the remaining cases.
11958 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
11960 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
11962 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
11964 * cfgexpand.c (label_rtx_for_bb): Change type to
11965 hash_map<basic_block, rtx_code_label *> *.
11966 (expand_gimple_basic_block): Adjust.
11967 (pass_expand::execute): Likewise.
11969 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
11971 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
11972 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
11973 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
11974 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
11975 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
11976 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
11977 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
11980 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
11982 * alloc-pool.c: Include coretypes.h.
11983 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
11984 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
11985 hash_set instead of htab.
11986 * ggc-page.c (in_gc): New variable.
11987 (ggc_free): Do nothing if a collection is taking place.
11988 (ggc_collect): Set in_gc appropriately.
11989 * ggc.h (gt_ggc_mx(const char *)): New function.
11990 (gt_pch_nx(const char *)): Likewise.
11991 (gt_ggc_mx(int)): Likewise.
11992 (gt_pch_nx(int)): Likewise.
11993 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
11994 (hash_map::hash_entry::pch_nx): Likewise.
11995 (hash_map::hash_entry::pch_nx_helper): Likewise.
11996 (hash_map::hash_map): Adjust.
11997 (hash_map::create_ggc): New function.
11998 (gt_ggc_mx): Likewise.
11999 (gt_pch_nx): Likewise.
12000 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
12001 (default_hashset_traits::pch_nx): Likewise.
12002 (hash_set::hash_entry::ggc_mx): Likewise.
12003 (hash_set::hash_entry::pch_nx): Likewise.
12004 (hash_set::hash_entry::pch_nx_helper): Likewise.
12005 (hash_set::hash_set): Adjust.
12006 (hash_set::create_ggc): New function.
12007 (hash_set::elements): Likewise.
12008 (gt_ggc_mx): Likewise.
12009 (gt_pch_nx): Likewise.
12010 * hash-table.h (hash_table::hash_table): Adjust.
12011 (hash_table::m_ggc): New member.
12012 (hash_table::~hash_table): Adjust.
12013 (hash_table::expand): Likewise.
12014 (hash_table::empty): Likewise.
12015 (gt_ggc_mx): New function.
12016 (hashtab_entry_note_pointers): Likewise.
12017 (gt_pch_nx): Likewise.
12019 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12021 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
12022 built-in definition.
12023 (XVCVUXDDP_SCALE): Likewise.
12024 (XVCVDPSXDS_SCALE): Likewise.
12025 (XVCVDPUXDS_SCALE): Likewise.
12026 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12027 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
12028 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
12029 VSX_BUILTIN_XVCVDPUXDS_SCALE.
12030 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
12032 * config/rs6000/rs6000.c (real.h): New include.
12033 (rs6000_scale_v2df): New function.
12034 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
12035 (UNSPEC_VSX_XVCVUXDDP): Likewise.
12036 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
12037 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
12038 (vsx_xvcvsxddp_scale): New define_expand.
12039 (vsx_xvcvsxddp): New define_insn.
12040 (vsx_xvcvuxddp_scale): New define_expand.
12041 (vsx_xvcvuxddp): New define_insn.
12042 (vsx_xvcvdpsxds_scale): New define_expand.
12043 (vsx_xvcvdpsxds): New define_insn.
12044 (vsx_xvcvdpuxds_scale): New define_expand.
12045 (vsx_xvcvdpuxds): New define_insn.
12046 * doc/extend.texi (vec_ctf): Add new prototypes.
12047 (vec_cts): Likewise.
12048 (vec_ctu): Likewise.
12049 (vec_splat): Likewise.
12050 (vec_div): Likewise.
12051 (vec_mul): Likewise.
12053 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12056 * config/arm/neon.md
12057 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
12058 <v_cmp_result>): New pattern.
12059 * config/arm/iterators.md (NEON_VCVT): New int iterator.
12060 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
12061 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
12062 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
12063 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
12064 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
12066 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12069 * config/arm/iterators.md (FIXUORS): New code iterator.
12070 (VCVT): New int iterator.
12071 (su_optab): New code attribute.
12073 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
12075 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12077 * config/aarch64/predicates.md (aarch64_comparison_operation):
12078 New special predicate.
12079 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
12080 aarch64_comparison_operation instead of matching an operator.
12081 Update operand numbers.
12082 (csinc3<mode>_insn): Likewise.
12083 (*csinv3<mode>_insn): Likewise.
12084 (*csneg3<mode>_insn): Likewise.
12085 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
12086 * config/aarch64/aarch64.c (aarch64_get_condition_code):
12087 Return -1 instead of aborting on invalid condition codes.
12088 (aarch64_print_operand): Update aarch64_get_condition_code callsites
12089 to assert that the returned condition code is valid.
12090 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
12092 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
12094 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
12095 tree.def, and gimple.def
12097 2014-09-02 Jakub Jelinek <jakub@redhat.com>
12098 Balaji V. Iyer <balaji.v.iyer@intel.com>
12099 Igor Zamyatin <igor.zamyatin@intel.com>
12101 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
12102 (__cilkrts_cilk_for_64): Likewise.
12103 * cilk-common.c (declare_cilk_for_builtin): New function.
12104 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
12105 __cilkrts_cilk_for_64 bultins.
12106 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
12108 (cilk_for_32_fndecl): New define.
12109 (cilk_for_64_fndecl): Likewise.
12110 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
12111 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
12112 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
12113 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
12114 GF_OMP_FOR_COMBINED_INTO.
12115 * gimplify.c (gimplify_scan_omp_clauses): Added
12116 OMP_CLAUSE__CILK_FOR_COUNT_ case.
12117 (gimplify_adjust_omp_clauses): Ditto.
12118 (gimplify_omp_for): Added CILK_FOR case.
12119 (gimplify_expr): Ditto.
12120 * omp-low.c: Include cilk.h.
12121 (extract_omp_for_data): Set appropriate kind for
12122 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
12123 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
12124 (create_omp_child_function_name): Added second argument to handle
12126 (cilk_for_check_loop_diff_type): New function.
12127 (expand_cilk_for_call): Likewise.
12128 (expand_cilk_for): Likewise.
12129 (create_omp_child_function): Set cilk_for_count; handle the cases when
12130 it is true; call create_omp_child_function_name with second argument.
12131 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
12132 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
12133 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
12134 * tree-nested.c (convert_nonlocal_omp_clauses): Added
12135 OMP_CLAUSE__CILK_FOR_COUNT_ case.
12136 (convert_local_omp_clauses): Ditto.
12137 * tree-pretty-print.c (dump_omp_clause): Added
12138 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
12139 (dump_generic_node): Added CILK_FOR case.
12140 * tree.c (omp_clause_num_ops): New element
12141 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
12142 (omp_clause_code_name): New element _Cilk_for_count_.
12143 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
12144 * tree.def: Add tree code for CILK_FOR.
12146 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12148 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
12149 (ppc403-compare): Add "exts with dot" case.
12150 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
12151 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
12152 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
12153 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
12154 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
12155 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
12156 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
12157 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
12158 cell-cmp-microcoded): Similarly.
12159 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
12160 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
12161 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
12162 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
12163 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
12164 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
12165 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
12166 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
12167 (power6-compare): Add "exts with dot" case.
12168 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
12169 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
12170 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
12172 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
12173 if avoiding Cell microcode.
12174 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
12175 (is_cracked_insn): Ditto.
12176 (insn_must_be_first_in_group): Ditto.
12177 * config/rs6000/rs6000.md (dot): Adjust comment.
12178 (cell_micro): Handle exts+dot.
12179 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
12180 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
12181 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
12182 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
12183 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
12184 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
12185 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
12187 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12189 * config/rs6000/rs6000.md (QHSI): Delete.
12190 (EXTQI, EXTHI, EXTSI): New mode iterators.
12191 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
12192 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
12193 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
12194 9 anonymous instructions, and 8 splitters): Delete.
12195 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
12196 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
12197 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
12198 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
12199 *zero_extendsi<mode>2_dot2): New.
12201 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12203 * config/rs6000/rs6000.md (any_extend): New code iterator.
12204 (u, su): New code attributes.
12205 (dmode, DMODE): New mode attributes.
12206 (<su>mul<mode>3_highpart): New.
12207 (*<su>mul<mode>3_highpart): New.
12208 (<su>mulsi3_highpart_le): New.
12209 (<su>muldi3_highpart_le): New.
12210 (<su>mulsi3_highpart_64): New.
12211 (<u>mul<mode><dmode>3): New.
12212 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
12213 splitters): Delete.
12214 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
12215 splitters): Delete.
12217 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
12219 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
12220 *mulsi3_internal2, and two splitters): Delete.
12221 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
12223 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
12225 2014-09-02 Richard Biener <rguenther@suse.de>
12227 PR tree-optimization/62695
12228 * tree-ssa-structalias.c (find_func_clobbers): Add missing
12231 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
12234 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
12236 2014-09-01 Andi Kleen <ak@linux.intel.com>
12238 * file-find.c (add_prefix_begin): Add.
12239 (do_add_prefix): Rename from add_prefix with first argument.
12240 (add_prefix): Add new wrapper.
12241 * file-find.h (add_prefix_begin): Add.
12242 * gcc-ar.c (main): Support -B option.
12244 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
12246 * genemit.c: Include dumpfile.h.
12247 (gen_split): Print name of splitter function to dump file.
12249 2014-09-01 Richard Biener <rguenther@suse.de>
12251 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
12252 Use stack auto_vecs for constraint expressions.
12253 (find_func_aliases_for_call): Likewise.
12254 (find_func_aliases): Likewise.
12255 (find_func_clobbers): Likewise.
12257 2014-09-01 Richard Biener <rguenther@suse.de>
12259 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
12260 operands vector in most cases. Remove redundant code.
12262 2014-09-01 Olivier Hainque <hainque@adacore.com>
12264 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
12265 $WIND_BASE instead of designating a harcoded arbitrary home dir.
12266 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
12268 2014-09-01 Richard Biener <rguenther@suse.de>
12270 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
12271 copy_reference_ops_from_call, vn_nary_op_compute_hash,
12272 vn_reference_compute_hash, vn_reference_insert): Remove.
12273 (vn_reference_lookup_call): New function.
12274 * tree-ssa-sccvn.c (vn_reference_compute_hash,
12275 copy_reference_ops_from_ref, copy_reference_ops_from_call,
12276 vn_reference_insert, vn_nary_op_compute_hash): Make static.
12277 (create_reference_ops_from_call): Remove.
12278 (vn_reference_lookup_3): Properly update shared_lookup_references.
12279 (vn_reference_lookup_pieces): Assert that we updated
12280 shared_lookup_references properly.
12281 (vn_reference_lookup): Likewise.
12282 (vn_reference_lookup_call): New function.
12283 (visit_reference_op_call): Use it. Avoid re-building the
12285 (visit_reference_op_load): Remove redundant lookup.
12286 (visit_reference_op_store): Perform special tail-merging work
12287 only when possibly doing tail-merging.
12288 (visit_use): Likewise.
12289 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
12291 2014-09-01 Jakub Jelinek <jakub@redhat.com>
12294 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
12295 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
12296 (find_inc): Revert 2014-08-13 change.
12298 2014-09-01 Marek Polacek <polacek@redhat.com>
12300 PR middle-end/61903
12301 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
12302 Change the type of V to unsigned HOST_WIDE_INT.
12304 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
12306 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
12307 the size of byte markers.
12308 (do_shift_rotate): Fix confusion between host, target and marker byte
12310 (verify_symbolic_number_p): Likewise.
12311 (find_bswap_or_nop_1): Likewise.
12312 (find_bswap_or_nop): Likewise.
12314 2014-09-01 Olivier Hainque <hainque@adacore.com>
12316 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
12317 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
12319 2014-09-01 Jakub Jelinek <jakub@redhat.com>
12321 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
12322 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
12323 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
12325 2014-09-01 Yury Gribov <y.gribov@samsung.com>
12329 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
12330 (build_check_stmt): Likewise.
12331 (instrument_strlen_call): Likewise.
12332 (asan_expand_check_ifn): Likewise and fix types.
12333 (maybe_cast_to_ptrmode): New function.
12335 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12337 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
12339 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
12341 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
12343 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
12345 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
12346 prefix to function labels when generating fast indirect calls.
12348 2014-08-30 David Malcolm <dmalcolm@redhat.com>
12352 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
12353 param back from rtx_insn * to rtx. Rename param from "label" to
12354 "label_or_return", reintroducing "label" as an rtx_insn * after
12355 we've ensured it's not a RETURN.
12356 (first_active_target_insn): Likewise for return type and param;
12357 add a checked cast to rtx_insn * once we've ensured "insn" is not
12359 (steal_delay_list_from_target): Convert param "pnew_thread" back
12360 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
12362 (own_thread_p): Convert param "thread" back from an rtx_insn * to
12363 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
12364 cast once we've established we're not dealing with a RETURN,
12365 renaming subsequent uses of "thread" to "thread_insn".
12366 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
12368 (follow_jumps): Convert return type and param "label" from
12369 rtx_insn * back to rtx. Move initialization of "value" to after
12370 the handling for ANY_RETURN_P, adding a checked cast there to
12371 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
12372 rename to "this_label_or_return", reintroducing "this_label" as
12373 an rtx_insn * once we've handled the case where it could be an
12375 (fill_slots_from_thread): Rename param "thread" to
12376 "thread_or_return", converting from an rtx_insn * back to an rtx.
12377 Reintroduce name "thread" as an rtx_insn * local with a checked
12378 cast once we've handled the case of it being an ANY_RETURN_P.
12379 Convert local "new_thread" from an rtx_insn * back to an rtx.
12380 Add a checked cast when assigning to "trial" from "new_thread".
12381 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
12382 checked cast to rtx_insn * from "new_thread" when invoking
12384 (fill_eager_delay_slots): Convert locals "target_label",
12385 "insn_at_target" from rtx_insn * back to rtx.
12386 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
12387 (relax_delay_slots): Convert locals "trial", "target_label" from
12388 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
12389 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
12390 invoking update_block.
12391 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
12392 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
12394 * resource.h (mark_target_live_regs): Undo erroneous conversion
12395 of second param of r214693, converting it back from rtx_insn * to
12396 rtx, since it could be a RETURN.
12398 * resource.c (find_dead_or_set_registers): Similarly, convert
12399 param "jump_target" back from an rtx_insn ** to an rtx *, as we
12400 could be writing back a RETURN. Rename local rtx_insn * "next" to
12401 "next_insn", and introduce "lab_or_return" as a local rtx,
12402 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
12403 (mark_target_live_regs): Undo erroneous conversion
12404 of second param of r214693, converting it back from rtx_insn * to
12405 rtx, since it could be a RETURN. Rename it from "target" to
12406 "target_maybe_return", reintroducing the name "target" as a local
12407 rtx_insn * with a checked cast, after we've handled the case of
12410 2014-08-29 DJ Delorie <dj@redhat.com>
12412 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
12413 pointer size up to a power of two.
12414 * defaults.h (DWARF2_ADDR_SIZE): Round up.
12415 (POINTER_SIZE_UNITS): New, rounded up value.
12416 * dwarf2asm.c (size_of_encoded_value): Use it.
12417 (dw2_output_indirect_constant_1): Likewise.
12418 * expmed.c (init_expmed_one_conv): We now know the sizes of
12420 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
12421 * optabs.c (expand_float): Use precision, not size.
12422 (expand_fix): Likewise.
12423 * simplify-rtx (simplify_unary_operation_1): Likewise.
12424 * tree-dfa.c (get_ref_base_and_extent): Likewise.
12425 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
12426 (default_assemble_integer) Likewise.
12427 (dump_tm_clone_pairs): Likewise.
12428 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
12429 * var-tracking.c (adjust_mems): Allow partial-int modes also.
12430 (prepare_call_arguments): Likewise.
12431 * stor-layout.c (finalize_type_size): Preserve precision.
12432 (layout_type): Use precision, not size.
12434 * expr.c (convert_move): If the target has an explicit converter,
12437 2014-08-29 David Malcolm <dmalcolm@redhat.com>
12439 * gdbinit.in: Skip various inline functions in rtl.h when
12442 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
12445 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
12447 2014-08-29 Richard Biener <rguenther@suse.de>
12449 PR tree-optimization/62291
12450 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
12451 exactly the vector size needed and use quick_push.
12452 (phi_translate_1): Adjust comment.
12453 (valid_in_sets): Remove block argument and remove pointless
12455 (dependent_clean): Adjust for removal of block argument.
12457 (compute_antic_aux): Likewise.
12458 (compute_partial_antic_aux): Likewise.
12460 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
12461 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12462 Anna Tikhonova <anna.tikhonova@intel.com>
12463 Ilya Tocar <ilya.tocar@intel.com>
12464 Andrey Turetskiy <andrey.turetskiy@intel.com>
12465 Ilya Verbin <ilya.verbin@intel.com>
12466 Kirill Yukhin <kirill.yukhin@intel.com>
12467 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12469 * config/i386/sse.md
12470 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
12471 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
12472 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
12473 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
12475 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
12476 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12477 Anna Tikhonova <anna.tikhonova@intel.com>
12478 Ilya Tocar <ilya.tocar@intel.com>
12479 Andrey Turetskiy <andrey.turetskiy@intel.com>
12480 Ilya Verbin <ilya.verbin@intel.com>
12481 Kirill Yukhin <kirill.yukhin@intel.com>
12482 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12484 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
12485 * config/i386/sse.md
12486 (define_mode_iterator VI4_128_8_256): New.
12487 (define_mode_iterator VI2_128_4_256): Ditto.
12488 (define_mode_iterator PMOV_DST_MODE): Rename into
12489 (define_mode_iterator PMOV_DST_MODE_1): this.
12490 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
12491 Use PMOV_DST_MODE_1 mode iterator.
12492 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
12494 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
12496 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
12497 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
12498 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
12499 (define_mode_iterator PMOV_DST_MODE_2): New.
12500 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
12501 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
12502 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
12504 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
12505 (define_mode_attr pmov_dst_3): Ditto.
12506 (define_mode_attr pmov_dst_zeroed_3): Ditto.
12507 (define_mode_attr pmov_suff_3): Ditto.
12508 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
12509 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
12510 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
12511 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
12512 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
12513 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
12514 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
12515 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
12516 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
12517 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
12518 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
12519 (define_mode_attr pmov_dst_4): Ditto.
12520 (define_mode_attr pmov_dst_zeroed_4): Ditto.
12521 (define_mode_attr pmov_suff_4): Ditto.
12522 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
12523 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
12524 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
12525 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
12526 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
12527 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
12528 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
12529 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
12530 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
12531 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
12532 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
12534 2014-08-29 Richard Biener <rguenther@suse.de>
12536 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
12537 NON_LVALUE_EXPR in gimple.
12539 2014-08-29 Richard Biener <rguenther@suse.de>
12541 PR middle-end/62292
12542 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
12543 from previous refactoring.
12544 (gimple_fold_builtin_strncpy): Likewise.
12546 2014-08-29 David Malcolm <dmalcolm@redhat.com>
12549 * function.c (assign_parm_setup_reg): Remove erroneous checked
12550 cast to rtx_insn * on result of gen_extend_insn in favor of
12551 introducing a new local rtx "pat".
12553 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12555 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
12556 to silence warning.
12557 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
12559 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12561 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
12562 (next_insn): Likewise.
12563 * emit-rtl.c (next_insn): Likewise.
12564 (previous_insn): Likewise.
12565 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
12566 "insn" and "next" from rtx to rtx_insn *.
12567 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
12568 "insn", "insn1", "vliw_start", "prologue_end_note",
12569 "last_insn_in_packet".
12571 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12573 * shrink-wrap.h (active_insn_between): Strengthen both params from
12575 * function.c (active_insn_between): Likewise.
12577 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12579 * genattr.c (main): When writing out insn-attr.h, strengthen param
12580 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
12581 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
12582 writing out the definition of dfa_clear_single_insn_cache to the
12583 generated insn-automata.c
12585 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12587 * resource.h (clear_hashed_info_for_insn): Strengthen param from
12589 (incr_ticks_for_insn): Likewise.
12590 (init_resource_info): Likewise.
12592 * resource.c (init_resource_info): Likewise.
12593 (clear_hashed_info_for_insn): Likewise.
12594 (incr_ticks_for_insn): Likewise.
12596 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
12598 (steal_delay_list_from_target): Use methods of "seq".
12599 (try_merge_delay_insns): Use methods of "merged_insns".
12600 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
12601 (reorg_redirect_jump): Likewise for param "jump".
12603 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12605 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
12607 * config/s390/s390.c (s390_split_branches): Eliminate top-level
12608 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
12610 (s390_mainpool_finish): In three places, split out a local rtx
12611 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
12612 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
12613 and split another local rtx "insn" out into rtx "pat" and
12615 * config/sh/sh.c (output_branchy_insn): Rather than working
12616 directly on operands[9], introduce local rtx_code_label *
12617 variables named "lab" in two places, working on them, and then
12618 assigning them to operands[9], so that the intervening operations
12619 are known by the type system to be on insns.
12621 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12623 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
12626 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
12627 in invocation of INSN_HAS_LOCATION.
12629 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12631 * config/rs6000/altivec.h (vec_xl): New #define.
12632 (vec_xst): Likewise.
12633 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
12634 (XXSPLTD_V2DI): Likewise.
12635 (DIV_V2DI): Likewise.
12636 (UDIV_V2DI): Likewise.
12637 (MUL_V2DI): Likewise.
12638 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12639 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
12640 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
12641 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
12642 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
12643 (UNSPEC_VSX_DIVSD): Likewise.
12644 (UNSPEC_VSX_DIVUD): Likewise.
12645 (UNSPEC_VSX_MULSD): Likewise.
12646 (vsx_mul_v2di): New insn-and-split.
12647 (vsx_div_v2di): Likewise.
12648 (vsx_udiv_v2di): Likewise.
12649 (vsx_xxspltd_<mode>): New insn.
12651 2014-08-28 David Malcolm <dmalcolm@redhat.com>
12653 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
12655 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
12656 (NEXT_INSN): Likewise.
12657 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
12658 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
12660 (no_labels_between_p): Likewise for both params.
12662 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
12663 cast when using NEXT_INSN on operands[2].
12664 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
12665 "insn" from rtx to rtx_insn *, adding a checked cast.
12666 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
12668 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
12670 (arc_text_label): Likewise for param "insn".
12671 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
12673 (arc_ccfsm_record_condition): Likewise for param "jump".
12674 (arc_text_label): Likewise for local "label".
12675 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
12676 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
12677 a method for typesafety. Add a checked cast.
12678 * config/arc/constraints.md (Clb): Add a checked cast when getting
12679 the CODE_LABEL from a LABEL_REF.
12680 * config/arm/arm.c (require_pic_register): Strengthen locals
12681 "seq", "insn" from rtx to rtx_insn *.
12682 (create_fix_barrier): Likewise for locals "selected", "next".
12683 (thumb1_reorg): Likewise for locals "prev", "insn".
12684 (arm_expand_prologue): Likewise for local "last".
12685 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
12687 (thumb2_output_casesi): Likewise for operands[2].
12688 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
12689 strengthen local "insn" from rtx to rtx_insn *.
12690 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
12691 type and param "insn".
12692 (find_prev_insn_start): Likewise.
12693 (hwloop_optimize): Likewise for locals "insn", "last_insn",
12695 (gen_one_bundle): Likewise for loal "t".
12696 (find_load): Likewise for param "insn".
12697 (workaround_speculation): Likewise for locals "insn", "next",
12698 "target", "next_tgt".
12699 * config/c6x/c6x.c (assign_reservations): Likewise for both params
12700 and for locals "insn", "within", "last".
12701 (count_unit_reqs): Likewise for params "head", "tail" and local
12703 (try_rename_operands): Likewise for params "head", "tail".
12704 (reshuffle_units): Likewise for locals "head", "tail", "insn".
12705 (struct c6x_sched_context): Likewise for fields
12706 "last_scheduled_insn", "last_scheduled_iter0".
12707 (init_sched_state): Replace NULL_RTX with NULL.
12708 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
12710 (undo_split_delayed_nonbranch): Likewise for param and for local
12712 (conditionalize_after_sched): Likewise for local "insn".
12713 (bb_earliest_end_cycle): Likewise.
12714 (filter_insns_above): Likewise for locals "insn", "next".
12715 (hwloop_optimize): Remove redundant checked cast.
12716 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
12717 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
12718 NULL_RTX with NULL.
12719 (cris_simple_epilogue): Likewise.
12720 (cris_expand_prologue): Likewise.
12721 (cris_expand_epilogue): Likewise.
12722 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
12723 local "insn" from rtx to rtx_insn *.
12724 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
12725 (struct frv_packet_group): Likewise for the elements within array
12726 fields "insns", "sorted", and for field "nop".
12727 (frv_packet): Likewise for the elements within array field
12729 (frv_add_insn_to_packet): Likewise for param "insn".
12730 (frv_insert_nop_in_packet): Likewise for param "insn" and local
12732 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
12733 (frv_sort_insn_group_1): Likewise for local "insn".
12734 (frv_optimize_membar_local): Likewise.
12735 (frv_align_label): Likewise for locals "x", "last", "barrier",
12737 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
12739 (ia64_sched_init): Likewise for local "insn".
12740 (scheduled_good_insn): Likewise for param "last".
12741 (struct _ia64_sched_context): Likewise for field
12742 "last_scheduled_insn".
12743 (ia64_init_sched_context): Replace NULL_RTX with NULL.
12744 (struct bundle_state): Likewise for field "insn".
12745 (issue_nops_and_insn): Likewise for param "insn".
12746 (get_next_important_insn): Likewise for return type and both
12748 (ia64_add_bundle_selector_before): Likewise for param "insn".
12749 (bundling): Likewise for params "prev_head_insn", "tail" and
12750 locals "insn", "next_insn", "b". Eliminate top-level local rtx
12751 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
12752 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
12753 Strengthen final param from rtx to rtx_insn *.
12754 (iq2000_move_1word): Likewise for second param.
12755 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
12756 param "cur_insn" and local "next_insn".
12757 (iq2000_move_1word): Likewise for param "insn".
12758 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
12759 casts when using NEXT_INSN on operands[1].
12760 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
12761 "insn" from rtx to rtx_insn *.
12762 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
12763 "x", introducing local rtx_insn * "insn" for when working with the
12764 CODE_LABEL of the LABEL_REF.
12765 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
12767 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
12769 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
12771 (conditionalize_block): Likewise for return type and param.
12772 (mcore_is_dead): Likewise for param "first" and local "insn".
12773 (emit_new_cond_insn): Likewise for return type.
12774 (conditionalize_block): Likewise for return type, param, and
12775 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
12777 (conditionalize_optimization): Likewise for local "insn".
12778 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
12780 * config/microblaze/microblaze.md: Add checked casts when using
12782 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
12783 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
12784 and rtx_insn * "insn".
12785 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
12786 checked cast when using NEXT_INSN on operands[2].
12787 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
12788 local "insn" from rtx to rtx_insn *.
12789 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
12791 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
12792 Add a checked cast when using NEXT_INSN on operands[1].
12793 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
12795 (pa_output_cbranch): Likewise for final param.
12796 (pa_output_lbranch): Likewise for second param.
12797 (pa_output_bb): Likewise for third param.
12798 (pa_output_bvb): Likewise.
12799 (pa_output_dbra): Likewise for second param.
12800 (pa_output_movb): Likewise.
12801 (pa_output_parallel_movb): Likewise.
12802 (pa_output_parallel_addb): Likewise.
12803 (pa_output_millicode_call): Likewise for first param.
12804 (pa_output_mul_insn): Likewise for second param.
12805 (pa_output_div_insn): Likewise for third param.
12806 (pa_output_mod_insn): Likewise for second param.
12807 (pa_jump_in_call_delay): Likewise for param.
12808 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
12809 (pa_output_div_insn): Likewise.
12810 (pa_output_mod_insn): Likewise.
12811 (pa_output_cbranch): Likewise.
12812 (pa_output_lbranch): Likewise.
12813 (pa_output_bb): Likewise.
12814 (pa_output_bvb): Likewise.
12815 (pa_output_dbra): Likewise.
12816 (pa_output_movb): Likewise.
12817 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
12818 to simplify and for typesafety.
12819 (pa_output_call): Use method of rtx_sequence *.
12820 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
12821 (pa_jump_in_call_delay): Likewise.
12822 (pa_output_parallel_movb): Likewise.
12823 (pa_output_parallel_addb): Likewise.
12824 (pa_following_call): Likewise.
12825 (pa_combine_instructions): Likewise for locals "anchor",
12827 (pa_can_combine_p): Likewise for params "anchor", "floater" and
12828 locals "start", "end".
12829 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
12830 param "insn" and local "local_insn".
12831 (picochip_final_prescan_insn): Likewise for local "local_insn".
12832 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
12834 (uses_TOC): Likewise.
12835 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
12836 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
12837 splitting out to more tightly-scoped locals, 3 as rtx and one as
12839 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
12841 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
12843 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
12845 (fixup_addr_diff_vecs): Likewise.
12846 (reg_unused_after): Likewise for param 2.
12847 (sh_can_redirect_branch): Likewise for both params.
12848 (check_use_sfunc_addr): Likewise for param 1.
12849 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
12850 (find_barrier): Likewise for local "last_got".
12851 (gen_block_redirect): Likewise for return type, param "jump" and
12852 locals "prev", "scan", "next", "insn".
12853 (struct far_branch): Likewise for fields "near_label",
12854 "insert_place", "far_label".
12855 (gen_far_branch): Likewise for local "jump".
12856 (fixup_addr_diff_vecs): Likewise for param "first" and locals
12858 (barrier_align): Likewise for param and for locals "prev", "x".
12859 Introduce local rtx_sequence * "prev_seq" and use insn method for
12860 typesafety and clarity.
12861 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
12862 (get_dest_uid): Likewise for local "dest".
12863 (split_branches): Likewise for locals "next", "beyond", "label",
12864 "block", "far_label". Add checked casts when assigning to
12865 bp->far_label and "far_label".
12866 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
12867 (sequence_insn_p): Likewise.
12868 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
12869 more loop-scoped rtx "insn" when walking LABEL_REFS.
12870 (sh_can_redirect_branch): Strengthen both params from rtx to
12872 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
12873 new local rtx_sequence * "seq" via a dyn_cast, and use a method
12874 for clarity and typesafety.
12875 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
12876 "insn" from rtx to rtx_insn *.
12877 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
12878 when using NEXT_INSN on the CODE_LABEL in operands[2].
12879 (define_insn "casesi_worker_2"): Likewise.
12880 (define_insn "casesi_shift_media"): Likewise.
12881 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
12883 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
12884 Strengthen field "insn" from rtx to rtx_insn *.
12885 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
12886 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
12887 param "start_insn" and local "start_insn".
12888 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
12890 (find_set_of_reg_bb): Likewise for param "insn".
12891 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
12892 (trace_reg_uses): Likewise for param "start_insn".
12893 (sh_treg_combine::cbranch_trace): Likewise for field
12895 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
12897 (sh_treg_combine::record_set_of_reg): Likewise for param
12898 "start_insn" and local "i".
12899 (sh_treg_combine::can_remove_cstore): Likewise for local
12901 (sh_treg_combine::try_optimize_cbranch): Likewise for param
12903 (sh_treg_combine::execute): Likewise for local "i".
12904 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
12906 (sparc_check_64): Likewise for second param.
12907 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
12908 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
12909 dyn_cast, using its insn method for typesafety and clarity.
12910 (empty_delay_slot): Strengthen param "insn" from rtx to
12912 (set_extends): Likewise.
12913 (sparc_check_64): Likewise.
12914 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
12915 for locals "seq", "last_insn".
12916 (combine_bnp): Likewise for param "insn".
12917 (xstormy16_reorg): Likewise for local "insn".
12918 * config/v850/v850.c (substitute_ep_register): Likewise for params
12919 "first_insn", "last_insn" and local "insn".
12920 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
12921 elements of "regs" array, and local "insn".
12922 * except.c (emit_note_eh_region_end): Likewise for param "insn".
12923 * final.c (final_sequence): Strengthen this global from rtx to
12925 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
12927 (final_scan_insn): Update assignment to "final_sequence" to be
12928 from "seq", the cast version of "body", for type-safety.
12929 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
12930 "insns" from rtx to rtx_insn *.
12931 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
12932 * genattr.c (main): When writing out generated insn-attr.h,
12933 strengthen params 1 and 3 of eligible_for_delay,
12934 eligible_for_annul_true, eligible_for_annul_false from rtx to
12936 * genattrtab.c (write_eligible_delay): Likewise when writing out
12937 generated insn-attrtab.c; also local "insn" the generated
12939 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
12941 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
12942 "start_label" from rtx to rtx_insn *.
12943 * ira.c (decrease_live_ranges_number): Likewise for local "p".
12944 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
12945 "insns" and local "insn".
12946 (validate_equiv_mem): Likewise for param "start" and local "insn".
12947 (memref_used_between_p): Likewise for params "start", "end" and
12949 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
12951 * loop-doloop.c (doloop_optimize): Within region guarded by
12952 INSN_P (doloop_pat), introduce a new local rtx_insn *
12953 "doloop_insn" via a checked cast, and use it for typesafety,
12954 eventually writing the value back into doloop_pat.
12955 * output.h (final_sequence): Strengthen this global from rtx to
12957 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
12958 reintroducing "insn" as an rtx_insn * via a checked cast.
12959 Strengthen param "attempt" and local "new_insn"from rtx to
12961 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
12963 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
12964 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
12965 "p" in favor of more tightly-scoped replacements, sometimes rtx
12966 and sometimes rtx_insn *, as appropriate.
12967 (delete_output_reload): Eliminate top-level rtx "i1", splitting
12968 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
12969 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
12970 local "trial" from rtx to rtx_insn *.
12971 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
12972 rtx to rtx_insn *. Strenghten local "pat" from rtx to
12973 rtx_sequence * and use methods for clarity and typesafety.
12974 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
12975 rtx to rtx_insn *. Strenghten local "li" from rtx to
12976 rtx_insn_list * and use its methods for clarity and typesafety.
12977 (steal_delay_list_from_target): Strengthen param "insn" from rtx
12979 (steal_delay_list_from_fallthrough): Likewise.
12980 (try_merge_delay_insns): Likewise for param "thread" and locals
12981 "trial", "next_trial", "delay_insn".
12982 (redundant_insn): Likewise for param "target" and local "trial".
12983 (own_thread_p): Likewise for param "thread" and locals
12984 "active_insn", "insn".
12985 (get_label_before): Likewise for param "insn".
12986 (fill_simple_delay_slots): Likewise for local "new_label"; use
12987 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
12988 (label_before_next_insn): Strengthen return type and local "insn"
12989 from rtx to rtx_insn *.
12990 (relax_delay_slots): Likewise for locals "other", "tmp".
12991 (make_return_insns): Likewise for param "first" and locals "insn",
12992 "jump_insn", "prev". Move declaration of "pat" to its assignment
12993 and strengthen from rtx to rtx_sequence *. Use its methods for
12994 clarity and typesafety.
12995 * rtlanal.c (no_labels_between_p): Strengthen params from
12996 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
12998 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
12999 from const_rtx to const rtx_insn *.
13000 (reg_set_between_p): Rename param "from_insn" to
13001 "uncast_from_insn", and reintroduce "from_insn" as a
13002 const rtx_insn * via a checked cast.
13003 (modified_between_p): Likewise for param "start" as "uncast_start".
13004 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
13005 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
13006 "tmp", head" from rtx to rtx_insn *.
13007 (recompute_rev_top_order): Likewise for local "insn".
13008 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
13009 * store-motion.c (build_store_vectors): Likewise for local "insn".
13010 Strengthen local "st" from rtx to rtx_insn_list * and use methods
13011 for clarity and typesafety.
13012 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
13014 (computation_cost): Likewise for local "seq".
13015 (get_address_cost): Likewise.
13017 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13019 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
13021 (label_is_jump_target_p): Likewise for second param.
13023 * rtlanal.c (tablejump_p): Likewise for param "insn".
13024 (label_is_jump_target_p): Likewise for param "jump_insn".
13026 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13028 * rtl.h (find_first_parameter_load): Strengthen return type and
13029 both params from rtx to rtx_insn *.
13030 * rtlanal.c (find_first_parameter_load): Strengthen return type,
13031 both params and locals "before", "first_set" from rtx to
13032 rtx_insn *. Remove now-redundant cast.
13033 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
13035 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13037 * rtl.h (find_last_value): Delete.
13038 * rtlanal.c (find_last_value): Delete.
13040 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13042 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
13043 from rtx to rtx_insn *.
13044 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
13045 rtx "note" with new local rtx_insn * "new_head" when calculating
13046 head insn of new basic block.
13047 * combine.c (combine_split_insns): Strengthen return type and local
13048 "ret" from rtx to rtx_insn *.
13049 (likely_spilled_retval_p): Likewise for locals "use" and "p".
13050 (try_combine): Eliminate local "m_split", splitting into new
13051 locals "m_split_insn" and "m_split_pat".
13052 (find_split_point): Strengthen local "seq" from rtx into
13054 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
13055 locals "label", "branch".
13056 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
13058 (define_expand "umulsi3_highpart"): Likewise for local "insn".
13059 * dse.c (note_add_store_info): Likewise for fields "first",
13061 (note_add_store): Likewise for local "insn".
13062 (emit_inc_dec_insn_before): Likewise for locals "insn",
13064 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
13065 (replace_read): Likewise for locals "insns", "this_insn".
13066 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
13067 (notice_eh_throw): Likewise for param "insn".
13068 (before_next_cfi_note): Likewise for return type, param, and local
13070 (connect_traces): Likewise for local "note".
13071 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
13072 (verify_rtl_sharing): Likewise.
13073 (unshare_all_rtl_in_chain): Likewise for param "insn".
13074 (get_first_nonnote_insn): Likewise for local "insn".
13075 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
13076 "seq" and use its methods to clarify things.
13077 (next_insn): Strengthen return type from rtx to rtx_insn *.
13078 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
13079 local rtx_insn * using a checked cast, dropping a checked cast
13080 made redundant by this change. Use a cast to and method of
13081 rtx_sequence to clarify the code.
13082 (previous_insn): Rename param "insn" to "uncast_insn" and
13083 reintroduce "insn" as a local rtx_insn * using a checked cast,
13084 dropping a checked cast made redundant by this change. Use a cast
13085 to and method of rtx_sequence to clarify the code.
13086 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
13087 reintroduce "insn" as a local rtx_insn * using a checked cast,
13088 dropping a checked cast made redundant by this change.
13089 (next_nonnote_insn_bb): Likewise.
13090 (prev_nonnote_insn): Likewise.
13091 (prev_nonnote_insn_bb): Likewise.
13092 (next_nondebug_insn): Likewise.
13093 (prev_nondebug_insn): Likewise.
13094 (next_nonnote_nondebug_insn): Likewise.
13095 (prev_nonnote_nondebug_insn): Likewise.
13096 (next_real_insn): Likewise.
13097 (prev_real_insn): Likewise.
13098 (next_active_insn): Likewise.
13099 (prev_active_insn): Likewise.
13100 (next_cc0_user): Likewise. Use rtx_sequence and a method for
13102 (prev_cc0_setter): Likewise.
13103 (try_split): Rename param "trial" to "uncast_trial" and
13104 reintroduce "insn" as a local rtx_insn * using a checked cast,
13105 dropping checked casts made redundant by this change.
13106 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
13108 (remove_insn): Rename param "insn" to "uncast_insn" and
13109 reintroduce "insn" as a local rtx_insn * using a checked cast.
13110 (emit_pattern_after_setloc): Likewise for param "after", as
13112 (emit_pattern_after): Likewise. Strengthen local "prev" from
13114 (emit_pattern_before_setloc): Rename param "before" to
13115 "uncast_before" and reintroduce "before" as a local rtx_insn *
13116 using a checked cast. Strengthen locals "first", "last" from
13118 (emit_pattern_before): Likewise rename/cast param "before" to
13119 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
13120 * except.c (copy_reg_eh_region_note_forward): Strengthen param
13121 "first" and local "insn" from rtx to rtx_insn *.
13122 (copy_reg_eh_region_note_backward): Likewise for param "last"
13124 * expr.c (fixup_args_size_notes): Rename param "last" to
13125 "uncast_last" and reintroduce "last" as a local rtx_insn *
13126 using a checked cast. Strengthen local "insn" from rtx to
13128 * function.c (set_insn_locations): Strengthen param "insn" from
13130 (record_insns): Likewise for param "insns" and local "tmp".
13131 (active_insn_between): Rename param "tail" to
13132 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
13133 using a checked cast.
13134 (thread_prologue_and_epilogue_insns): Split out top-level local
13135 rtx "seq" into three different rtx_insn * locals. Strengthen
13136 local "prologue_seq" from rtx to rtx_insn *.
13137 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
13138 from rtx to rtx_insn *.
13139 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
13140 (priority): Likewise for locals "prev_first", "twin".
13141 (setup_insn_max_reg_pressure): Likewise for param "after".
13142 (sched_setup_bb_reg_pressure_info): Likewise.
13143 (no_real_insns_p): Strengthen params from const_rtx to
13145 (schedule_block): Strengthen local "next_tail" from rtx to
13147 * ifcvt.c (find_active_insn_before): Strengthen return type and
13148 param "insn" from rtx to rtx_insn *.
13149 (find_active_insn_after): Likewise.
13150 (cond_exec_process_insns): Likewise for param "start" and local "insn".
13151 (cond_exec_process_if_block): Likewise for locals "then_start",
13152 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
13153 (noce_process_if_block): Likewise for local "jump".
13154 (merge_if_block): Likewise for two locals named "end".
13155 (cond_exec_find_if_block): Likewise for local "last_insn".
13156 * jump.c (delete_related_insns): Rename param "insn" to
13157 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
13158 checked cast. Strengthen local "p" from rtx to rtx_insn *.
13159 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
13161 (split_reg): Likewise.
13162 * lra.c (lra_process_new_insns): Likewise.
13163 * modulo-sched.c (permute_partial_schedule): Strengthen param
13164 "last" from rtx to rtx_insn *.
13165 * optabs.c (add_equal_note): Likewise for param "insns" and local
13167 (expand_binop_directly): Add checked casts to rtx_insn * within
13168 NEXT_INSN (pat) uses.
13169 (expand_unop_direct): Likewise.
13170 (maybe_emit_unop_insn): Likewise.
13171 * recog.c (peep2_attempt): Strengthen locals "last",
13172 "before_try", "x" from rtx to rtx_insn *.
13173 * reorg.c (optimize_skip): Strengthen return type and local
13174 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
13175 and locals "trial", "next_trial" from rtx to rtx_insn *.
13176 * resource.c (next_insn_no_annul): Strengthen return type and
13177 param "insn" from rtx to rtx_insn *. Use a cast to and method of
13178 rtx_sequence to clarify the code.
13179 (mark_referenced_resources): Add a checked cast to rtx_insn *
13180 within PREV_INSN (x).
13181 (find_dead_or_set_registers): Strengthen return type, param
13182 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
13183 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
13185 (mark_target_live_regs): Strengthen params "insns" and "target",
13186 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
13187 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
13189 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
13190 from rtx to rtx_insn *.
13191 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
13192 from rtx to rtx_insn *.
13193 (copy_reg_eh_region_note_backward): Likewise.
13194 (unshare_all_rtl_in_chain): Likewise for sole param.
13195 (dump_rtl_slim): Strengthen second and third params from const_rtx
13196 to const rtx_insn *.
13197 * sched-deps.c (sched_free_deps): Strengthen params "head" and
13198 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
13199 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
13200 "next_tail" from rtx to rtx_insn *.
13201 (begin_move_insn): Likewise for local "next".
13202 * sched-int.h (sched_free_deps): Likewise for first and second
13204 (no_real_insns_p): Strengthen both params from const_rtx to
13206 (sched_setup_bb_reg_pressure_info): Strengthen second params from
13208 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
13210 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
13211 and locals "insn", "tail" from const_rtx to const rtx_insn *.
13212 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
13214 (debug_rtl_slim): Strengthen params "first" and "last" from
13215 const_rtx to const rtx_insn *.
13216 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
13217 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
13218 (convert_to_simple_return): Likewise for param "returnjump".
13219 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
13221 (convert_to_simple_return): Likewise for param "returnjump".
13222 * valtrack.c (propagate_for_debug): Likewise for params
13224 * valtrack.h (propagate_for_debug): Likewise for second param.
13226 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13228 * output.h (insn_current_reference_address): Strengthen param
13229 from rtx to rtx_insn *.
13230 * final.c (insn_current_reference_address): Likewise.
13232 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13234 * basic-block.h (inside_basic_block_p): Strengthen param from
13235 const_rtx to const rtx_insn *.
13236 * cfgbuild.c (inside_basic_block_p): Likewise.
13238 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13240 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
13242 (get_trace_info): Likewise for param "insn".
13243 (save_point_p): Likewise.
13244 (maybe_record_trace_start): Likewise for both params.
13245 (maybe_record_trace_start_abnormal): Likewise.
13246 (create_trace_edges): Likewise for sole param and for three of the
13247 locals named "lab".
13248 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
13249 to rtx_insn *, and update a call to pat->element to pat->insn.
13251 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13253 * function.h (struct expr_status): Convert field "x_forced_labels"
13254 from rtx_expr_list * to rtx_insn_list *.
13256 * cfgbuild.c (make_edges): Convert local "x" from an
13257 rtx_expr_list * to an rtx_insn_list *, replacing use of
13258 "element" method with "insn" method.
13259 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
13260 * except.c (sjlj_emit_dispatch_table): Replace use of
13261 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
13263 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
13264 rtx_expr_list * to an rtx_insn_list *, replacing use of
13265 "element" method with "insn" method.
13266 * reload1.c (set_initial_label_offsets): Likewise for local "x".
13267 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
13268 rtx_insn *, adding a checked cast. Replace use of
13269 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
13271 (expand_label): Likewise for local "label_r".
13273 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13275 * function.h (struct rtl_data): Convert field
13276 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
13278 * rtl.h (remove_node_from_insn_list): New prototype.
13280 * builtins.c (expand_builtin): When prepending to
13281 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
13283 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
13284 to rtx_insn_list *, and use its "insn" method rather than
13286 * cfgrtl.c (delete_insn): Use new function
13287 remove_node_from_insn_list rather than
13288 remove_node_from_expr_list.
13289 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
13290 to rtx_insn_list *, and use its "insn" method rather than
13292 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
13293 * reload1.c (set_initial_label_offsets): Likewise for local "x".
13294 * rtlanal.c (remove_node_from_insn_list): New function, adapted
13295 from remove_node_from_expr_list.
13296 * stmt.c (expand_label): When prepending to
13297 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
13300 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13302 * function.h (struct rtl_data): Strengthen fields "x_return_label"
13303 and "x_naked_return_label" from rtx to rtx_code_label *.
13305 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13307 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
13308 (SET_NEXT_INSN): Likewise.
13309 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
13311 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
13312 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
13313 to split out the SEQUENCE from local "bundle", strengthening the
13314 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
13315 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
13316 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
13317 and the type of the elements of the "slot" array from rtx to
13319 (reorg_split_calls): Likewise for locals "insn" and "next", and
13320 the type of the elements of the "slot" array.
13322 * config/frv/frv.c (frv_nops): Likewise for the elements of this
13324 (frv_function_prologue): Likewise for locals "insn", "next",
13326 (frv_register_nop): Introduce a local "nop_insn" to be the
13327 rtx_insn * containing rtx "nop".
13329 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
13330 used as an insn and sometimes as a pattern, so rename it to
13331 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
13332 using it where dealing with the core insn.
13334 * config/picochip/picochip.c (reorder_var_tracking_notes):
13335 Strengthen locals "insn", "next", "last_insn", "queue",
13336 "next_queue", "prev" from rtx to rtx_insn *.
13338 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
13339 the second param is an rtx_insn ** rather than an rtx **.
13340 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
13341 from rtx to rtx_sequence *, and introduce local named "sequence",
13342 using methods of rtx_sequence to clarify the code.
13343 (remove_insn): Introduce local rtx_sequence * named "sequence" and
13345 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
13346 Rename param "after" to "uncast_after", reintroducing "after" as a
13347 local rtx_insn * with a checked cast.
13348 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
13349 reintroducing "after" as a local rtx_insn * with a checked cast.
13350 Strengthen local "last" from rtx to rtx_insn * and remove the
13351 now-redundant checked casts.
13352 (copy_delay_slot_insn): Strengthen return type and param from rtx
13355 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
13356 "last" from rtx to rtx_insn *.
13358 2014-08-28 David Malcolm <dmalcolm@redhat.com>
13360 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
13361 param from rtx to rtx_insn *.
13363 * emit-rtl.c (copy_delay_slot_insn): Likewise.
13365 * reorg.c (skip_consecutive_labels): Strengthen return type, param
13366 and local "insn" from rtx to rtx_insn *.
13367 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
13368 (unfilled_slots_next): Likewise.
13369 (function_return_label): Strengthen from rtx to rtx_code_label *.
13370 (function_simple_return_label): Likewise.
13371 (first_active_target_insn): Strengthen return type and param from
13373 (find_end_label): Strengthen return type from rtx to
13374 rtx_code_label *; strengthen locals as appropriate.
13375 (emit_delay_sequence): Strengthen return type, param "insn" and
13376 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
13377 and local "li" from rtx to rtx_insn_list *, using methods of
13378 rtx_insn_list for clarity and typesafety.
13379 (add_to_delay_list): Strengthen return type and param "insn" from
13380 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
13381 rtx_insn_list * and use methods of rtx_insn_list.
13382 (delete_from_delay_slot): Strengthen return type, param "insn",
13383 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
13384 Strengthen local "seq" from rtx to rtx_sequence *, and local
13385 "delay_list" from rtx to rtx_insn_list *, using methods of
13386 rtx_sequence for clarity and type-safety.
13387 (delete_scheduled_jump): Add checked cast when invoking
13388 delete_from_delay_slot. Strengthen local "trial" from rtx to
13390 (optimize_skip): Strengthen return type and local "delay_list"
13391 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
13393 (steal_delay_list_from_target): Strengthen return type, param
13394 "delay_list" and local "new_delay_list" from rtx to
13395 rtx_insn_list *. Strengthen param "seq" from rtx to
13396 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
13398 Split out local "temp" into multiple more-tightly scoped locals:
13399 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
13400 of rtx_insn_list and rtx_sequence for clarity and typesafety.
13401 Strengthen locals named "trial" from rtx to rtx_insn *.
13402 (steal_delay_list_from_fallthrough): Strengthen return type and
13403 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
13404 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
13405 Strengthen local "trial" from rtx to rtx_insn *.
13406 (try_merge_delay_insns): Strength local "merged_insns" from rtx
13407 to rtx_insn_list * and use its methods. Strengthen local "pat"
13408 from rtx to rtx_sequence * and use its methods. Strengthen locals
13409 "dtrial" and "new_rtx" from rtx to rtx_insn *.
13410 (get_label_before): Strengthen return type and local "label" from
13412 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
13413 "next_trial", "next", prev". Strengthen local "delay_list" from
13414 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
13416 (follow_jumps): Strengthen return type, param "label" and locals
13417 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
13418 (fill_slots_from_thread): Strengthen return type, param
13419 "delay_list" from rtx to rtx_insn_list *. Strengthen params
13420 "insn", "thread", "opposite_thread" and locals "new_thread",
13421 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
13422 "sequence" from a checked cast to rtx_sequence so that we can call
13423 steal_delay_list_from_target and steal_delay_list_from_fallthrough
13424 with an rtx_sequence *.
13425 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
13426 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
13427 Strengthen local "delay_list" from rtx to rtx_insn_list *.
13428 (relax_delay_slots): Strengthen param "first" and locals "insn",
13429 "next", "trial", "delay_insn", "target_label" from rtx to
13430 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
13431 Introduce a local "trial_seq" for PATTERN (trial) of type
13432 rtx_sequence *, in both cases using methods of rtx_sequence.
13433 (dbr_schedule): Strengthen param "first" and locals "insn",
13434 "next", "epilogue_insn" from rtx to rtx_insn *.
13436 2014-08-28 Richard Biener <rguenther@suse.de>
13438 PR tree-optimization/62283
13439 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
13440 Do not peel loops for alignment where the vector loop likely
13441 doesn't run at least VF times.
13443 2014-08-28 Bin Cheng <bin.cheng@arm.com>
13445 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
13446 important_candidates. Consider all important candidates if
13447 IVS doesn't give any result. Remove check on ivs->upto.
13448 (try_add_cand_for): Call iv_ca_add_use only once.
13450 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
13451 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13452 Anna Tikhonova <anna.tikhonova@intel.com>
13453 Ilya Tocar <ilya.tocar@intel.com>
13454 Andrey Turetskiy <andrey.turetskiy@intel.com>
13455 Ilya Verbin <ilya.verbin@intel.com>
13456 Kirill Yukhin <kirill.yukhin@intel.com>
13457 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13459 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
13460 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
13462 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
13463 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
13464 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
13465 (define_insn "*mul<mode>3"): Add EVEX version.
13467 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
13468 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13469 Anna Tikhonova <anna.tikhonova@intel.com>
13470 Ilya Tocar <ilya.tocar@intel.com>
13471 Andrey Turetskiy <andrey.turetskiy@intel.com>
13472 Ilya Verbin <ilya.verbin@intel.com>
13473 Kirill Yukhin <kirill.yukhin@intel.com>
13474 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13476 * config/i386/sse.md
13477 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
13478 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
13479 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
13480 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
13481 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
13482 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
13483 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
13484 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
13485 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
13486 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
13487 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
13488 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
13489 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
13490 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
13491 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
13492 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
13494 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
13495 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13496 Anna Tikhonova <anna.tikhonova@intel.com>
13497 Ilya Tocar <ilya.tocar@intel.com>
13498 Andrey Turetskiy <andrey.turetskiy@intel.com>
13499 Ilya Verbin <ilya.verbin@intel.com>
13500 Kirill Yukhin <kirill.yukhin@intel.com>
13501 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13503 * config/i386/sse.md
13504 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
13505 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
13506 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
13508 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
13509 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13510 Anna Tikhonova <anna.tikhonova@intel.com>
13511 Ilya Tocar <ilya.tocar@intel.com>
13512 Andrey Turetskiy <andrey.turetskiy@intel.com>
13513 Ilya Verbin <ilya.verbin@intel.com>
13514 Kirill Yukhin <kirill.yukhin@intel.com>
13515 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13517 * config/i386/sse.md
13518 (define_mode_iterator VI128_256): New.
13519 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
13521 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
13522 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13523 Anna Tikhonova <anna.tikhonova@intel.com>
13524 Ilya Tocar <ilya.tocar@intel.com>
13525 Andrey Turetskiy <andrey.turetskiy@intel.com>
13526 Ilya Verbin <ilya.verbin@intel.com>
13527 Kirill Yukhin <kirill.yukhin@intel.com>
13528 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13530 * config/i386/sse.md
13531 (define_mode_iterator VI8_256_512): New.
13532 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
13534 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
13535 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
13537 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
13539 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13541 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
13542 pointer to the cumulative reloc value and return the value for
13543 this reloc instead.
13544 (compute_reloc_for_rtx): Take a const_rtx. Call
13545 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
13546 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
13547 for_each_rtx for the CONST case.
13549 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13551 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
13552 (mark_constants_in_pattern): ...this new function to iterate over
13554 (mark_constants): Update accordingly.
13556 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13558 * varasm.c: Include rtl-iter.h.
13559 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
13560 Remove the pointer to the cumulative hashval_t and just return
13561 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
13562 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
13563 Accumulate the hashval_ts here instead of const_rtx_hash_1.
13565 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13567 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
13568 Give real type of data parameter. Remove return value.
13569 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
13570 to iterate over subrtxes.
13572 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13574 * var-tracking.c (use_narrower_mode_test): Turn from being a
13575 for_each_rtx callback to being a function that examines each
13577 (adjust_mems): Update accordingly.
13579 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13581 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
13582 callback to being a function that examines each subrtx itself.
13583 Remove handling of null rtxes.
13584 (add_uses): Update accordingly.
13586 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13588 * var-tracking.c: Include rtl-iter.h.
13589 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
13590 to being a function that examines each subrtx itself.
13591 (use_type): Update accordingly.
13593 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13595 * store-motion.c: Include rtl-iter.h.
13596 (extract_mentioned_regs_1): Delete.
13597 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
13598 for_each_rtx to iterate over subrtxes.
13600 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13602 * sel-sched.c: Include rtl-iter.h
13603 (count_occurrences_1): Delete.
13604 (count_occurrences_equiv): Turn rtxes into const_rtxes.
13605 Use FOR_EACH_SUBRTX rather than for_each_rtx.
13607 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13609 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
13610 * rtlanal.c (tls_referenced_p_1): Delete.
13611 (tls_referenced_p): Take a const_rtx rather than an rtx.
13612 Use FOR_EACH_SUBRTX rather than for_each_rtx.
13614 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13616 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
13617 (for_each_inc_dec): Take an rtx rather than an rtx *.
13618 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
13619 (cselib_record_sets): Likewise.
13620 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
13621 (check_for_inc_dec): Likewise.
13622 * rtlanal.c (for_each_inc_dec_ops): Delete.
13623 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
13624 rather than a pointer to the memory address. Replace
13625 for_each_inc_dec_ops argument with separate function and data
13626 arguments. Abort on non-autoinc addresses.
13627 (for_each_inc_dec_find_mem): Delete.
13628 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
13629 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
13631 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13633 * rtl.h (find_all_hard_regs): Declare.
13634 * rtlanal.c (find_all_hard_regs): New function.
13635 (record_hard_reg_uses_1): Delete.
13636 (record_hard_reg_uses): Use find_all_hard_regs.
13638 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13640 * rtl.h (replace_label_data): Delete.
13641 (replace_label): Take the old label, new label and update-nuses flag
13642 as direct arguments. Return void.
13643 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
13644 * rtlanal.c (replace_label): Update interface as above. Handle
13645 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
13646 iterator. Use FOR_EACH_SUBRTX_PTR.
13648 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13650 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
13651 with const_rtx parameters.
13652 * varasm.c (get_pool_constant): Likewise.
13653 * rtlanal.c (rtx_referenced_p_1): Delete.
13654 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
13655 Assert that the rtx we're looking for is nonnull. Allow searches
13656 for constant pool SYMBOL_REFs.
13658 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13660 * reload1.c: Include rtl-iter.h.
13661 (note_reg_elim_costly): Turn from being a for_each_rtx callback
13662 to being a function that examines each subrtx itself.
13663 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
13665 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13667 * regcprop.c (cprop_find_used_regs_1): Delete.
13668 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
13670 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13672 * regcprop.c: Include rtl-iter.h.
13673 (kill_value): Take a const_rtx.
13674 (kill_autoinc_value): Turn from being a for_each_rtx callback
13675 to being a function that examines each subrtx itself.
13676 (copyprop_hardreg_forward_1): Update accordingly.
13678 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13680 * reg-stack.c: Include rtl-iter.h.
13681 (subst_stack_regs_in_debug_insn): Delete.
13682 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
13683 instead of for_each_rtx.
13685 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13687 * lower-subreg.c (find_decomposable_subregs): Turn from being
13688 a for_each_rtx callback to being a function that examines each
13689 subrtx itself. Remove handling of null rtxes.
13690 (decompose_multiword_subregs): Update accordingly.
13692 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13694 * lower-subreg.c (adjust_decomposed_uses): Delete.
13695 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
13696 Remove handling of null rtxes.
13698 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13700 * lower-subreg.c: Include rtl-iter.h.
13701 (resolve_subreg_use): Turn from being a for_each_rtx callback
13702 to being a function that examines each subrtx itself. Remove
13703 handling of null rtxes.
13704 (resolve_reg_notes, resolve_simple_move): Update accordingly.
13705 (decompose_multiword_subregs): Likewise.
13707 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13709 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
13710 to being a function that examines each subrtx itself.
13711 (simplify_using_condition, simplify_using_initial_values): Update
13714 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13716 * loop-iv.c: Include rtl-iter.h.
13717 (find_single_def_src): New function.
13718 (replace_single_def_regs): Turn from being a for_each_rtx callback
13719 to being a function that examines each subrtx itself.
13720 (replace_in_expr, simplify_using_initial_values): Update accordingly.
13722 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13724 * jump.c (eh_returnjump_p_1): Delete.
13725 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
13726 Remove handling of null rtxes.
13728 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13730 * jump.c: Include rtl-iter.h.
13731 (returnjump_p_1): Delete.
13732 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
13733 Remove handling of null rtxes.
13735 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13737 * ira.c: Include rtl-iter.h.
13738 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
13739 to being a function that examines each subrtx itself. Remove
13740 handling of null rtxes.
13741 (update_equiv_regs): Update call accordingly.
13743 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13745 * fwprop.c: Include rtl-iter.h.
13746 (varying_mem_p): Turn from being a for_each_rtx callback to being
13747 a function that examines each subrtx itself.
13748 (propagate_rtx): Update accordingly.
13750 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13752 * function.c: Include rtl-iter.h
13753 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
13754 callback to being a function that examines each subrtx itself.
13755 Return the changed flag.
13756 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
13757 (instantiate_virtual_regs): Update calls accordingly.
13759 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13761 * final.c: Include rtl-iter.h.
13762 (mark_symbol_ref_as_used): Delete.
13763 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
13766 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13768 * emit-rtl.c: Include rtl-iter.h.
13769 (find_auto_inc): Turn from being a for_each_rtx callback to being
13770 a function that examines each subrtx itself. Assume the first operand
13771 to an RTX_AUTOINC is the automodified register.
13772 (try_split): Update call accordingly.
13774 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13776 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
13777 Return a bool, inverting the result so that 0/false means "not ok".
13778 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
13779 subrtxes of a CONST.
13780 (mem_loc_descriptor, add_const_value_attribute)
13781 (resolve_addr_in_expr): Update calls accordingly.
13783 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13785 * dwarf2out.c: Include rtl-iter.h.
13786 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
13787 Remove unused data parameter. Return a bool, inverting the result
13788 so that 0/false means "not ok".
13789 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
13790 instead of for_each_rtx.
13792 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13794 * dse.c: Include rtl-iter.h.
13795 (check_mem_read_rtx): Change void * parameter to real type.
13796 Remove return value.
13797 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
13798 for_each_rtx. Don't handle null rtxes.
13800 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13802 * df-problems.c: Include rtl-iter.h.
13803 (find_memory): Turn from being a for_each_rtx callback to being
13804 a function that examines each subrtx itself. Continue to look for
13805 volatile references even after a nonvolatile one has been found.
13806 (can_move_insns_across): Update calls accordingly.
13808 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13810 * ddg.c (walk_mems_2, walk_mems_1): Delete.
13811 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
13812 to iterate over subrtxes. Return a bool rather than an int.
13814 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13816 * ddg.c: Include rtl-iter.h.
13817 (mark_mem_use_1): Rename to...
13818 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
13819 instead of for_each_rtx.
13820 (mem_read_insn_p): Update accordingly.
13822 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13824 * cse.c (change_cc_mode_args): Delete.
13825 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
13826 a function that examines each subrtx itself. Take the fields of
13827 change_cc_mode_args as argument and return void.
13828 (cse_change_cc_mode_insn): Update calls accordingly.
13830 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13832 * cse.c (is_dead_reg): Change argument to const_rtx.
13833 (dead_debug_insn_data): Delete.
13834 (is_dead_debug_insn): Expand commentary. Turn from being a
13835 for_each_rtx callback to being a function that examines
13836 each subrtx itself. Take the fields of dead_debug_insn_data
13838 (delete_trivially_dead_insns): Update call accordingly.
13840 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13842 * cse.c (check_for_label_ref): Move earlier in file. Turn from
13843 being a for_each_rtx callback to being a function that examines
13844 each subrtx itself.
13845 (cse_extended_basic_block): Update call accordingly.
13847 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13849 * cse.c (check_dependence_data): Delete.
13850 (check_dependence): Change from being a for_each_rtx callback to being
13851 a function that examines all subrtxes itself. Don't handle null rtxes.
13852 (invalidate): Update call accordingly.
13854 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13856 * cse.c: Include rtl-iter.h.
13857 (approx_reg_cost_1): Delete.
13858 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
13859 Don't handle null rtxes.
13861 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13863 * cfgcleanup.c: Include rtl-iter.h.
13864 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
13865 to being a function that examines each subrtx itself.
13866 (thread_jump): Update accordingly.
13868 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13870 * combine-stack-adj.c: Include rtl-iter.h.
13871 (record_stack_refs_data): Delete.
13872 (record_stack_refs): Turn from being a for_each_rtx callback
13873 to being a function that examines each subrtx itself.
13874 Take a pointer to the reflist. Invert sense of return value
13875 so that true means success and false means failure. Don't
13877 (combine_stack_adjustments_for_block): Update accordingly.
13879 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13881 * combine.c (record_truncated_value): Turn from being a for_each_rtx
13882 callback to a function that takes an rtx and returns a bool
13883 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
13886 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13888 * combine.c: Include rtl-iter.h.
13889 (unmentioned_reg_p_1): Delete.
13890 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
13891 Don't handle null rtxes.
13893 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13895 * calls.c: Include rtl-iter.h.
13896 (internal_arg_pointer_based_exp_1): Delete.
13897 (internal_arg_pointer_based_exp): Take a const_rtx.
13898 Use FOR_EACH_SUBRTX to iterate over subrtxes.
13900 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13902 * caller-save.c: Include rtl-iter.h.
13903 (add_used_regs_1): Delete.
13904 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
13905 to iterate over subrtxes. Assert that any remaining pseudos
13908 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13910 * bt-load.c: Include rtl-iter.h.
13911 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
13912 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
13913 to iterate over subrtxes.
13914 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
13915 find_btr_use rather than btr_referenced_p.
13917 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13919 * alias.c: Include rtl-iter.h.
13920 (refs_newer_value_cb): Delete.
13921 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
13923 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
13925 * rtl-iter.h: New file.
13926 * rtlanal.c: Include it.
13927 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
13928 (generic_subrtx_iterator <T>::add_single_to_queue)
13929 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
13930 (generic_subrtx_iterator <T>::free_array): New functions.
13931 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
13932 (generic_subrtx_iterator <const_rtx_accessor>)
13933 (generic_subrtx_iterator <rtx_var_accessor>
13934 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
13935 (setup_reg_subrtx_bounds): New function.
13936 (init_rtlanal): Call it.
13938 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
13941 * config/sh/sh.md (ashlsi3): Handle negative shift count for
13943 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
13945 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
13947 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
13949 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13951 * rtl.h (JUMP_LABEL_AS_INSN): New.
13953 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13955 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
13957 (alloc_EXPR_LIST): Strengthen return type from rtx to
13959 (remove_free_EXPR_LIST_node): Likewise for param.
13960 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
13961 from rtx to rtx_expr_list *.
13962 * sched-int.h (struct deps_desc): Strengthen fields
13963 "pending_read_mems" and "pending_write_mems" from rtx to
13966 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
13967 rtx to rtx_expr_list *.
13968 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
13969 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
13971 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
13972 from rtx to rtx_expr_list *.
13973 * loop-iv.c (simplify_using_initial_values): Strengthen local
13974 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
13975 "pnote_next" from rtx * to rtx_expr_list **.
13976 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
13977 param "exprp" from rtx * to rtx_expr_list **.
13978 (add_insn_mem_dependence): Strengthen local "mem_list" from
13979 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
13980 to rtx_expr_list *.
13981 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
13982 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
13983 param "old_mems_p" from rtx * to rtx_expr_list **.
13984 * var-tracking.c (struct adjust_mem_data): Strengthen field
13985 "side_effects" from rtx to rtx_expr_list *.
13986 (adjust_insn): Replace NULL_RTX with NULL when assigning to
13988 (prepare_call_arguments): Likewise.
13990 2014-08-27 David Malcolm <dmalcolm@redhat.com>
13992 * function.h (struct rtl_data): Strengthen field
13993 "x_stack_slot_list" from rtx to rtx_expr_list *.
13995 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
13996 when assigning to stack_slot_list.
13998 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14000 * function.h (struct rtl_data): Strengthen field
14001 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
14002 * rtl.h (remove_node_from_expr_list): Strengthen second param from
14003 rtx * to rtx_expr_list **.
14005 * cfgbuild.c (make_edges): In loop over
14006 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
14007 rtx_expr_list *, and use methods of the latter class to clarify
14009 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
14010 rtx_expr_list *, and use methods of the latter class to clarify
14012 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
14013 * reload1.c (set_initial_label_offsets): Likewise for local "x".
14014 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
14015 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
14016 to rtx_expr_list *. Use methods of the latter class to clarify
14019 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14021 * function.h (struct expr_status): Strengthen field
14022 "x_forced_labels" from rtx to rtx_expr_list *.
14024 * cfgbuild.c (make_edges): Split local "x" into two locals,
14025 strengthening one from rtx to rtx_expr_list *, and using methods
14027 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
14028 loop over forced_labels, introduce strengthen it from rtx to
14029 rtx_expr_list *, using methods to clarify the code.
14030 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
14031 to rtx_expr_list *, using methods of said class to clarify the
14033 * reload1.c (set_initial_label_offsets): Split local "x" into two
14034 per-loop variables, strengthening the first from rtx to
14035 rtx_expr_list * and using methods.
14037 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14039 * coretypes.h (class rtx_expr_list): Add forward declaration.
14040 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
14041 * gengenrtl.c (special_rtx): Add EXPR_LIST.
14042 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
14043 invariant: GET_CODE (X) == EXPR_LIST.
14044 (is_a_helper <rtx_expr_list *>::test): New.
14045 (rtx_expr_list::next): New.
14046 (rtx_expr_list::element): New.
14047 (gen_rtx_EXPR_LIST): New.
14049 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14051 * varasm.c (mark_constants): Convert a GET_CODE check into a
14052 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
14053 Use methods of rtx_sequence to clarify the code.
14055 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14057 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
14058 local "seq" via a checked cast, and use methods of rtx_sequence
14059 to simplify the code.
14061 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14063 * resource.c (mark_referenced_resources): Strengthen local
14064 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
14065 using methods of rtx_sequence to clarify the code.
14066 (find_dead_or_set_registers): Within the switch statement, convert
14067 a GET_CODE check to a dyn_cast, introducing local "seq". Within
14068 the JUMP_P handling, introduce another local "seq", adding a
14069 checked cast to rtx_sequence *. In both cases, use methods of
14070 rtx_sequence to clarify the code.
14071 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
14072 via a checked cast, and use methods of rtx_sequence to simplify
14075 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14077 * reorg.c (redundant_insn): In two places in the function, replace
14078 a check of GET_CODE with a dyn_cast, introducing local "seq", and
14079 usings methods of rtx_sequence to clarify the code.
14081 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14083 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
14084 local "seq" with a checked cast, and use methods of rtx_sequence
14085 to clarify the code.
14087 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14089 * function.c (contains): Introduce local "seq" for PATTERN (insn),
14090 with a checked cast, in the region for where we know it's a
14091 SEQUENCE. Use methods of rtx_sequence.
14093 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14095 * final.c (get_attr_length_1): Replace GET_CODE check with a
14096 dyn_cast, introducing local "seq" and the use of methods of
14098 (shorten_branches): Likewise, introducing local "body_seq".
14099 Strengthen local "inner_insn" from rtx to rtx_insn *.
14100 (reemit_insn_block_notes): Replace GET_CODE check with a
14101 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
14102 Use methods of rtx_sequence.
14103 (final_scan_insn): Likewise, introducing local "seq" for when
14104 "body" is known to be a SEQUENCE, using its methods.
14106 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14108 * except.c (can_throw_external): Strengthen local "seq" from rtx
14109 to rtx_sequence *. Use methods of rtx_sequence.
14110 (insn_nothrow_p): Likewise.
14112 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14114 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
14115 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
14116 Use methods of rtx_sequence.
14117 (scan_trace): Likewise for local "pat".
14119 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14121 * coretypes.h (class rtx_sequence): Add forward declaration.
14122 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
14123 invariant: GET_CODE (X) == SEQUENCE.
14124 (is_a_helper <rtx_sequence *>::test): New.
14125 (is_a_helper <const rtx_sequence *>::test): New.
14126 (rtx_sequence::len): New.
14127 (rtx_sequence::element): New.
14128 (rtx_sequence::insn): New.
14130 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14132 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
14134 (alloc_INSN_LIST): Strengthen return type from rtx to
14136 (copy_INSN_LIST): Likewise for return type and param.
14137 (concat_INSN_LIST): Likewise for both params and return type.
14138 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
14139 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
14140 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
14141 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
14143 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
14144 "implicit_sets", "control_uses", "clobbers" from rtx to
14146 (struct deps_desc): Likewise for fields "pending_read_insns",
14147 "pending_write_insns", "pending_jump_insns",
14148 "last_pending_memory_flush", "last_function_call",
14149 "last_function_call_may_noreturn", "sched_before_next_call",
14150 "sched_before_next_jump".
14151 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
14152 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
14154 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
14155 from rtx to rtx_insn_list *.
14156 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
14159 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
14160 to rtx_insn_list **.
14161 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
14163 (queue_insn): Likewise for local "link".
14164 (struct haifa_saved_data): Strengthen field "insn_queue" from
14165 rtx * to rtx_insn_list **.
14166 (save_backtrack_point): Update allocation of save->insn_queue to
14167 reflect the strengthening of elements from rtx to rtx_insn_list *.
14168 (queue_to_ready): Strengthen local "link" from rtx to
14169 rtx_insn_list *; use methods "next" and "insn" when traversing the
14171 (early_queue_to_ready): Likewise for locals "link", "next_link",
14173 (schedule_block): Update allocation of insn_queue to reflect the
14174 strengthening of elements from rtx to rtx_insn_list *. Strengthen
14175 local "link" from rtx to rtx_insn_list *, and use methods when
14177 (add_to_speculative_block): Strengthen locals "twins" and
14178 "next_node" from rtx to rtx_insn_list *, and use methods when
14179 working with them. Strengthen local "twin" from rtx to
14180 rtx_insn *, eliminating a checked cast.
14181 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
14182 from rtx to rtx_insn_list *, and use methods when working with
14185 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
14186 from rtx to rtx_insn_list *, adding a checked cast.
14187 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
14189 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
14190 "newlink" from rtx to rtx_insn_list *. Strengthen local
14191 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
14192 from rtx to rtx_insn *.
14193 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
14194 from rtx to rtx_insn_list *. Use methods of the latter class.
14195 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
14196 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
14197 (remove_free_INSN_LIST_node): Strengthen return type and local
14198 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
14199 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
14200 rtx_insn_list *, using "insn" method.
14202 * sched-deps.c (add_dependence_list): Strengthen param "list"
14203 from rtx to rtx_insn_list *, and use methods when working with it.
14204 (add_dependence_list_and_free): Strengthen param "listp" from
14205 rtx * to rtx_insn_list **.
14206 (remove_from_dependence_list): Strenghten param "listp" from rtx *
14207 to rtx_insn_list **, and use methods when working with *listp.
14208 (remove_from_both_dependence_lists): Strengthen param "listp" from
14209 rtx * to rtx_insn_list **
14210 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
14211 to rtx_insn_list **. Eliminate local "link", in favor of two new
14212 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
14214 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
14215 by introducing local "cond_deps".
14216 (remove_from_deps): Strengthen param "insn" from rtx to
14219 * sched-rgn.c (concat_insn_mem_list): Strengthen param
14220 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
14221 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
14222 Use methods of rtx_insn_list.
14224 * store-motion.c (struct st_expr): Strengthen fields
14225 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
14226 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
14228 (find_moveable_store): Split out "tmp" into multiple more-tightly
14229 scoped locals. Use methods of rtx_insn_list *.
14230 (compute_store_table): Strengthen local "tmp" from rtx to
14231 rtx_insn *. Use methods of rtx_insn_list *.
14233 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14235 * coretypes.h (class rtx_insn_list): Add forward declaration.
14236 * rtl.h (class rtx_insn_list): New subclass of rtx_def
14237 (is_a_helper <rtx_insn_list *>::test): New.
14238 (rtx_insn_list::next): New.
14239 (rtx_insn_list::insn): New.
14240 (gen_rtx_INSN_LIST): Add prototype.
14241 * emit-rtl.c (gen_rtx_INSN_LIST): New.
14242 * gengenrtl.c (special_rtx): Add INSN_LIST.
14244 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14246 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
14247 "prev" from rtx to rtx_insn *.
14249 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14251 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
14252 functions. Require merely an rtx for now, not an rtx_insn *.
14253 (BLOCK_FOR_INSN): Likewise.
14254 (INSN_LOCATION): Likewise.
14255 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
14257 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14259 * rtl.h (PATTERN): Convert this macro into a pair of inline
14260 functions, for now, requiring const_rtx and rtx.
14262 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14264 * target.def (unwind_emit): Strengthen param "insn" from rtx to
14266 (final_postscan_insn): Likewise.
14267 (adjust_cost): Likewise.
14268 (adjust_priority): Likewise.
14269 (variable_issue): Likewise.
14270 (macro_fusion_pair_p): Likewise.
14271 (dfa_post_cycle_insn): Likewise.
14272 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
14273 (first_cycle_multipass_issue): Likewise.
14274 (dfa_new_cycle): Likewise.
14275 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
14276 (speculate_insn): Likewise for param "insn".
14277 (gen_spec_check): Likewise for params "insn" and "label".
14278 (get_insn_spec_ds): Likewise for param "insn".
14279 (get_insn_checked_ds): Likewise.
14280 (dispatch_do): Likewise.
14281 (dispatch): Likewise.
14282 (cannot_copy_insn_p): Likewise.
14283 (invalid_within_doloop): Likewise.
14284 (legitimate_combined_insn): Likewise.
14285 (needed): Likewise.
14288 * doc/tm.texi: Automatically updated to reflect changes to
14291 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
14293 (schedule_block): Likewise.
14294 (sched_init): Likewise.
14295 (sched_speculate_insn): Strengthen param "insn" from rtx to
14297 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
14299 * hooks.c (hook_bool_rtx_true): Rename to...
14300 hook_bool_rtx_insn_true): ...this, and strengthen first param from
14302 (hook_constcharptr_const_rtx_null): Rename to...
14303 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
14304 first param from const_rtx to const rtx_insn *.
14305 (hook_bool_rtx_int_false): Rename to...
14306 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
14307 param from rtx to rtx_insn *.
14308 (hook_void_rtx_int): Rename to...
14309 (hook_void_rtx_insn_int): ...this, and strengthen first param from
14312 * hooks.h (hook_bool_rtx_true): Rename to...
14313 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
14315 (hook_bool_rtx_int_false): Rename to...
14316 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
14317 param from rtx to rtx_insn *.
14318 (hook_void_rtx_int): Rename to...
14319 (hook_void_rtx_insn_int): ...this, and strengthen first param from
14321 (hook_constcharptr_const_rtx_null): Rename to...
14322 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
14323 first param from const_rtx to const rtx_insn *.
14325 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
14326 and local "prev" from rtx to rtx_insn *.
14328 * sched-int.h (sched_speculate_insn): Strengthen first param from
14331 * sel-sched.c (create_speculation_check): Likewise for local "label".
14332 * targhooks.c (default_invalid_within_doloop): Strengthen param
14333 "insn" from const_rtx to const rtx_insn *.
14334 * targhooks.h (default_invalid_within_doloop): Strengthen param
14335 from const_rtx to const rtx_insn *.
14337 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
14338 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
14340 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
14342 (arc_invalid_within_doloop): Likewise, with const.
14344 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
14345 (arm_cannot_copy_insn_p): Likewise for param "insn".
14346 (arm_unwind_emit): Likewise.
14348 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
14351 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
14352 (c6x_variable_issue): Likewise. Removed now-redundant checked
14354 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
14356 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
14357 Likewise for param "insn".
14358 (epiphany_mode_after): Likewise.
14359 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
14360 params "insn", "dep_insn".
14361 (epiphany_mode_needed): Likewise for param "insn".
14362 (epiphany_mode_after): Likewise.
14364 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
14365 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
14366 (ix86_avx_u128_mode_needed): Likewise.
14367 (ix86_i387_mode_needed): Likewise.
14368 (ix86_mode_needed): Likewise.
14369 (ix86_avx_u128_mode_after): Likewise.
14370 (ix86_mode_after): Likewise.
14371 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
14372 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
14373 (ix86_adjust_priority): Likewise for param "insn".
14374 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
14375 (do_dispatch): Likewise.
14376 (has_dispatch): Likewise.
14377 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
14379 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
14380 reflect renaming of default hook implementation from
14381 hook_constcharptr_const_rtx_null to
14382 hook_constcharptr_const_rtx_insn_null.
14383 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
14385 (ia64_variable_issue): Likewise for param "insn".
14386 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
14387 (ia64_dfa_new_cycle): Likewise.
14388 (ia64_get_insn_spec_ds): Likewise.
14389 (ia64_get_insn_checked_ds): Likewise.
14390 (ia64_speculate_insn): Likewise.
14391 (ia64_gen_spec_check): Likewise for params "insn", "label".
14392 (ia64_asm_unwind_emit): Likewise for param "insn".
14394 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
14396 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
14397 "insn", "def_insn".
14398 (m68k_sched_variable_issue): Likewise for param "insn".
14400 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
14403 * config/microblaze/microblaze.c (microblaze_adjust_cost):
14404 Likewise for params "insn", "dep".
14406 * config/mips/mips.c (mips_adjust_cost): Likewise.
14407 (mips_variable_issue): Likewise for param "insn".
14408 (mips_final_postscan_insn): Likewise.
14410 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
14411 for params "insn", "dep".
14413 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
14415 (pa_adjust_priority): Likewise for param "insn".
14417 * config/picochip/picochip.c (picochip_sched_adjust_cost):
14418 Likewise for params "insn", "dep_insn".
14420 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
14422 (rs6000_variable_issue): Likewise.
14423 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
14424 (rs6000_debug_adjust_cost): Likewise.
14425 (rs6000_adjust_priority): Likewise for param "insn".
14426 (rs6000_use_sched_lookahead_guard): Likewise.
14427 (get_next_active_insn): Likewise for return type and both params.
14428 (redefine_groups): Likewise for params "prev_head_insn", "tail"
14429 and locals "insn", "next_insn".
14430 (pad_groups): Likewise.
14432 * config/s390/s390.c (s390_adjust_priority): Likewise for param
14434 (s390_cannot_copy_insn_p): Likewise.
14435 (s390_sched_variable_issue): Likewise for third param, eliminating
14437 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
14438 default hook implementation from hook_constcharptr_const_rtx_null
14439 to hook_constcharptr_const_rtx_insn_null.
14441 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
14442 from rtx to rtx_insn *.
14443 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
14444 (sh_variable_issue): Likewise for param "insn".
14445 (sh_dfa_new_cycle): Likewise.
14446 (sh_mode_needed): Likewise.
14447 (sh_mode_after): Likewise.
14449 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
14450 params "insn", "dep_insn".
14451 (hypersparc_adjust_cost): Likewise.
14452 (sparc_adjust_cost): Likewise.
14454 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
14455 param, eliminated checked cast.
14456 (spu_sched_adjust_cost): Likewise for first and third params.
14458 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
14459 params "insn" and "dep_insn" from rtx to rtx_insn *.
14461 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
14463 2014-08-27 David Malcolm <dmalcolm@redhat.com>
14465 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
14466 (set_is_load_p): ...this, updating to work on a SET pattern rather
14468 (is_store_insn): Rename to...
14469 (set_is_store_p): ...this, updating to work on a SET pattern
14470 rather than an insn.
14471 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
14472 top of function to where it is needed. Rewrite the bogus
14473 condition that checks for "insn" and "dep" being PARALLEL to
14474 instead use single_set, introducing locals "insn_set" and
14475 "dep_set". Given that we only ever returned "cost" for a non-pair
14476 of SETs, bail out early if we don't have a pair of SET.
14477 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
14478 use the new locals "insn_set" and "dep_set", and update calls to
14479 is_load_insn and is_store_insn to be calls to set_is_load_p and
14482 2014-08-27 Guozhi Wei <carrot@google.com>
14485 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
14486 amount before using it.
14488 2014-08-27 Richard Biener <rguenther@suse.de>
14490 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
14491 get_maxval_strlen inside a more useful API.
14492 (gimple_fold_builtin_with_strlen): Remove and fold into ...
14493 (gimple_fold_builtin): ... caller.
14494 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
14495 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
14496 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
14497 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
14498 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
14499 gimple_fold_builtin_sprintf): Adjust to compute maxval
14502 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
14505 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
14507 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
14508 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14509 Anna Tikhonova <anna.tikhonova@intel.com>
14510 Ilya Tocar <ilya.tocar@intel.com>
14511 Andrey Turetskiy <andrey.turetskiy@intel.com>
14512 Ilya Verbin <ilya.verbin@intel.com>
14513 Kirill Yukhin <kirill.yukhin@intel.com>
14514 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14516 * config/i386/sse.md
14517 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
14518 Use `concat_tg_mode' attribute to determine asm register size.
14520 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
14521 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14522 Anna Tikhonova <anna.tikhonova@intel.com>
14523 Ilya Tocar <ilya.tocar@intel.com>
14524 Andrey Turetskiy <andrey.turetskiy@intel.com>
14525 Ilya Verbin <ilya.verbin@intel.com>
14526 Kirill Yukhin <kirill.yukhin@intel.com>
14527 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14529 * config/i386/sse.md
14530 (define_mode_iterator VI48_AVX512VL): New.
14531 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
14532 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
14533 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
14534 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
14535 with VI1): Change mode iterator.
14536 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
14537 with VI_ULOADSTORE_BW_AVX512VL): New.
14538 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
14539 with VI_ULOADSTORE_F_AVX512VL): Ditto.
14540 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
14541 with VI1): Change mode iterator.
14542 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
14543 with VI_ULOADSTORE_BW_AVX512VL): New.
14544 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
14545 with VI_ULOADSTORE_F_AVX512VL): Ditto.
14546 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
14547 with VI1): Change mode iterator.
14548 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
14549 with VI_ULOADSTORE_BW_AVX512VL): New.
14550 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
14551 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
14552 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
14553 (define_insn "<avx512>_storedqu<mode>_mask" with
14554 VI48_AVX512VL): New.
14555 (define_insn "<avx512>_storedqu<mode>_mask" with
14556 VI12_AVX512VL): Ditto.
14558 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
14559 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
14560 Anna Tikhonova <anna.tikhonova@intel.com>
14561 Ilya Tocar <ilya.tocar@intel.com>
14562 Andrey Turetskiy <andrey.turetskiy@intel.com>
14563 Ilya Verbin <ilya.verbin@intel.com>
14564 Kirill Yukhin <kirill.yukhin@intel.com>
14565 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
14567 * config/i386/sse.md
14568 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
14569 (define_mode_iterator VI48_AVX512BW): New.
14570 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
14571 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
14572 with VI48_AVX2_48_AVX512F): New.
14573 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
14574 with VI2_AVX512VL): Ditto.
14576 2014-08-27 Richard Biener <rguenther@suse.de>
14578 PR middle-end/62239
14579 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
14580 (fold_builtin_3): Do not fold strcat_chk here.
14581 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
14583 (gimple_fold_builtin): Fold strcat_chk here.
14585 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
14587 * dwarf2out.h (dwarf2out_decl): Remove prototype.
14588 * dwarf2out.c (dwarf2out_decl): Make static.
14590 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
14592 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
14594 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14596 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
14597 from rtx to rtx_insn *.
14598 (cselib_lookup_from_insn): Likewise for final param.
14599 (cselib_subst_to_values_from_insn): Likewise.
14600 (cselib_add_permanent_equiv): Likewise.
14602 * cselib.c (cselib_current_insn): Likewise for this variable.
14603 (cselib_subst_to_values_from_insn): Likewise for param "insn".
14604 (cselib_lookup_from_insn): Likewise.
14605 (cselib_add_permanent_equiv): Likewise for param "insn" and local
14606 "save_cselib_current_insn".
14607 (cselib_process_insn): Replace use of NULL_RTX with NULL.
14609 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
14610 from rtx to rtx_insn *.
14612 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14614 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
14617 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14619 * df.h (df_dump_insn_problem_function): Strengthen first param of
14620 this callback from const_rtx to const rtx_insn *.
14621 (struct df_insn_info): Strengthen field "insn" from rtx to
14623 (DF_REF_INSN): Eliminate this function, reinstating the older
14625 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
14626 (df_reg_defined): Likewise.
14627 (df_find_use): Likewise.
14628 (df_reg_used): Likewise.
14629 (df_dump_insn_top): Strengthen param 1 from const_rtx to
14631 (df_dump_insn_bottom): Likewise.
14632 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
14633 (df_insn_debug_regno): Likewise.
14634 (debug_df_insn): Likewise.
14635 (df_rd_simulate_one_insn): Likewise for param 2.
14636 (df_word_lr_simulate_defs): Likewise for param 1.
14637 (df_word_lr_simulate_uses): Likewise.
14638 (df_md_simulate_one_insn): Likewise for param 2.
14639 (df_simulate_find_noclobber_defs): Likewise for param 1.
14640 (df_simulate_find_defs): Likewise.
14641 (df_simulate_defs): Likewise.
14642 (df_simulate_uses): Likewise.
14643 (df_simulate_one_insn_backwards): Likewise for param 2.
14644 (df_simulate_one_insn_forwards): Likewise.
14645 (df_uses_create): Likewise for param 2.
14646 (df_insn_create_insn_record): Likewise for param 1.
14647 (df_insn_delete): Likewise.
14648 (df_insn_rescan): Likewise.
14649 (df_insn_rescan_debug_internal): Likewise.
14650 (df_insn_change_bb): Likewise.
14651 (df_notes_rescan): Likewise.
14652 * rtl.h (remove_death): Likewise for param 2.
14653 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
14655 * sched-int.h (reemit_notes): Strengthen param from rtx to
14657 * valtrack.h (propagate_for_debug): Likewise for param 1.
14659 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
14660 local "tmp_rtx" from const_rtx to const rtx_insn *.
14661 * combine.c (remove_death): Strengthen param "insn" from rtx to
14663 (move_deaths): Likewise for local "where_dead".
14664 * cse.c (delete_trivially_dead_insns): Introduce local
14665 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
14666 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
14668 (df_reg_defined): Likewise.
14669 (df_find_use): Likewise.
14670 (df_reg_used): Likewise.
14671 (df_dump_insn_problem_data): Strengthen param "insn" from
14672 const_rtx to const rtx_insn *.
14673 (df_dump_insn_top): Likewise.
14674 (df_dump_insn_bottom): Likewise.
14675 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
14676 (df_insn_debug_regno): Likewise.
14677 (debug_df_insn): Likewise.
14678 (DF_REF_INSN): Delete.
14679 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
14680 from rtx to rtx_insn *.
14681 (df_chain_insn_top_dump): Strengthen param "insn" from
14682 const_rtx to const rtx_insn *.
14683 (df_chain_insn_bottom_dump): Likewise.
14684 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
14686 (df_word_lr_simulate_uses): Likewise.
14687 (df_print_note): Likewise.
14688 (df_remove_dead_and_unused_notes): Likewise.
14689 (df_set_unused_notes_for_mw): Likewise.
14690 (df_set_dead_notes_for_mw): Likewise.
14691 (df_create_unused_note): Likewise.
14692 (df_simulate_find_defs): Likewise.
14693 (df_simulate_find_uses): Likewise.
14694 (df_simulate_find_noclobber_defs): Likewise.
14695 (df_simulate_defs): Likewise.
14696 (df_simulate_uses): Likewise.
14697 (df_simulate_one_insn_backwards): Likewise.
14698 (df_simulate_one_insn_forwards): Likewise.
14699 (df_md_simulate_one_insn): Likewise.
14700 * df-scan.c (df_uses_create): Likewise.
14701 (df_insn_create_insn_record): Likewise.
14702 (df_insn_delete): Likewise.
14703 (df_insn_rescan): Likewise.
14704 (df_insn_rescan_debug_internal): Likewise.
14705 (df_insn_change_bb): Likewise.
14706 (df_notes_rescan): Likewise.
14707 (df_refs_add_to_chains): Likewise.
14708 (df_insn_refs_verify): Likewise.
14709 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
14710 when invoking df_insn_delete.
14711 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
14712 (set_unique_reg_note): Add checked cast.
14713 * final.c (cleanup_subreg_operands): Likewise.
14714 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
14715 "insn" from rtx to rtx_insn *.
14716 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
14717 "last" from rtx to rtx_insn *.
14718 * ira-emit.c (change_regs_in_insn): New function.
14719 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
14720 Invoke change_regs_in_insn rather than change_regs.
14721 * ira.c (update_equiv_regs): Strengthen locals "insn",
14722 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
14723 for_each_rtx_in_insn rather than for_each_rtx.
14724 * recog.c (confirm_change_group): Add checked casts.
14725 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
14727 (peep2_fill_buffer): Add checked cast.
14728 * rtlanal.c (remove_note): Likewise.
14729 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
14730 locals "next" "end" from rtx to rtx_insn *.
14732 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14734 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
14736 (struct reg_use_data): Likewise for field "insn".
14737 (insn_cost): Likewise for param.
14738 (real_insn_for_shadow): Likewise for return type and param.
14739 (increase_insn_priority): Likewise for param 1.
14740 (debug_dependencies): Likewise for both params.
14742 * haifa-sched.c (insn_delay): Likewise for param "insn".
14743 (real_insn_for_shadow): Likewise for return type and param "insn".
14744 (update_insn_after_change): Likewise for param "insn".
14745 (recompute_todo_spec): Likewise for param "next" and locals "pro",
14747 (insn_cost): Likewise for param "insn".
14748 (increase_insn_priority): Likewise.
14749 (calculate_reg_deaths): Likewise.
14750 (setup_insn_reg_pressure_info): Likewise.
14751 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
14752 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
14753 (model_recompute): Likewise.
14754 (must_restore_pattern_p): Likewise for param "next".
14755 (model_excess_cost): Likewise for param "insn".
14756 (queue_remove): Likewise.
14757 (adjust_priority): Likewise for param "prev".
14758 (update_register_pressure): Likewise for param "insn".
14759 (setup_insn_max_reg_pressure): Likewise for local "insn".
14760 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
14761 (model_add_to_schedule): Likewise.
14762 (model_reset_queue_indices): Likewise for local "insn".
14763 (unschedule_insns_until): Strengthen local "recompute_vec" from
14764 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
14765 "con" from rtx to rtx_insn *.
14766 (restore_last_backtrack_point): Likewise for both locals "x". Add
14768 (estimate_insn_tick): Likewise for param "insn".
14769 (commit_schedule): Likewise for params "prev_head", "tail" and
14771 (verify_shadows): Likewise for locals "i1", "i2".
14772 (dump_insn_stream): Likewise for params "head", "tail" and locals
14773 "next_tail", "insn".
14774 (schedule_block): Likewise for locals "insn", "x". Add a checked
14776 (fix_inter_tick): Likewise for params "head", "tail".
14777 (create_check_block_twin): Likewise for local "jump".
14778 (haifa_change_pattern): Likewise for param "insn".
14779 (haifa_speculate_insn): Likewise.
14780 (dump_new_block_header): Likewise for params "head", "tail".
14781 (fix_jump_move): Likewise for param "jump".
14782 (move_block_after_check): Likewise.
14783 (sched_init_insn_luid): Likewise for param "insn".
14784 (sched_init_luids): Likewise for local "insn".
14785 (insn_luid): Likewise for param "insn".
14786 (init_h_i_d): Likewise.
14787 (haifa_init_h_i_d): Likewise for local "insn".
14788 (haifa_init_insn): Likewise for param "insn".
14789 * sched-deps.c (add_dependence): Likewise for local "real_pro",
14791 (create_insn_reg_use): Likewise for param "insn".
14792 (setup_insn_reg_uses): Likewise. Add a checked cast.
14793 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
14794 "tail" from rtx to rtx_insn *.
14795 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
14796 "insn", "next_tail".
14798 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14800 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
14801 from rtx to rtx_insn *.
14802 (model_add_to_schedule): Likewise for locals "start", "end",
14805 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14807 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
14809 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
14810 "to" and locals "insn", "next", "copy". Remove now-redundant
14813 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14815 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
14816 rtx_insn * and param 4 from rtx * to rtx_insn **.
14817 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
14818 param 2 from rtx * to rtx_insn **.
14820 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
14821 rtx_insn * and final param from rtx * to rtx_insn **.
14823 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
14824 from rtx to rtx_insn *.
14825 (try_head_merge_bb): Likewise for both locals named "move_upto".
14826 * df-problems.c (can_move_insns_across): Likewise for params
14827 "from", "to", "across_from", "across_to" and locals "insn",
14828 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
14830 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
14831 from rtx to rtx_insn *.
14832 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
14833 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
14834 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
14836 (noce_try_abs): Likewise.
14837 (noce_get_condition): Likewise for param "jump". Strengthen param
14838 "earliest" from rtx * to rtx_insn **.
14839 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
14841 (find_cond_trap): Likewise.
14842 (dead_or_predicable): Likewise for local "earliest".
14843 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
14845 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
14846 and local "prev". Strengthen param "earliest" from rtx * to
14848 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
14849 Strengthen param "earliest" from rtx * to rtx_insn **.
14851 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14853 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
14854 "to" and local "insn" from rtx to rtx_insn *.
14856 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14858 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
14859 from rtx to rtx_insn *.
14860 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
14861 (code_motion_path_driver): Likewise for local "last_insn".
14862 (simplify_changed_insns): Likewise for local "insn".
14864 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14866 * rtl.h (push_to_sequence): Strengthen param from rtx to
14868 (push_to_sequence2): Likewise for both params.
14869 (delete_insns_since): Likewise for param.
14870 (reorder_insns_nobb): Likewise for all three params.
14871 (set_new_first_and_last_insn): Likewise for both params.
14873 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
14874 rtx_insn *. Remove now-redundant cast.
14875 (set_last_insn): Likewise.
14877 * builtins.c (expand_builtin_return): Strengthen local
14878 "call_fusage" from rtx to rtx_insn *.
14879 * cfgrtl.c (create_basic_block_structure): Likewise for local
14881 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
14882 "first", "last" and local "insn".
14883 (delete_insns_since): Likewise for param "from".
14884 (reorder_insns_nobb): Likewise for params "from", "to", "after"
14886 (push_to_sequence): Likewise for param "first" and local "last".
14887 (push_to_sequence2): Likewise for params "first" and "last".
14888 * lra.c (emit_add3_insn): Likewise for local "last".
14889 (lra_emit_add): Likewise.
14890 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
14892 (process_address_1): Likewise for locals "insn", last".
14893 * modulo-sched.c (ps_first_note): Likewise for return type.
14894 * optabs.c (expand_binop_directly): Likewise for param "last".
14896 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14898 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
14900 * emit-rtl.c (get_last_insn_anywhere): Likewise.
14902 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14904 * function.h (struct sequence_stack): Strengthen fields "first"
14905 and "last" from rtx to rtx_insn *.
14906 (struct emit_status): Likewise for fields "x_first_insn" and
14909 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
14910 (set_first_insn): Add checked cast.
14911 (get_last_insn): Remove now-redundant checked cast.
14912 (set_last_insn): Add checked cast.
14914 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
14915 "saved_first" and "saved_last" from rtx to rtx_insn *.
14917 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14919 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
14920 (unlink_insn_chain): Strengthen both params from rtx to
14923 * cfgrtl.c (cfg_layout_function_header): Likewise for this
14925 (unlink_insn_chain): Likewise for params "first" and "last".
14926 Remove now-redundant checked cast.
14927 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
14928 (fixup_reorder_chain): Strengthen local "insn" from rtx to
14930 * emit-rtl.c (link_insn_into_chain): Likewise for all three
14932 (add_insn): Likewise for param "insn" and local "prev".
14933 (add_insn_after_nobb): Likewise for both params and local "next".
14934 (add_insn_before_nobb): Likewise for both params and local "prev".
14935 (add_insn_after): Rename param "after" to "uncast_after",
14936 introducing local "after" with another checked cast.
14937 (add_insn_before): Rename params "insn" and "before", giving them
14938 "uncast_" prefixes, adding the old names back using checked casts.
14939 (emit_note_after): Likewise for param "after".
14940 (emit_note_before): Likewise for param "before".
14941 (emit_label): Add a checked cast.
14943 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14945 * cselib.h (cselib_record_sets_hook): Strengthen initial param
14946 "insn" from rtx to rtx_insn *.
14948 * cselib.c (cselib_record_sets_hook): Likewise.
14950 * var-tracking.c (add_with_sets): Likewise, renaming back from
14951 "uncast_insn" to "insn" and eliminating the checked cast from rtx
14954 2014-08-26 David Malcolm <dmalcolm@redhat.com>
14956 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
14957 and "header_" from rtx to rtx_insn *.
14958 (struct basic_block_d): Likewise for field "head_" within "x"
14959 field of union basic_block_il_dependent.
14960 (BB_HEAD): Drop function...
14961 (SET_BB_HEAD): ...and this function in favor of...
14962 (BB_HEAD): ...reinstate macro.
14963 (BB_END): Drop function...
14964 (SET_BB_END): ...and this function in favor of...
14965 (BB_END): ...reinstate macro.
14966 (BB_HEADER): Drop function...
14967 (SET_BB_HEADER): ...and this function in favor of...
14968 (BB_HEADER): ...reinstate macro.
14970 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
14971 (fix_crossing_unconditional_branches): Likewise.
14972 * caller-save.c (save_call_clobbered_regs): Likewise.
14973 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
14974 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
14975 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14976 (merge_blocks_move_successor_nojumps): Likewise.
14977 (outgoing_edges_match): Update use of for_each_rtx to
14978 for_each_rtx_in_insn.
14979 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
14980 (expand_gimple_cond): Likewise.
14981 (expand_gimple_tailcall): Likewise.
14982 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
14984 (construct_exit_block): Drop use of SET_BB_END.
14985 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
14987 (delete_insn): Rename param "insn" to "uncast_insn", introducing
14988 a new local "insn" with a checked cast to rtx_insn *. Drop use of
14989 SET_BB_HEAD and SET_BB_END.
14990 (create_basic_block_structure): Drop use of SET_BB_HEAD and
14992 (rtl_delete_block): Drop use of SET_BB_HEAD.
14993 (rtl_split_block): Drop use of SET_BB_END.
14994 (emit_nop_for_unique_locus_between): Likewise.
14995 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
14996 (block_label): Drop use of SET_BB_HEAD.
14997 (fixup_abnormal_edges): Drop use of SET_BB_END.
14998 (record_effective_endpoints): Drop use of SET_BB_HEADER.
14999 (relink_block_chain): Likewise.
15000 (fixup_reorder_chain): Drop use of SET_BB_END.
15001 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
15002 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
15003 rtx_insn **. Drop use of SET_BB_HEADER.
15004 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
15006 (BB_HEAD): Delete this function.
15007 (SET_BB_HEAD): Likewise.
15008 (BB_END): Likewise.
15009 (SET_BB_END): Likewise.
15010 (BB_HEADER): Likewise.
15011 (SET_BB_HEADER): Likewise.
15012 * emit-rtl.c (add_insn_after): Rename param "insn" to
15013 "uncast_insn", adding a new local "insn" and a checked cast to
15014 rtx_insn *. Drop use of SET_BB_END.
15015 (remove_insn): Strengthen locals "next" and "prev" from rtx to
15016 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
15017 (reorder_insns): Drop use of SET_BB_END.
15018 (emit_insn_after_1): Strengthen param "first" and locals "last",
15019 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
15020 (emit_pattern_after_noloc): Add checked cast.
15021 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
15022 (restore_other_notes): Likewise.
15023 (move_insn): Likewise.
15024 (sched_extend_bb): Likewise.
15025 (fix_jump_move): Likewise.
15026 * ifcvt.c (noce_process_if_block): Likewise.
15027 (dead_or_predicable): Likewise.
15028 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
15029 * reg-stack.c (change_stack): Drop use of SET_BB_END.
15030 * sel-sched-ir.c (sel_move_insn): Likewise.
15031 * sel-sched.c (move_nop_to_previous_block): Likewise.
15033 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
15035 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15037 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15039 * basic-block.h (create_basic_block_structure): Strengthen params
15040 1 "head" and 2 "end" from rtx to rtx_insn *.
15041 * cfgrtl.c (create_basic_block_structure): Likewise.
15042 (rtl_create_basic_block): Update casts from void * to rtx to
15043 rtx_insn *, so that we can pass them as rtx_insn * to
15044 create_basic_block_structure.
15045 * sel-sched-ir.c (sel_create_basic_block): Likewise.
15047 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15049 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
15051 (check_for_inc_dec): Strengthen param "insn" from rtx to
15054 * cselib.h (cselib_process_insn): Likewise.
15056 * cselib.c (cselib_record_sets): Likewise.
15057 (cselib_process_insn): Likewise.
15059 * dse.c (struct insn_info): Likewise for field "insn".
15060 (check_for_inc_dec_1): Likewise for local "insn".
15061 (check_for_inc_dec): Likewise for param "insn".
15062 (scan_insn): Likewise.
15063 (dse_step1): Likewise for local "insn".
15065 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
15066 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
15068 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15070 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
15071 from rtx to rtx_insn *.
15072 (DEP_PRO): Delete this function and...
15073 (SET_DEP_PRO): ...this function in favor of...
15074 (DEP_PRO): ...reinstate this macro.
15075 (DEP_CON): Delete this function and...
15076 (SET_DEP_CON): ...this function in favor of...
15077 (DEP_CON): ...reinstate this old macro.
15078 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
15079 (init_dep): Likewise.
15080 (set_priorities): Likewise for both params.
15081 (sd_copy_back_deps): Likewise for params 1 and 2.
15083 * haifa-sched.c (priority): Likewise for param "insn" and local
15085 (set_priorities): Likewise for params "head" and "tail" and local
15087 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
15089 (add_to_speculative_block): Add a checked cast.
15090 (create_check_block_twin): Drop use of SET_DEP_CON.
15091 (add_jump_dependencies): Strengthen params "insn" and "jump" from
15094 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
15095 Drop use of SET_DEP_PRO
15096 (init_dep): Strengthen params "pro" and "con" from rtx to
15098 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
15099 use of SET_DEP_CON.
15102 (SET_DEP_PRO): Delete.
15103 (SET_DEP_CON): Delete.
15105 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15107 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
15108 from rtx to rtx_insn *.
15109 (VINSN_INSN_RTX): Eliminate rvalue function and...
15110 (SET_VINSN_INSN): ...lvalue function in favor of...
15111 (VINSN_INSN_RTX): reinstate this old macro.
15113 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
15114 in favor of VINSN_INSN_RTX.
15115 (VINSN_INSN_RTX): Delete this function.
15116 (SET_VINSN_INSN_RTX): Likewise.
15118 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15120 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
15121 (BND_TO): Delete this function and...
15122 (SET_BND_TO): ...this functions in favor of...
15123 (BND_TO): ...reinstating this macro.
15124 (struct _fence): Strengthen field "executing_insns" from
15125 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
15126 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
15127 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
15128 and param "insn" from rtx to insn_t.
15129 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
15132 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
15134 (rtx_vec_t): Likewise.
15135 (struct sched_deps_info_def): Strengthen param of "start_insn"
15136 callback from rtx to rtx_insn *. Likewise for param "insn2" of
15137 "note_mem_dep" callback and first param of "note_dep" callback.
15139 * haifa-sched.c (add_to_speculative_block): Strengthen param
15140 "insn" from rtx to rtx_insn *.
15141 (clear_priorities): Likewise.
15142 (calc_priorities): Likewise for local "insn".
15144 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
15145 Remove redundant checked cast.
15146 (haifa_note_mem_dep): Likewise for param "pending_insn".
15147 (haifa_note_dep): Likewise for param "elem".
15148 (note_mem_dep): Likewise for param "e".
15149 (sched_analyze_1): Add checked casts.
15150 (sched_analyze_2): Likewise.
15152 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
15153 from rtx to rtx_insn *.
15154 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
15155 from vec<rtx> * to vec<rtx_insn *> *.
15157 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
15159 (flist_add): Strengthen param "executing_insns" from
15160 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
15161 (advance_deps_context): Remove now-redundant checked cast.
15162 (init_fences): Replace uses of NULL_RTX with NULL.
15163 (merge_fences): Strengthen params "last_scheduled_insn" and
15164 "sched_next" from rtx to rtx_insn * and "executing_insns" from
15165 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
15166 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
15167 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
15168 an instruction, rather than doing double-duty as a pattern.
15169 (return_nop_to_pool): Update for change of insn_t.
15170 (deps_init_id): Remove now-redundant checked cast.
15171 (struct sched_scan_info_def): Strengthen param of "init_insn"
15172 callback from rtx to insn_t.
15173 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
15174 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
15176 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
15177 "end" from rtx to rtx_insn *.
15178 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
15179 (rtx insn_rtx, bool force_unique_p)
15180 (BND_TO): Delete function.
15181 (SET_BND_TO): Delete function.
15183 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
15185 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
15186 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
15188 (undo_transformations): Likewise for param "insn".
15189 (update_liveness_on_insn): Likewise.
15190 (compute_live_below_insn): Likewise for param "insn" and local
15192 (update_data_sets): Likewise for param "insn".
15193 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
15194 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
15195 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
15197 (move_cond_jump): Likewise for param "insn".
15198 (move_cond_jump): Drop use of SET_BND_TO.
15199 (compute_av_set_on_boundaries): Likewise.
15200 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
15201 (update_and_record_unavailable_insns): Strengthen local "bb_end"
15202 from rtx to rtx_insn *.
15203 (maybe_emit_renaming_copy): Likewise for param "insn".
15204 (maybe_emit_speculative_check): Likewise.
15205 (handle_emitting_transformations): Likewise.
15206 (remove_insn_from_stream): Likewise.
15207 (code_motion_process_successors): Strengthen local "succ" from rtx
15210 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15212 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
15213 ilist_t, not _xlist_t;
15214 (ILIST_INSN): Define in terms of new union field "insn".
15215 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
15217 (struct _list_node): Add new field "insn" to the union, of type
15219 (ilist_add): Replace macro with an inline function, requiring an
15221 (ilist_remove): Define this macro directly in terms of
15222 _list_remove, rather than indirectly via _xlist_remove.
15223 (ilist_clear): Likewise, in terms of _list_clear rather than
15225 (ilist_is_in_p): Replace macro with an inline function, requiring
15227 (_list_iter_cond_insn): New function.
15228 (ilist_iter_remove): Define this macro directly in terms of
15229 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
15230 (ilist_iterator): Define directly in terms of _list_iterator
15231 rather than indirectly through _xlist_iterator.
15232 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
15233 than in terms of _FOR_EACH_X.
15234 (FOR_EACH_INSN_1): Likewise.
15236 2014-08-26 Joseph Myers <joseph@codesourcery.com>
15240 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
15241 DECL_HARD_REGISTER and return for invalid register specifications.
15242 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
15243 DECL_HARD_REGISTER, call expand_one_error_var.
15244 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
15245 CC_REGNUM with non-MODE_CC modes.
15246 (arm_regno_class): Return NO_REGS for PC_REGNUM.
15248 2014-08-26 Marek Polacek <polacek@redhat.com>
15251 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
15253 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
15255 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
15256 qi cost; add di cost.
15257 (cortexa57_addrcost_table): Likewise.
15259 2014-08-26 Marek Polacek <polacek@redhat.com>
15262 * expr.c (is_aligning_offset): Remove logical not.
15264 2014-08-26 Marek Polacek <polacek@redhat.com>
15267 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
15268 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
15270 2014-08-26 Richard Biener <rguenther@suse.de>
15272 PR tree-optimization/62175
15273 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
15274 expand possibly trapping operations.
15276 2014-08-26 David Malcolm <dmalcolm@redhat.com>
15278 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
15279 "insn" from rtx to rtx_insn *.
15280 (permute_load): Likewise for param "insn".
15281 (permute_store): Likewise.
15282 (handle_special_swappables): Likewise for local "insn".
15283 (replace_swap_with_copy): Likewise for locals "insn" and
15285 (rs6000_analyze_swaps): Likewise for local "insn".
15287 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15289 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
15292 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15294 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
15295 "note_list" from rtx to rtx_insn *.
15296 (BB_NOTE_LIST): Replace this function and...
15297 (SET_BB_NOTE_LIST): ...this function with...
15298 (BB_NOTE_LIST): ...the former macro implementation.
15300 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
15301 local "from_start" from rtx to rtx_insn *. Strengthen param
15302 "to_endp" from rtx * to rtx_insn **.
15304 * haifa-sched.c (concat_note_lists): Likewise.
15305 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
15307 (sel_restore_notes): Likewise.
15308 (move_bb_info): Likewise.
15309 (BB_NOTE_LIST): Delete this function.
15310 (SET_BB_NOTE_LIST): Delete this function.
15311 * sel-sched.c (create_block_for_bookkeeping): Eliminate
15312 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
15314 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15316 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
15317 from rtx * to rtx_insn **.
15318 (reorder2): Likewise.
15319 (dependencies_evaluation_hook): Strengthen params "head", "tail"
15320 from rtx to rtx_insn *.
15322 * doc/tm.texi: Update mechanically for above change to target.def.
15324 * sched-int.h (note_list): Strengthen this variable from rtx to
15326 (remove_notes): Likewise for both params.
15327 (restore_other_notes): Likewise for return type and first param.
15328 (struct ready_list): Strengthen field "vec" from rtx * to
15330 (struct dep_replacement): Strenghten field "insn" from rtx to
15332 (struct deps_desc): Likewise for fields "last_debug_insn",
15334 (struct haifa_sched_info): Likewise for callback field
15335 "can_schedule_ready_p"'s param, for first param of "new_ready"
15336 callback field, for both params of "rank" callback field, for
15337 first field of "print_insn" callback field (with a const), for
15338 both params of "contributes_to_priority" callback, for param
15339 of "insn_finishes_block_p" callback, for fields "prev_head",
15340 "next_tail", "head", "tail", for first param of "add_remove_insn"
15341 callback, for first param of "begin_schedule_ready" callback, for
15342 both params of "begin_move_insn" callback, and for second param
15343 of "advance_target_bb" callback.
15344 (add_dependence): Likewise for params 1 and 2.
15345 (sched_analyze): Likewise for params 2 and 3.
15346 (deps_analyze_insn): Likewise for param 2.
15347 (ready_element): Likewise for return type.
15348 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
15349 (try_ready): Strenghten param from rtx to rtx_insn *.
15350 (sched_emit_insn): Likewise for return type.
15351 (record_delay_slot_pair): Likewise for params 1 and 2.
15352 (add_delay_dependencies): Likewise for param.
15353 (contributes_to_priority): Likewise for both params.
15354 (find_modifiable_mems): Likewise.
15356 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
15357 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
15358 "first_older_only_insn" from rtx to rtx_insn *.
15359 (arm_sched_reorder): Strengthen param "ready" from rtx * to
15362 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
15363 "last_scheduled_iter0" from rtx to rtx_insn *.
15364 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
15365 (c6x_sched_reorder_1): Strengthen param "ready" and locals
15366 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
15367 "insn" from rtx to rtx_insn *.
15368 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
15370 (c6x_sched_reorder2): Strengthen param "ready" and locals
15371 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
15372 "insn" from rtx to rtx_insn *.
15373 (c6x_variable_issue): Add a checked cast when assigning from insn
15374 to ss.last_scheduled_iter0.
15375 (split_delayed_branch): Strengthen param "insn" and local "i1"
15376 from rtx to rtx_insn *.
15377 (split_delayed_nonbranch): Likewise.
15378 (undo_split_delayed_nonbranch): Likewise for local "insn".
15379 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
15380 "entry_after", "end_packet", "head_insn", "tail_insn",
15381 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
15382 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
15383 to rtx_insn **. Remove now-redundant checked cast on last_insn,
15384 but add a checked cast on loop->start_label. Consolidate calls to
15385 avoid assigning result of gen_spkernel to "insn", now an
15388 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
15389 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
15391 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
15392 rtx_insn **. Strengthen locals "top", "next" from rtx to
15394 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
15395 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
15396 (add_parameter_dependencies): Strengthen params "call", "head" and
15397 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
15398 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
15399 (add_dependee_for_func_arg): Likewise for param "arg" and local
15401 (ix86_dependencies_evaluation_hook): Likewise for params "head",
15402 "tail" and locals "insn", "first_arg".
15404 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
15405 for params "head", "tail" and locals "insn", "next", "next_tail".
15406 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
15407 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
15408 "insn", "lowest", "highest" from rtx to rtx_insn *.
15409 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
15411 (ia64_sched_reorder2): Likewise.
15413 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
15414 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
15415 from rtx * to rtx_insn **.
15416 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
15418 (mep_print_sched_insn): Strengthen param "insn" from rtx to
15420 (mep_sched_reorder): Strengthen param "ready" from rtx * to
15421 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
15424 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
15425 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
15427 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
15428 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
15429 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
15431 (vr4130_reorder): Likewise.
15432 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
15434 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
15436 (mips_sched_reorder): Likewise.
15437 (mips_sched_reorder2): Likewise.
15439 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
15441 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
15442 Strengthen local "tmp" from rtx to rtx_insn *.
15443 (rs6000_sched_reorder2): Likewise.
15445 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
15446 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
15447 (s390_sched_reorder): Strengthen param "ready" from rtx * to
15448 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
15450 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
15451 "tmp2" from rtx to rtx_insn *.
15452 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
15453 Strengthen local "insn" from rtx to rtx_insn *.
15454 (ready_reorder): Strengthen param "ready" from rtx * to
15455 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
15456 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
15457 (sh_reorder2): Likewise.
15459 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
15460 local "insn" from rtx to rtx_insn *.
15462 * haifa-sched.c (note_list): Strengthen this variable from rtx to
15464 (scheduled_insns): Strengthen this variable from vec<rtx> to
15466 (set_modulo_params): Likewise for locals "i1", "i2".
15467 (record_delay_slot_pair): Likewise for params "i1", "i2".
15468 (add_delay_dependencies): Likewise for param "insn".
15469 (cond_clobbered_p): Likewise.
15470 (recompute_todo_spec): Likewise for local "prev".
15471 (last_scheduled_insn): Likewise for this variable.
15472 (nonscheduled_insns_begin): Likewise.
15473 (model_set_excess_costs): Strengthen param "insns" from rtx * to
15475 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
15477 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
15478 Strengthen local "insn" from rtx to rtx_insn *.
15479 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
15480 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
15481 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
15482 (ready_remove_first): Likewise for return type and local "t".
15483 (ready_element): Likewise for return type.
15484 (ready_remove): Likewise for return type and local "t".
15485 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
15486 (check_clobbered_conditions): Strengthen local "x" from rtx to
15487 rtx_insn *, adding a checked cast.
15488 (schedule_insn): Likewise for param "insn".
15489 (remove_notes): Likewise for params "head", "tail" and locals
15490 "next_tail", "insn", "next".
15491 (struct haifa_saved_data): Likewise for fields
15492 "last_scheduled_insn", "nonscheduled_insns_begin".
15493 (save_backtrack_point): Update for change to field "vec" of
15495 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
15497 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
15498 from rtx to rtx_insn *
15499 (resolve_dependencies): Strengthen param "insn" from rtx to
15501 (restore_other_notes): Likewise for return type, for param "head"
15502 and local "note_head".
15503 (undo_all_replacements): Likewise for local "insn".
15504 (first_nonscheduled_insn): Likewise for return type and local "insn".
15505 (queue_to_ready): Likewise for local "insn", adding checked casts.
15506 (early_queue_to_ready): Likewise for local "insn".
15507 (debug_ready_list_1): Strengthen local "p" from rtx * to
15509 (move_insn): Strengthen param "insn" and local "note" from rtx to
15511 (insn_finishes_cycle_p): Likewise for param "insn".
15512 (max_issue): Likewise for local "insn".
15513 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
15515 (commit_schedule): Strengthen param "prev_head" and local "insn"
15516 from rtx to rtx_insn *
15517 (prune_ready_list): Likewise for local "insn".
15518 (schedule_block): Likewise for locals "prev_head", "head", "tail",
15519 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
15520 (set_priorities): Likewise for local "prev_head".
15521 (try_ready): Likewise for param "next".
15522 (fix_tick_ready): Likewise.
15523 (change_queue_index): Likewise.
15524 (sched_extend_ready_list): Update for change to field "vec" of
15526 (generate_recovery_code): Strengthen param "insn" from rtx to
15528 (begin_speculative_block): Likewise.
15529 (create_check_block_twin): Likewise for param "insn" and locals
15530 "label", "check", "twin". Introduce local "check_pat" to avoid
15531 "check" being used as a plain rtx before being used as an insn.
15532 (fix_recovery_deps): Add a checked cast to rtx_insn * when
15533 extracting elements from ready_list.
15534 (sched_remove_insn): Strengthen param "insn" from rtx to
15536 (sched_emit_insn): Likewise for return type.
15537 (ready_remove_first_dispatch): Likewise for return type and local
15540 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
15542 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
15545 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
15546 from rtx to rtx_insn *.
15547 (add_dependence_list): Likewise for param "insn". Add a checked
15549 (add_dependence_list_and_free): Strengthen param "insn" from rtx
15550 to rtx_insn *. Strengthen param "list_p" from rtx * to
15552 (chain_to_prev_insn): Strengthen param "insn" and locals
15553 "prec_nonnote", "i" from rtx to rtx_insn *.
15554 (flush_pending_lists): Likewise for param "insn".
15555 (cur_insn): Likewise for this variable.
15556 (haifa_start_insn): Add a checked cast.
15557 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
15558 (sched_analyze_reg): Likewise for param "insn".
15559 (sched_analyze_1): Likewise.
15560 (sched_analyze_2): Likewise. Add checked casts.
15561 (sched_analyze_insn): Likewise. Also for local "prev".
15562 (deps_analyze_insn): Likewise for param "insn".
15563 (sched_analyze): Likewise for params "head", "tail" and local "insn".
15564 (add_dependence_1): Likewise for params "insn", "elem".
15565 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
15566 (parse_add_or_inc): Likewise for param "insn".
15567 (find_inc): Likewise for local "inc_cand".
15568 (find_modifiable_mems): Likewise for params "head", "tail" and
15569 locals "insn", "next_tail".
15571 * sched-ebb.c (init_ready_list): Likewise for local "insn".
15572 (begin_schedule_ready): Likewise for param "insn".
15573 (begin_move_insn): Likewise for params "insn" and "last".
15574 (ebb_print_insn): Strengthen param "insn" from const_rtx to
15576 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
15577 (ebb_contributes_to_priority): Likewise for params "next", "insn".
15578 (ebb_add_remove_insn): Likewise for param "insn".
15579 (advance_target_bb): Likewise.
15581 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
15583 (check_live): Likewise for param "insn".
15584 (init_ready_list): Likewise for local "insn".
15585 (can_schedule_ready_p): Likewise for param "insn".
15586 (begin_schedule_ready): Likewise.
15587 (new_ready): Likewise for param "next".
15588 (rgn_print_insn): Likewise for param "insn".
15589 (rgn_rank): Likewise for params "insn1", "insn2".
15590 (contributes_to_priority): Likewise for params "next", "insn".
15591 (rgn_insn_finishes_block_p): Likewise for param "insn".
15592 (add_branch_dependences): Likewise for params "head", "tail" and
15593 locals "insn", "last".
15594 (rgn_add_remove_insn): Likewise for param "insn".
15595 (advance_target_bb): Likewise.
15597 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
15598 const_rtx to const rtx_insn *.
15600 * sel-sched-dump.h (sel_print_insn): Likewise.
15602 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
15603 (deps_init_id): Likewise.
15605 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
15606 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
15609 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15611 * output.h (final_start_function): Strengthen param 1 from rtx to
15614 * final.c (final_start_function): Likewise, renaming back from
15615 "uncast_first" to "first", and dropping the checked cast from rtx
15618 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15620 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
15621 * final.c (final): Likewise. Rename param back from
15622 "uncast_first" to "first" and eliminate the checked cast from rtx
15625 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15627 * output.h (shorten_branches): Strengthen param from rtx to
15630 * final.c (shorten_branches): Likewise, renaming param back from
15631 "uncast_first" to "first", and dropping the checked cast from rtx
15634 * genattr.c (gen_attr): Likewise when writing out the prototype of
15637 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15639 * sched-int.h (struct haifa_sched_info): Strengthen fields
15640 "prev_head" and "next_tail" from rtx to rtx_insn *.
15642 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15644 * rtl.h (rtx_jump_table_data::get_labels): New method.
15645 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
15646 with use of the new rtx_jump_table_data::get_labels method.
15647 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
15648 to rtx_jump_table_data *. Simplify by using get_labels method.
15649 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
15650 a dyn_cast, introducing local "table", using it to replace
15651 label-lookup logic with a get_labels method call.
15652 (patch_jump_insn): Simplify using get_labels method.
15653 * dwarf2cfi.c (create_trace_edges): Likewise.
15654 * rtlanal.c (label_is_jump_target_p): Likewise.
15656 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15658 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
15661 * emit-rtl.c (unshare_all_rtl_1): Likewise.
15662 (unshare_all_rtl_again): Likewise, also for local "p".
15664 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15666 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
15668 * cfgrtl.c (delete_insn_and_edges): Likewise.
15670 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15672 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
15673 from rtx to rtx_insn *.
15675 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
15677 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15679 * function.c (thread_prologue_and_epilogue_insns): Likewise for
15680 locals "returnjump", "epilogue_end", "insn", "next".
15682 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
15683 "returnjump" from rtx * to rtx_insn **.
15684 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
15686 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15688 * basic-block.h (struct edge_def). Strengthen "r" within
15689 union edge_def_insns from rtx to rtx_insn *.
15691 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
15692 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
15694 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
15695 from rtx to rtx_insn *.
15696 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
15698 * postreload-gcse.c (reg_killed_on_edge): Likewise.
15699 (reg_used_on_edge): Likewise.
15700 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
15701 (gt_pch_nx): New overload for rtx_insn *&.
15702 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
15703 from rtx to rtx_insn *.
15705 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15707 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
15708 from rtx to rtx_insn *.
15709 (BB_FOOTER): Replace function with access macro.
15710 (SET_BB_FOOTER): Delete.
15712 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
15714 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15715 (emit_barrier_after_bb): Likewise.
15716 (record_effective_endpoints): Likewise.
15717 (relink_block_chain): Likewise.
15718 (fixup_fallthru_exit_predecessor): Likewise.
15719 (cfg_layout_duplicate_bb): Likewise.
15720 (cfg_layout_split_block): Likewise.
15721 (cfg_layout_delete_block): Likewise.
15722 (cfg_layout_merge_blocks): Likewise.
15723 (BB_FOOTER): Delete function.
15724 (SET_BB_FOOTER): Delete function.
15725 * combine.c (update_cfg_for_uncondjump): Replace uses of
15726 SET_BB_FOOTER with BB_FOOTER.
15728 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15730 * except.h (struct eh_landing_pad_d): Strengthen field
15731 "landing_pad" from rtx to rtx_code_label *.
15733 * except.c (sjlj_emit_dispatch_table): Likewise for param
15735 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
15737 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15739 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
15740 first param from rtx to rtx_insn *.
15741 * config/xtensa/xtensa.c (struct machine_function): Likewise for
15742 field "set_frame_ptr_insn".
15743 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
15744 "csend" from rtx to rtx_code_label *.
15745 (xtensa_expand_atomic): Likewise for local "csloop".
15746 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
15748 (xtensa_call_tls_desc): Likewise for return type and locals
15749 "call_insn", "insns".
15750 (xtensa_legitimize_tls_address): Likewise for local "insns".
15751 (xtensa_expand_prologue): Likewise for locals "insn", "first".
15753 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15755 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
15756 first param from rtx to rtx_insn *.
15757 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
15760 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15762 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
15763 Strengthen param 1 from rtx to rtx_insn *.
15764 (tilepro_output_cbranch): Likewise.
15765 (tilepro_adjust_insn_length): Likewise.
15766 (tilepro_final_prescan_insn): Likewise for sole param.
15768 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
15769 Likewise for local "last".
15770 (cbranch_predicted_p): Likewise for param "insn".
15771 (tilepro_output_simple_cbranch_with_opcode): Likewise.
15772 (tilepro_output_cbranch_with_opcode): Likewise.
15773 (tilepro_output_cbranch): Likewise.
15774 (frame_emit_load): Likewise for return type and locals "seq",
15776 (emit_sp_adjust): Likewise for return type and local "insn".
15777 (tilepro_expand_epilogue): Likewise for locals "last_insn",
15779 (tilepro_adjust_insn_length): Likewise for param "insn".
15780 (next_insn_to_bundle): Likewise for return type and params
15782 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
15783 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
15785 (match_addli_pcrel): Likewise for param "insn".
15786 (replace_addli_pcrel): Likewise.
15787 (match_auli_pcrel): Likewise.
15788 (replace_auli_pcrel): Likewise.
15789 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
15791 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
15792 "queue", "next_queue", "prev".
15793 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
15794 (tilepro_final_prescan_insn): Likewise for param "insn".
15796 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15798 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
15799 Strengthen param 1 from rtx to rtx_insn *.
15800 (tilegx_output_cbranch): Likewise.
15801 (tilegx_adjust_insn_length): Likewise.
15802 (tilegx_final_prescan_insn): Likewise for sole param.
15804 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
15806 (cbranch_predicted_p): Likewise for param "insn".
15807 (tilegx_output_simple_cbranch_with_opcode): Likewise.
15808 (tilegx_output_cbranch_with_opcode): Likewise.
15809 (tilegx_output_cbranch): Likewise.
15810 (frame_emit_load): Likewise for return type.
15811 (set_frame_related_p): Likewise for locals "seq", "insn".
15812 (emit_sp_adjust): Likewise for return type, and for local "insn".
15813 Introduce local "pat" for use in place of "insn" where the latter
15814 isn't an instruction.
15815 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
15816 from rtx to rtx_insn *.
15817 (tilegx_adjust_insn_length): Likewise for param "insn".
15818 (next_insn_to_bundle): Likewise for return type and params "r" and
15820 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
15822 (replace_insns): Likewise for params "old_insn", "new_insns".
15823 (replace_mov_pcrel_step1): Likewise for param "insn" and local
15825 (replace_mov_pcrel_step2): Likewise.
15826 (replace_mov_pcrel_step3): Likewise.
15827 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
15829 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
15830 "queue", "next_queue", "prev".
15831 (tilegx_output_mi_thunk): Likewise for local "insn".
15832 (tilegx_final_prescan_insn): Likewise for param "insn".
15834 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15836 * config/spu/spu.c (frame_emit_store): Strengthen return type from
15838 (frame_emit_load): Likewise.
15839 (frame_emit_add_imm): Likewise, also for local "insn".
15840 (spu_expand_prologue): Likewise for local "insn".
15841 (struct spu_bb_info): Likewise for field "prop_jump".
15842 (emit_nop_for_insn): Likewise for param "insn" and local
15844 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
15846 (spu_emit_branch_hint): Likewise for params "before", "branch" and
15847 locals "hint", "insn".
15848 (get_branch_target): Likewise for param "branch".
15849 (insn_clobbers_hbr): Likewise for param "insn".
15850 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
15851 locals "insn", "before_4", "before_16".
15852 (insert_hbrp): Likewise for local "insn".
15853 (spu_machine_dependent_reorg): Likewise for locals "branch",
15854 "insn", "next", "bbend".
15855 (uses_ls_unit): Likewise for param "insn".
15856 (get_pipe): Likewise.
15857 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
15858 introducing a checked cast.
15859 (spu_sched_adjust_cost): Likewise for params "insn" and
15861 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
15862 (spu_sms_res_mii): Likewise.
15864 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15866 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
15867 from rtx to rtx_insn *.
15868 (output_cbranch): Likewise for param 6.
15869 (output_return): Likewise for param 1.
15870 (output_sibcall): Likewise.
15871 (output_v8plus_shift): Likewise.
15872 (output_v8plus_mult): Likewise.
15873 (output_v9branch): Likewise for param 7.
15874 (output_cbcond): Likewise for param 3.
15876 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
15878 (sparc_legitimize_pic_address): Likewise.
15879 (sparc_emit_call_insn): Likewise.
15880 (emit_save_or_restore_regs): Likewise.
15881 (emit_window_save): Likewise for return type and local "insn".
15882 (sparc_expand_prologue): Likewise for local "insn".
15883 (sparc_flat_expand_prologue): Likewise.
15884 (output_return): Likewise for param "insn".
15885 (output_sibcall): Likewise for param "insn" and local "delay".
15886 (output_ubranch): Likewise for param "insn".
15887 (output_cbranch): Likewise.
15888 (output_cbcond): Likewise.
15889 (output_v9branch): Likewise.
15890 (output_v8plus_shift): Likewise.
15891 (sparc_output_mi_thunk): Likewise for local "insn".
15892 (get_some_local_dynamic_name): Likewise.
15893 (output_v8plus_mult): Likewise for param "insn".
15895 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15897 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
15898 from rtx to rtx_insn *.
15899 (output_branchy_insn): Likewise for param 3.
15900 (output_far_jump): Likewise for param 1.
15901 (final_prescan_insn): Likewise.
15902 (sh_insn_length_adjustment): Likewise for sole param.
15904 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
15905 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
15907 (sh_emit_compare_and_set): Likewise for local "lab".
15908 (output_far_jump): Strengthen param "insn" and local "prev" from
15910 (output_branchy_insn): Likewise for param "insn" and local
15912 (output_ieee_ccmpeq): Likewise for param "insn".
15913 (struct label_ref_list_d): Strengthen field "label" from rtx to
15915 (pool_node): Likewise.
15916 (pool_window_label): Likewise for this global.
15917 (add_constant): Likewise for return type and locals "lab", "new_rtx".
15918 (dump_table): Strengthen params "start", "barrier" and local
15919 "scan" from rtx to rtx_insn *.
15920 (broken_move): Likewise for param "insn".
15921 (untangle_mova): Likewise for params "first_mova" and "new_mova".
15922 Strengthen param "first_mova" from rtx * to rtx_insn **.
15923 (mova_p): Likewise for param "insn".
15924 (fixup_mova): Likewise for param "mova".
15925 (find_barrier): Likewise for return type, params "mova" and
15926 "from", and locals "barrier_before_mova", "found_barrier",
15927 "good_barrier", "orig", "last_symoff", "next". Strengthen local
15928 "label" from rtx to rtx_code_label *.
15929 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
15931 (sh_reorg): Likewise for locals "link", "scan", "barrier".
15932 (split_branches): Likewise for param "first" and local "insn".
15933 (final_prescan_insn): Likewise for param "insn".
15934 (sequence_insn_p): Likewise for locals "prev", "next".
15935 (sh_insn_length_adjustment): Likewise for param "insn".
15936 (sh_can_redirect_branch): Likewise for local "insn".
15937 (find_r0_life_regions): Likewise for locals "end", "insn".
15938 (sh_output_mi_thunk): Likewise for local "insns".
15940 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15942 * config/score/score.c (score_output_mi_thunk): Strengthen local
15943 "insn" from rtx to rtx_insn *.
15944 (score_prologue): Likewise.
15946 2014-08-25 David Malcolm <dmalcolm@redhat.com>
15948 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
15949 1 from rtx to rtx_insn *.
15950 (s390_emit_jump): Likewise for return type.
15951 (s390_emit_call): Likewise.
15952 (s390_load_got): Likewise.
15954 * config/s390/s390.c (last_scheduled_insn): Likewise for this
15956 (s390_match_ccmode): Likewise for param "insn".
15957 (s390_emit_jump): Likewise for return type.
15958 (s390_split_branches): Likewise for local "label".
15959 (struct constant): Strengthen field "label" from rtx to
15961 (struct constant_pool): Likewise for field "label". Strengthen
15962 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
15964 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
15966 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
15967 (s390_end_pool): Likewise.
15968 (s390_dump_pool): Likewise for local "insn".
15969 (s390_mainpool_start): Likewise.
15970 (s390_chunkify_start): Likewise.
15971 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
15972 with insns. Strengthen locals "label", "jump", "barrier", "next",
15973 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
15974 (s390_chunkify_finish): Strengthen local "insn" from rtx to
15976 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
15977 "jump", "label", "next_insn".
15978 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
15979 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
15981 (s390_load_got): Likewise for return type and local "insns".
15982 (s390_save_gprs_to_fprs): Likewise for local "insn".
15983 (s390_restore_gprs_from_fprs): Likewise.
15984 (pass_s390_early_mach::execute): Likewise.
15985 (s390_emit_prologue): Likewise for local "insns".
15986 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
15988 (s390_emit_call): Strengthen return type and local "insn" from
15990 (s390_emit_tpf_eh_return): Likewise for local "insn".
15991 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
15992 "next_insn", introducing locals "s_pat", "rpat" to allow this.
15993 (s390_fix_long_loop_prediction): Likewise for param "insn" and
15995 (s390_non_addr_reg_read_p): Likewise for param "insn".
15996 (find_cond_jump): Likewise for return type and param "insn".
15997 (s390_swap_cmp): Likewise for param "insn".
15998 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
15999 "prev_insn", "next_insn".
16000 (s390_reorg): Likewise for locals "insn", "target".
16001 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
16002 (s390_sched_variable_issue): For now, rename param "insn" to
16003 "uncast_insn", introducing a checked cast.
16004 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
16006 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
16007 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
16009 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16011 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
16012 param from rtx to rtx_insn *.
16013 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
16015 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16017 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
16018 4 from rtx to rtx_insn *.
16019 (rs6000_final_prescan_insn): Likewise for first param.
16020 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
16022 (rs6000_get_some_local_dynamic_name): Likewise.
16023 (output_cbranch): Likewise for param "insn".
16024 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
16025 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
16026 (rs6000_emit_allocate_stack): Likewise for local "insn".
16027 (load_cr_save): Likewise.
16028 (restore_saved_cr): Likewise.
16029 (restore_saved_lr): Likewise.
16030 (emit_cfa_restores): Likewise.
16031 (rs6000_output_function_epilogue): Likewise for locals "insn" and
16032 "deleted_debug_label".
16033 (rs6000_output_mi_thunk): Likewise for local "insn".
16034 (rs6000_final_prescan_insn): Likewise for param "insn".
16036 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16038 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
16039 Strengthen param "insn" from rtx to rtx_insn *.
16040 * config/picochip/picochip.c (picochip_current_prescan_insn):
16041 Likewise for this variable.
16042 (picochip_final_prescan_insn): Likewise for param "insn".
16044 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16046 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
16047 from rtx to rtx_insn *.
16048 (pa_output_indirect_call): Likewise.
16049 (pa_adjust_insn_length): Likewise.
16050 (pa_attr_length_millicode_call): Likewise.
16051 (pa_attr_length_call): Likewise.
16052 (pa_attr_length_indirect_call): Likewise.
16054 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
16056 (pa_attr_length_millicode_call): Likewise.
16057 (pa_attr_length_call): Likewise.
16058 (pa_output_call): Likewise.
16059 (pa_attr_length_indirect_call): Likewise.
16060 (pa_output_indirect_call): Likewise.
16062 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16064 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
16065 Strengthen first param from rtx to rtx_insn *.
16066 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
16069 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16071 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
16072 type from rtx to rtx_insn *.
16073 (mips_expand_call): Likewise.
16074 (mips_adjust_insn_length): Likewise for first param.
16075 (mips_output_conditional_branch): Likewise.
16076 (mips_output_order_conditional_branch): Likewise.
16077 (mips_final_prescan_insn): Likewise.
16079 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
16080 rtx_insn * for the SEQUENCE case.
16081 (SEQ_END): Likewise.
16082 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
16083 (mips_emit_call_insn): Likewise, also for local "insn".
16084 (mips16_gp_pseudo_reg): Likewise for local "scan".
16085 (mips16_build_call_stub): Likewise for return type and for local
16086 "insn". Introduce a new local "pattern" so that "insn" can indeed
16088 (mips_expand_call): Strengthen return type and local "insn" from
16090 (mips_block_move_loop): Strengthen local "label" from rtx to
16092 (mips_expand_synci_loop): Likewise for locals "label",
16094 (mips_set_frame_expr): Strengthen local "insn" from rtx to
16096 (mips16e_collect_argument_saves): Likewise for locals "insn",
16098 (mips_find_gp_ref): Likewise for param of callback for "pred"
16099 param, and for local "insn".
16100 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
16101 (mips_insn_has_flexible_gp_ref_p): Likewise.
16102 (mips_epilogue_emit_cfa_restores): Likewise for return type and
16104 (mips_epilogue_set_cfa): Likewise for local "insn".
16105 (mips_expand_epilogue): Likewise.
16106 (mips_adjust_insn_length): Likewise for param "insn".
16107 (mips_output_conditional_branch): Likewise.
16108 (mips_output_order_conditional_branch): Likewise.
16109 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
16110 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
16111 "falu2_turn_enabled_insn".
16112 (mips_builtin_branch_and_move): Strengthen locals "true_label",
16113 "done_label" from rtx to rtx_code_label *.
16114 (struct mips16_constant): Likewise for field "label".
16115 (mips16_add_constant): Likewise for return type.
16116 (mips16_emit_constants_1): Strengthen return type and param "insn"
16117 from rtx to rtx_insn *.
16118 (mips16_emit_constants): Likewise for param "insn".
16119 (mips16_insn_length): Likewise.
16120 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
16121 to rtx_code_label *.
16122 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
16123 from rtx to rtx_insn *.
16124 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
16125 "jump". Strengthen local "label" from rtx to rtx_code_label *.
16126 (r10k_simplify_address): Strengthen param "insn" and local
16127 "def_insn" from rtx to rtx_insn *.
16128 (r10k_safe_address_p): Strengthen param "insn" from rtx to
16130 (r10k_needs_protection_p_1): Update target type of cast of data
16131 from to rtx to rtx_insn *.
16132 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
16133 rtx * to rtx_insn **.
16134 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
16136 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
16137 (mips_call_expr_from_insn): Likewise for param "insn".
16138 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
16139 (mips_find_pic_call_symbol): Likewise for param "insn".
16140 (mips_annotate_pic_calls): Likewise for local "insn".
16141 (mips_sim_insn): Likewise for this variable.
16142 (struct mips_sim): Likewise for field "insn" within elements of
16144 (mips_sim_wait_reg): Likewise for param "insn".
16145 (mips_sim_wait_regs): Likewise.
16146 (mips_sim_wait_units): Likewise.
16147 (mips_sim_wait_insn): Likewise.
16148 (mips_sim_issue_insn): Likewise.
16149 (mips_sim_finish_insn): Likewise.
16150 (mips_seq_time): Likewise for param "seq" and local "insn".
16151 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
16152 locals "first", "second".
16153 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
16154 "last", "last2", "next".
16155 (mips_avoid_hazard): Likewise for params "after", "insn".
16156 (mips_reorg_process_insns): Likewise for locals "insn",
16157 "last_insn", "subinsn", "next_insn".
16158 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
16159 (mips16_split_long_branches): Likewise for locals "insn" "jump",
16161 (mips_output_mi_thunk): Likewise for local "insn".
16162 (mips_final_prescan_insn): Likewise for param "insn".
16164 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16166 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
16167 Strengthen return type and local "insns" from rtx to rtx_insn *.
16168 (microblaze_legitimize_tls_address): Likewise for local "insns".
16169 (microblaze_block_move_loop): Strengthen local "label" from rtx
16170 to rtx_code_label *.
16171 (microblaze_expand_prologue): Strengthen two locals named "insn"
16172 from rtx to rtx_insn *.
16173 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
16174 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
16175 "insn". Strengthen locals "div_label", "div_end_label" from rtx
16176 to rtx_code_label *.
16178 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16180 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
16181 param from rtx to rtx_insn *.
16182 (mep_reuse_lo): Likewise for third param.
16183 (mep_use_post_modify_p): Likewise for first param.
16184 (mep_core_address_length): Likewise.
16185 (mep_cop_address_length): Likewise.
16186 (mep_final_prescan_insn): Likewise.
16187 (mep_store_data_bypass_p): Likewise for both params.
16188 (mep_mul_hilo_bypass_p): Likewise.
16189 (mep_ipipe_ldc_p): Likewise for param.
16191 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
16192 (mep_rewrite_mult): Likewise.
16193 (mep_rewrite_mulsi3): Likewise.
16194 (mep_rewrite_maddsi3): Likewise.
16195 (mep_reuse_lo_p_1): Likewise.
16196 (mep_reuse_lo_p): Likewise.
16197 (mep_frame_expr): Likewise.
16198 (mep_make_parallel): Likewise for both params.
16199 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
16201 (mep_use_post_modify_p): Likewise for param "insn".
16202 (mep_core_address_length): Likewise.
16203 (mep_cop_address_length): Likewise.
16204 (mep_reg_set_in_function): Likewise for local "insn".
16205 (mep_asm_without_operands_p): Likewise.
16206 (F): Likewise for return type and param "x".
16207 (add_constant): Likewise for local "insn".
16208 (maybe_dead_move): Likewise for return type and local "insn".
16209 (mep_expand_prologue): Likewise for local "insn".
16210 (mep_final_prescan_insn): Likewise for param "insn".
16211 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
16212 "next", "follow", "x".
16213 (mep_insert_repeat_label_last): Likewise for return type, param
16214 "last_insn", and locals "next", "prev". Strengthen param "label"
16215 from rtx to rtx_code_label *.
16216 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
16218 (struct mep_doloop_end): Likewise for fields "insn" and
16220 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
16221 Strengthen local "repeat_label" from rtx to rtx_code_label *.
16222 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
16224 (mep_invert_branch): Likewise for params "insn" and "after".
16225 (mep_reorg_erepeat): Likewise for param "insns" and locals
16226 "insn", "prev", "new_last", "barrier", "user". Strengthen local
16227 "l" from rtx to rtx_code_label *.
16228 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
16229 from rtx to rtx_insn *.
16230 (mep_reorg_addcombine): Likewise for param "insns" and locals
16232 (add_sp_insn_p): Likewise for param "insn".
16233 (mep_reorg_noframe): Likewise for param "insns" and locals
16234 "start_frame_insn", "end_frame_insn", "next".
16235 (mep_reorg): Likewise for local "insns".
16236 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
16238 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
16239 (mep_mul_hilo_bypass_p): Likewise.
16240 (mep_ipipe_ldc_p): Likewise for param "insn".
16241 (mep_make_bundle): Likewise for return type, param "cop" and local
16242 "insn", splitting out the latter into a new local "seq" for when it
16243 is a SEQUENCE rather than an insn.
16244 (core_insn_p): Likewise for param "insn".
16245 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
16246 "last", "first", "note", "prev", "core_insn".
16248 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16250 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
16252 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
16253 (m68k_final_prescan_insn): Likewise for first param.
16255 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
16256 (m68k_set_frame_related): Likewise for param "insn".
16257 (output_btst): Likewise for param "insn".
16258 (m68k_final_prescan_insn): Likewise.
16259 (m68k_move_to_reg): Likewise for local "insn".
16260 (m68k_call_tls_get_addr): Likewise for local "insns".
16261 (m68k_call_m68k_read_tp): Likewise.
16262 (strict_low_part_peephole_ok): Likewise for param "first_insn".
16263 (m68k_output_mi_thunk): Likewise for local "insn".
16265 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16267 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
16268 first param from rtx to rtx_insn *.
16269 (iq2000_adjust_insn_length): Likewise.
16270 (iq2000_output_conditional_branch): Likewise.
16271 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
16272 "insn" and local "nop_insn".
16273 (iq2000_annotate_frame_insn): Likewise for param "insn".
16274 (iq2000_expand_prologue): Likewise for both locals "insn".
16275 (iq2000_adjust_insn_length): Likewise for param "insn".
16276 (iq2000_output_conditional_branch): Likewise.
16278 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16280 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
16281 "insns" from rtx to rtx_insn *.
16282 (ia64_emit_cond_move): Likewise for locals "insn", "first".
16283 (struct spill_fill_data): Likewise for field "init_after" and for
16284 elements of array field "prev_insn".
16285 (spill_restore_mem): Likewise for locals "insn", "first".
16286 (do_spill): Likewise for local "insn".
16287 (do_restore): Likewise.
16288 (ia64_expand_prologue): Likewise.
16289 (ia64_expand_epilogue): Likewise.
16290 (emit_insn_group_barriers): Likewise for locals "insn",
16292 (emit_all_insn_group_barriers): Likewise for locals "insn",
16294 (dfa_stop_insn): Likewise for this global.
16295 (dfa_pre_cycle_insn): Likewise.
16296 (ia64_nop): Likewise.
16297 (final_emit_insn_group_barriers): Likewise for locals "insn",
16299 (emit_predicate_relation_info): Likewise for locals "head", "n",
16301 (ia64_reorg): Likewise for local "insn".
16302 (ia64_output_mi_thunk): Likewise.
16303 (expand_vec_perm_interleave_2): Likewise for local "seq".
16305 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16307 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
16308 param 1 "insn" from rtx to rtx_insn *.
16309 (ix86_use_lea_for_mov): Likewise.
16310 (ix86_avoid_lea_for_addr): Likewise.
16311 (ix86_split_lea_for_addr): Likewise.
16312 (ix86_lea_for_add_ok): Likewise.
16313 (ix86_output_call_insn): Likewise.
16315 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
16316 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
16317 (ix86_output_function_epilogue): Likewise for locals "insn",
16318 "deleted_debug_label".
16319 (legitimize_tls_address): Likewise for local "insn".
16320 (get_some_local_dynamic_name): Likewise.
16321 (increase_distance): Likewise for params "prev", "next".
16322 (distance_non_agu_define_in_bb): Likewise for params "insn",
16323 "start" and locals "prev", "next".
16324 (distance_non_agu_define): Likewise for param "insn".
16325 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
16326 locals "next", "prev".
16327 (distance_agu_use): Likewise for param "insn".
16328 (ix86_lea_outperforms): Likewise.
16329 (ix86_ok_to_clobber_flags): Likewise.
16330 (ix86_avoid_lea_for_add): Likewise.
16331 (ix86_use_lea_for_mov): Likewise.
16332 (ix86_avoid_lea_for_addr): Likewise.
16333 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
16334 (ix86_split_lea_for_addr): Likewise for param "insn".
16335 (ix86_lea_for_add_ok): Likewise for param "insn".
16336 (ix86_expand_carry_flag_compare): Likewise for local
16338 (ix86_expand_int_movcc): Likewise.
16339 (ix86_output_call_insn): Likewise for param "insn".
16340 (ix86_output_call_insn): Likewise for local "i".
16341 (x86_output_mi_thunk): Introduce local "insn", using it in place
16342 of "tmp" when dealing with insns.
16343 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
16345 (ix86_pad_returns): Likewise for locals "ret", "prev".
16346 (ix86_count_insn_bb): Likewise for local "insn".
16347 (ix86_pad_short_function): Likewise for locals "ret", "insn".
16348 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
16349 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
16350 (expand_vec_perm_interleave2): Likewise for local "seq".
16351 (expand_vec_perm_vperm2f128_vblend): Likewise.
16352 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
16353 call to for_each_rtx with for_each_rtx_in_insn.
16355 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16357 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
16358 "label" from rtx to rtx_code_label *.
16359 (ix86_expand_prologue): Likewise.
16360 (ix86_expand_split_stack_prologue): Likewise for locals "label",
16362 (ix86_split_idivmod): Likewise for locals "end_label" and
16364 (ix86_expand_branch): Likewise for local "label2".
16365 (ix86_expand_aligntest): Likewise for return type and local "label".
16366 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
16368 (expand_movmem_epilogue): Likewise for the various locals named
16370 (expand_setmem_epilogue): Likewise.
16371 (expand_small_movmem_or_setmem): Likewise for local "label".
16372 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
16373 Strengthen param "done_label" from rtx * to rtx_code_label **.
16374 Strengthen locals "loop_label" and "label" from rtx to
16376 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
16377 Likewise for locals "loop_label", "label".
16378 (ix86_expand_set_or_movmem): Likewise for locals "label",
16379 "jump_around_label", "hot_label".
16380 (ix86_expand_strlensi_unroll_1): Likewise for locals
16381 "align_2_label", align_3_label", "align_4_label", "end_0_label",
16383 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
16384 (void ix86_emit_i387_log1p): Likewise for locals "label1",
16385 "label2", "jump_label".
16386 (ix86_expand_sse_compare_and_jump): Likewise for return type and
16388 (ix86_expand_lfloorceil): Likewise for local "label".
16389 (ix86_expand_rint): Likewise.
16390 (ix86_expand_floorceildf_32): Likewise.
16391 (ix86_expand_floorceil): Likewise.
16392 (ix86_expand_rounddf_32): Likewise.
16393 (ix86_expand_trunc): Likewise.
16394 (ix86_expand_truncdf_32): Likewise.
16395 (ix86_expand_round): Likewise.
16397 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16399 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
16400 first param from rtx to rtx_insn *.
16401 (h8300_insn_length_from_table): Likewise.
16402 * config/h8300/h8300.c (F): Likewise for return type and param
16404 (Fpa): Add a checked cast to rtx_insn *.
16405 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
16407 (final_prescan_insn): Likewise for param "insn".
16408 (h8300_binary_length): Likewise.
16409 (h8300_insn_length_from_table): Likewise.
16411 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16413 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
16414 Strengthen first param "insn" from rtx to rtx_insn *.
16416 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
16418 (frame_insn): Likewise for return type. Introduce local "insn"
16419 for use in place of local "x" for use as an rtx_insn *.
16420 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
16421 (epiphany_expand_prologue): Likewise for local "insn".
16422 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
16423 * config/epiphany/resolve-sw-modes.c
16424 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
16427 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16429 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
16430 param from rtx to rtx_insn *.
16431 (c6x_final_prescan_insn): Likewise for first param.
16433 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
16434 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
16435 (c6x_expand_compare): Strengthen local "insns" from rtx to
16437 (c6x_get_unit_specifier): Likewise for param "insn".
16438 (c6x_print_unit_specifier_field): Likewise.
16439 (c6x_final_prescan_insn): Likewise.
16440 (emit_add_sp_const): Likewise for local "insn".
16441 (c6x_expand_prologue): Likewise.
16443 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16445 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
16446 param 1 from rtx to rtx_insn *.
16447 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
16448 the various locals named "insn".
16449 (expand_epilogue_reg_restore): Likewise.
16450 (frame_related_constant_load): Likewise.
16451 (add_to_reg): Likewise.
16452 (emit_link_insn): Likewise.
16453 (do_link): Likewise.
16454 (expand_interrupt_handler_prologue): Likewise.
16455 (branch_dest): Likewise for param "branch".
16456 (asm_conditional_branch): Likewise for param "insn".
16457 (gen_one_bundle): Likewise for elements of param "slot" and local
16459 (bfin_gen_bundles): Likewise for locals "insn", "next" and
16460 elements of local "slot".
16461 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
16462 "queue", "next_queue", "prev".
16463 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
16464 (add_sched_insns_for_speculation): Likewise for local "insn".
16466 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16468 * config/avr/avr-protos.h (output_movqi): Strengthen first param
16469 from rtx to rtx_insn *.
16470 (output_movhi): Likewise.
16471 (output_movsisf): Likewise.
16472 (avr_out_tstsi): Likewise.
16473 (avr_out_tsthi): Likewise.
16474 (avr_out_tstpsi): Likewise.
16475 (avr_out_compare): Likewise.
16476 (avr_out_compare64): Likewise.
16477 (avr_out_movpsi): Likewise.
16478 (ashlqi3_out): Likewise.
16479 (ashlhi3_out): Likewise.
16480 (ashlsi3_out): Likewise.
16481 (ashrqi3_out): Likewise.
16482 (ashrhi3_out): Likewise.
16483 (ashrsi3_out): Likewise.
16484 (lshrqi3_out): Likewise.
16485 (lshrhi3_out): Likewise.
16486 (lshrsi3_out): Likewise.
16487 (avr_out_ashlpsi3): Likewise.
16488 (avr_out_ashrpsi3): Likewise.
16489 (avr_out_lshrpsi3): Likewise.
16490 (avr_out_fract): Likewise.
16491 (avr_out_sbxx_branch): Likewise.
16492 (avr_out_round): Likewise.
16493 (avr_out_xload): Likewise.
16494 (avr_out_movmem): Likewise.
16495 (adjust_insn_length): Likewise.
16496 (avr_out_lpm): Likewise.
16497 (reg_unused_after): Likewise.
16498 (_reg_unused_after): Likewise.
16499 (avr_jump_mode): Likewise for second param.
16500 (jump_over_one_insn): Likewise for first param.
16501 (avr_final_prescan_insn): Likewise.
16502 (out_shift_with_cnt): Likewise for second param.
16504 * config/avr/avr.c (get_sequence_length): Likewise for param
16505 "insns" and local "insn".
16506 (emit_push_byte): Likewise for local "insn".
16507 (emit_push_sfr): Likewise.
16508 (avr_prologue_setup_frame): Likewise for locals "insn",
16509 "fp_plus_insns", "sp_plus_insns".
16510 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
16512 (avr_jump_mode): Likewise for param "insn".
16513 (avr_final_prescan_insn): Likewise.
16514 (avr_find_unused_d_reg): Likewise.
16515 (avr_out_lpm_no_lpmx): Likewise.
16516 (avr_out_lpm): Likewise.
16517 (avr_out_xload): Likewise.
16518 (output_movqi): Likewise.
16519 (output_movhi): Likewise.
16520 (out_movqi_r_mr): Likewise.
16521 (out_movhi_r_mr): Likewise.
16522 (out_movsi_r_mr): Likewise.
16523 (out_movsi_mr_r): Likewise.
16524 (output_movsisf): Likewise.
16525 (avr_out_load_psi): Likewise.
16526 (avr_out_store_psi): Likewise.
16527 (avr_out_movpsi): Likewise.
16528 (out_movqi_mr_r): Likewise.
16529 (avr_out_movhi_mr_r_xmega): Likewise.
16530 (out_movhi_mr_r): Likewise.
16531 (compare_condition): Likewise for param "insn" and local "next".
16532 (compare_sign_p): Likewise for param "insn".
16533 (compare_diff_p): Likewise.
16534 (compare_eq_p): Likewise.
16535 (avr_out_compare): Likewise.
16536 (avr_out_compare64): Likewise.
16537 (avr_out_tsthi): Likewise.
16538 (avr_out_tstpsi): Likewise.
16539 (avr_out_tstsi): Likewise.
16540 (out_shift_with_cnt): Likewise.
16541 (ashlqi3_out): Likewise.
16542 (ashlhi3_out): Likewise.
16543 (avr_out_ashlpsi3): Likewise.
16544 (ashlsi3_out): Likewise.
16545 (ashrqi3_out): Likewise.
16546 (ashrhi3_out): Likewise.
16547 (avr_out_ashrpsi3): Likewise.
16548 (ashrsi3_out): Likewise.
16549 (lshrqi3_out): Likewise.
16550 (lshrhi3_out): Likewise.
16551 (avr_out_lshrpsi3): Likewise.
16552 (lshrsi3_out): Likewise.
16553 (avr_out_fract): Likewise.
16554 (avr_out_round): Likewise.
16555 (avr_adjust_insn_length): Likewise.
16556 (reg_unused_after): Likewise.
16557 (_reg_unused_after): Likewise.
16558 (avr_compare_pattern): Likewise.
16559 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
16560 and locals "branch1", "branch2", "insn2", "jump".
16561 (avr_reorg): Likewise for local "insn".
16562 (avr_2word_insn_p): Likewise for param "insn".
16563 (jump_over_one_insn_p): Likewise.
16564 (avr_out_sbxx_branch): Likewise.
16565 (avr_out_movmem): Likewise.
16567 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16569 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
16570 param from rtx to rtx_insn *.
16571 (thumb1_final_prescan_insn): Likewise.
16572 (thumb2_final_prescan_insn): Likewise.
16574 * config/arm/arm.c (emit_set_insn): Strengthen return type from
16576 (struct minipool_node): Likewise for field "insn".
16577 (dump_minipool): Likewise for param "scan".
16578 (create_fix_barrier): Likewise for local "from". Strengthen local
16579 "label" from rtx to rtx_code_label *.
16580 (push_minipool_barrier): Strengthen param "insn" from rtx to
16582 (push_minipool_fix): Likewise.
16583 (note_invalid_constants): Likewise.
16584 (thumb2_reorg): Likewise for local "insn".
16585 (arm_reorg): Likewise.
16586 (thumb2_final_prescan_insn): Likewise for param
16587 "insn" and local "first_insn".
16588 (arm_final_prescan_insn): Likewise for param "insn" and locals
16589 "start_insn", "this_insn".
16590 (arm_debugger_arg_offset): Likewise for param "insn".
16591 (thumb1_emit_multi_reg_push): Likewise for return type and local
16593 (thumb1_final_prescan_insn): Likewise for param "insn".
16594 (thumb_far_jump_used_p): Likewise for local "insn".
16595 (thumb1_expand_prologue): Likewise.
16596 (arm_expand_epilogue_apcs_frame): Likewise.
16597 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
16598 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
16599 from rtx to rtx_code_label *.
16600 (arm_split_atomic_op): Likewise for local "label".
16601 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
16603 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16605 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
16606 first param from rtx to rtx_insn *.
16607 (arc_verify_short): Likewise.
16608 (arc_short_long): Likewise.
16609 (arc_need_delay): Likewise.
16611 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
16613 (arc_ccfsm_advance): Likewise for param "insn" and locals
16614 "start_insn", "this_insn".
16615 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
16616 (arc_ccfsm_post_advance): Likewise for param "insn".
16617 (arc_next_active_insn): Likewise for return type and param "insn".
16618 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
16619 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
16620 (output_short_suffix): Likewise for local "insn".
16621 (arc_final_prescan_insn): Likewise for param "insn". Remove
16622 now-redundant checked cast.
16623 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
16624 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
16625 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
16626 for use where lc_set became an insn.
16627 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
16629 (arc_get_insn_variants): Likewise for local "prev".
16630 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
16632 (arc_predicate_delay_insns): Likewise for local "insn".
16633 (arc_pad_return): Likewise for local "prev". For now, add a
16634 checked cast when extracting the insn from "final_sequence".
16635 (arc_short_long): Likewise for param "insn".
16636 (arc_need_delay): Likewise for param "insn" and local "next".
16637 (arc_label_align): Likewise for locals "prev", "next".
16639 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16641 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
16642 "insn" from rtx to rtx_insn *.
16643 (alpha_gp_save_rtx): Likewise for local "seq".
16644 (alpha_instantiate_decls): Likewise for local "top".
16645 (get_some_local_dynamic_name): Likewise for local "insn".
16646 (alpha_does_function_need_gp): Likewise.
16647 (set_frame_related_p): Likewise for return type and for locals
16649 (emit_frame_store_1): Likewise for local "insn".
16650 (alpha_expand_prologue): Likewise for locals "insn", "seq".
16651 (alpha_end_function): Likewise for local "insn".
16652 (alpha_output_mi_thunk_osf): Likewise.
16653 (alphaev4_insn_pipe): Likewise for param "insn".
16654 (alphaev5_insn_pipe): Likewise.
16655 (alphaev4_next_group): Likewise for return type and param 1
16657 (alphaev5_next_group): Likewise.
16658 (alpha_align_insns_1): Likewise for return type and param 1 of
16659 callback param "next_group", and for locals "i", "next", "prev",
16660 "where", "where2", "insn".
16662 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
16664 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
16665 rather than modifying the stmt.
16667 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16669 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
16670 cgraph_state conversion.
16672 2014-08-25 David Malcolm <dmalcolm@redhat.com>
16674 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
16675 Strengthen local "insns" from rtx to rtx_insn *.
16676 (aarch64_set_frame_expr): Likewise for local "insn".
16677 (aarch64_save_or_restore_fprs): Likewise.
16678 (aarch64_save_or_restore_callee_save_registers): Likewise.
16679 (aarch64_expand_prologue): Likewise.
16680 (aarch64_expand_epilogue): Likewise.
16681 (aarch64_output_mi_thunk): Likewise.
16682 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
16683 "label2" from rtx to rtx_code_label *.
16684 (aarch64_split_atomic_op): Likewise for local "label".
16686 2014-08-25 Martin Liska <mliska@suse.cz>
16688 * cgraph.h (symtab_node):
16689 (bool needed_p (void)): created from decide_is_symbol_needed
16690 (bool referred_to_p (void)): created from referred_to_p
16691 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
16692 * cgraph.h (cgraph_node):
16693 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
16694 (void expand (void)): created from expand_function
16695 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
16696 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
16697 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
16698 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
16699 * cgraph.h (varpool_node):
16700 (static void add (tree decl): created from varpool_add_new_variable
16701 * cgraph.h (cgraph_edge):
16702 void remove (void);
16703 (void remove_caller (void)): created from cgraph_edge_remove_caller
16704 (void remove_callee (void)): created from cgraph_edge_remove_callee
16705 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
16706 created from cgraph_set_call_stmt
16707 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
16708 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
16709 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
16710 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
16711 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
16712 created from cgraph_speculative_call_info
16713 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
16714 int freq_scale, bool update_original)): created from cgraph_clone_edge
16715 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
16716 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
16717 (bool recursive_p (void)): created from cgraph_edge_recursive_p
16718 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
16719 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
16720 (static void rebuild_references (void)): created from cgraph_rebuild_references
16721 * cgraph.h (symbol_table):
16722 (create_reference): renamed from add_reference
16723 (maybe_create_reference): renamed from maybe_add_reference
16724 (void register_symbol (symtab_node *node)): new function
16725 (void clear_asm_symbols (void)): new function
16726 (void unregister (symtab_node *node)): new function
16727 (void release_symbol (cgraph_node *node, int uid)): new function
16728 (cgraph_node * allocate_cgraph_symbol (void)): new function
16729 (void initialize (void)): created from cgraph_init
16730 (symtab_node *first_symbol (void)):new function
16731 (asm_node *first_asm_symbol (void)):new function
16732 (symtab_node *first_defined_symbol (void)):new function
16733 (varpool_node *first_variable (void)):new function
16734 (varpool_node *next_variable (varpool_node *node)):new function
16735 (varpool_node *first_static_initializer (void)):new function
16736 (varpool_node *next_static_initializer (varpool_node *node)):new function
16737 (varpool_node *first_defined_variable (void)):new function
16738 (varpool_node *next_defined_variable (varpool_node *node)):new function
16739 (cgraph_node *first_defined_function (void)):new function
16740 (cgraph_node *next_defined_function (cgraph_node *node)):new function
16741 (cgraph_node *first_function (void)):new function
16742 (cgraph_node *next_function (cgraph_node *node)):new function
16743 (cgraph_node *first_function_with_gimple_body (void)):new function
16744 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
16745 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
16746 created from symtab_remove_unreachable_nodes
16747 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
16748 (void process_new_functions (void)): created from cgraph_process_new_functions
16749 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
16750 (bool output_variables (void)): created from varpool_node::output_variables
16751 (void output_asm_statements (void)): created from output_asm_statements
16752 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
16753 (void compile (void)): created from compile
16754 (void output_weakrefs (void)): created from output_weakrefs
16755 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
16756 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
16757 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
16758 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
16759 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
16760 created from cgraph_next_function_with_gimple_body
16761 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
16762 created from cgraph_remove_edge_removal_hook
16763 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
16764 created from cgraph_add_node_removal_hook
16765 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
16766 created from cgraph_remove_node_removal_hook
16767 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
16768 created from varpool_add_node_removal_hook
16769 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
16770 created from varpool_remove_node_removal_hook
16771 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
16772 created from cgraph_add_function_insertion_hook
16773 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
16774 created from cgraph_remove_function_insertion_hook
16775 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
16776 created from varpool_add_variable_insertion_hook
16777 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
16778 created from varpool_remove_variable_insertion_hook
16779 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
16780 created from cgraph_add_edge_duplication_hook
16781 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
16782 created from cgraph_remove_edge_duplication_hook
16783 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
16784 created from cgraph_add_node_duplication_hook
16785 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
16786 created from cgraph_remove_node_duplication_hook
16787 (void call_edge_removal_hooks (cgraph_edge *e)):
16788 created from cgraph_call_edge_removal_hooks
16789 (void call_cgraph_insertion_hooks (cgraph_node *node)):
16790 created from call_function_insertion_hooks
16791 (void call_cgraph_removal_hooks (cgraph_node *node)):
16792 created from cgraph_call_node_removal_hooks
16793 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
16794 created from cgraph_node::call_duplication_hooks
16795 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
16796 created from cgraph_call_edge_duplication_hooks
16797 (void call_varpool_removal_hooks (varpool_node *node)):
16798 created from varpool_call_node_removal_hooks
16799 (void call_varpool_insertion_hooks (varpool_node *node)):
16800 created from varpool_call_variable_insertion_hooks
16801 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
16802 created from insert_to_assembler_name_hash
16803 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
16804 created from unlink_from_assembler_name_hash
16805 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
16806 created from symtab_prevail_in_asm_name_hash
16807 (void symtab_initialize_asm_name_hash (void)):
16808 created from symtab_initialize_asm_name_hash
16809 (void change_decl_assembler_name (tree decl, tree name)):
16810 created from change_decl_assembler_name
16811 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
16812 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
16813 created from decl_assembler_name_hash
16814 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
16815 created from decl_assembler_name_equal
16816 (static hashval_t hash_node_by_assembler_name (const void *p)):
16817 created from hash_node_by_assembler_name
16818 (static int eq_assembler_name (const void *p1, const void *p2)):
16819 created from eq_assembler_name
16821 2014-08-25 Marek Polacek <polacek@redhat.com>
16823 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
16825 2014-08-25 Petr Murzin <petr.murzin@intel.com>
16827 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
16828 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
16829 SWI1248_AVX512BW mode iterator.
16831 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
16834 * config/sh/predicates.md (general_extend_operand): Disable
16835 TRUNCATE before reload completes.
16837 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
16839 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
16841 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
16844 * config/sh/sh.opt (musermode): Allow negative form.
16845 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
16846 targets that don't support it.
16847 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
16848 Document -mno-usermode option.
16850 2014-08-24 Kito Cheng <kito@0xlab.org>
16852 * system.h (CALLER_SAVE_PROFITABLE): Poison.
16853 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
16854 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
16855 * doc/tm.texi: Regenerate.
16857 2014-08-24 Kito Cheng <kito@0xlab.org>
16859 * ira.c: Fix typo in comment.
16861 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
16863 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
16864 Deprecate c++1y. Change language to reflect greater confidence in C++14.
16866 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
16869 * config/pa/pa.c (pa_output_function_epilogue): Don't set
16870 last_address when the current function is a thunk.
16871 (pa_asm_output_mi_thunk): When we don't have named sections or they
16872 are not being used, check that thunk can reach the stub table with a
16875 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16877 * web.c (union_match_dups): Strengthen param "insn" from rtx to
16879 (pass_web::execute): Likewise for local "insn".
16881 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16883 * var-tracking.c (struct micro_operation_def): Strengthen field
16884 "insn" from rtx to rtx_insn *.
16885 (struct emit_note_data_def): Likewise.
16886 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
16887 (vt_stack_adjustments): Likewise for local "insn".
16888 (adjust_insn): Likewise for param "insn".
16889 (val_store): Likewise.
16890 (val_resolve): Likewise.
16891 (struct count_use_info): Likewise for field "insn".
16892 (log_op_type): Likewise for param "insn".
16893 (reverse_op): Likewise.
16894 (prepare_call_arguments): Likewise.
16895 (add_with_sets): The initial param takes an insn, but we can't
16896 yet strengthen it from rtx to rtx_insn * since it's used as a
16897 cselib_record_sets_hook callback. For now rename initial param
16898 from "insn" to "uncast_insn", and introduce a local "insn" of
16899 the stronger rtx_insn * type, with a checked cast.
16900 (compute_bb_dataflow): Strengthen local "insn" from rtx to
16902 (emit_note_insn_var_location): Likewise.
16903 (emit_notes_for_changes): Likewise.
16904 (emit_notes_for_differences): Likewise.
16905 (next_non_note_insn_var_location): Likewise for return type and
16907 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
16908 (vt_initialize): Likewise for local "insn".
16909 (delete_debug_insns): Likewise for locals "insn" and "next".
16911 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16913 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
16915 (mark_constant_pool): Likewise for local "insn".
16917 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16919 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
16921 (dead_debug_promote_uses): Likewise.
16922 (dead_debug_insert_temp): Likewise.
16924 2014-08-23 David Malcolm <dmalcolm@redhat.com>
16926 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
16927 from const_rtx to const rtx_insn *.
16928 (store_killed_after): Likewise. Strengthen locals "last", "act"
16929 from rtx to rtx_insn *.
16930 (store_killed_before): Strengthen param "insn" from const_rtx to
16931 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
16932 (find_moveable_store): Strengthen param "insn" from rtx to
16934 (compute_store_table): Likewise for local "insn".
16935 (insert_insn_start_basic_block): Likewise for param "insn" and
16936 locals "prev", "before", "insn".
16937 (insert_store): For now, add a checked cast to rtx_insn * on the
16938 result of gen_move_insn.
16939 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
16941 (replace_store_insn): Likewise. For now, add a checked cast to
16942 rtx_insn * on the result of gen_move_insn.
16944 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16946 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
16948 (expand_sjlj_dispatch_table): Likewise.
16950 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16952 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
16953 "insn" from rtx to rtx_insn *.
16955 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16957 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
16958 "insn" from rtx to rtx_insn *.
16959 (dup_block_and_redirect): Likewise for param 3 "before".
16961 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
16962 from rtx to rtx_insn *.
16963 (move_insn_for_shrink_wrap): Likewise.
16964 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
16965 (dup_block_and_redirect): Likewise for param "before" and local
16967 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
16969 (convert_to_simple_return): Likewise for local "start".
16971 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
16972 Strengthen local "insn" from rtx to rtx_insn *, for use when
16973 invoking requires_stack_frame_p.
16975 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16977 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
16979 (speculate_expr): Likewise for locals "orig_insn_rtx",
16981 (eq_transformed_insns): Likewise for locals "i1", "i2".
16982 (check_for_new_jump): Likewise for return type and local "end".
16983 (find_new_jump): Likewise for return type and local "jump".
16984 (sel_split_edge): Likewise for local "jump".
16985 (sel_create_recovery_block): Likewise.
16986 (sel_redirect_edge_and_branch_force): Likewise.
16987 (sel_redirect_edge_and_branch): Likewise.
16989 2014-08-22 David Malcolm <dmalcolm@redhat.com>
16991 * sel-sched.c (substitute_reg_in_expr): Strengthen local
16992 "new_insn" from rtx to rtx_insn *.
16993 (create_insn_rtx_with_rhs): Likewise for return type and for local
16995 (create_insn_rtx_with_lhs): Likewise.
16996 (create_speculation_check): Likewise for local "insn_rtx".
16997 (implicit_clobber_conflict_p): Likewise for local "insn".
16998 (get_expr_cost): Likewise.
16999 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
17000 (move_cond_jump): Likewise for locals "next", "prev", "link",
17001 "head", "from", "to".
17003 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17005 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
17006 "next" from rtx to rtx_insn *.
17007 (find_conditional_protection): Likewise for local "next".
17008 (is_conditionally_protected): Likewise for local "insn1".
17009 (is_pfree): Likewise for locals "insn1", "insn2".
17011 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17013 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
17014 from rtx to rtx_insn *.
17016 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
17017 locals "insn1", "insn2" from rtx to rtx_insn *.
17018 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
17019 locals "insn", "prev", "last_jump", "next_tail".
17020 (schedule_ebb): Likewise for params "head", "tail".
17021 (schedule_ebbs): Likewise for locals "tail", "head".
17023 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
17024 to rtx_insn on "last_insn" in one of the invocations of
17027 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17029 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
17030 "elem", "insn" from rtx to rtx_insn *.
17031 (change_spec_dep_to_hard): Likewise.
17032 (get_back_and_forw_lists): Likewise for local "con".
17033 (sd_add_dep): Likewise for locals "elem", "insn".
17034 (sd_resolve_dep): Likewise for locals "pro", "con".
17035 (sd_unresolve_dep): Likewise.
17036 (sd_delete_dep): Likewise.
17037 (chain_to_prev_insn): Likewise for local "pro".
17038 (find_inc): Likewise for locals "pro", "con".
17040 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17042 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
17044 (reg_set_between_p): Strengthen local "insn" from const_rtx to
17046 (modified_between_p): Strengthen local "insn" from rtx to
17048 (remove_reg_equal_equiv_notes_for_regno): Likewise.
17049 (keep_with_call_p): Strengthen local "i2" from const_rtx to
17052 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17054 * resource.c (next_insn_no_annul): Strengthen local "next" from
17056 (mark_referenced_resources): Likewise for local "insn".
17058 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17060 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
17062 (find_reloads): Likewise for param 1.
17063 (subst_reloads): Likewise for sole param.
17064 (find_equiv_reg): Likwise for param 2.
17065 (regno_clobbered_p): Likwise for param 2.
17066 (reload): Likewise for param 1.
17068 * caller-save.c (save_call_clobbered_regs): Strengthen local
17069 "insn" from rtx to rtx_insn *.
17070 (insert_one_insn): Likewise for local "insn".
17072 * reload.c (this_insn): Likewise for this global.
17073 (find_reloads): Likewise for param "insn".
17074 (find_reloads_toplev): Likewise.
17075 (find_reloads_address): Likewise.
17076 (subst_reg_equivs): Likewise.
17077 (update_auto_inc_notes): Likewise.
17078 (find_reloads_address_1): Likewise.
17079 (find_reloads_subreg_address): Likewise.
17080 (subst_reloads): Likewise.
17081 (find_equiv_reg): Likewise, also for local "p".
17082 (regno_clobbered_p): Likewise for param "insn".
17084 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
17086 (spill_reg_store): Likewise for the elements of this array.
17087 (remove_init_insns): Likewise for local "equiv_insn".
17088 (will_delete_init_insn_p): Likewise for param "insn".
17089 (reload): Likewise for param ""first" and local "insn".
17090 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
17092 (calculate_elim_costs_all_insns): Likewise.
17093 (delete_caller_save_insns): Likewise.
17094 (spill_failure): Likewise for param "insn".
17095 (delete_dead_insn): Likewise.
17096 (set_label_offsets): Likewise.
17097 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
17099 (elimination_costs_in_insn): Likewise for param "insn".
17100 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
17101 when referring to an insn.
17102 (set_initial_label_offsets): Likewise.
17103 (set_offsets_for_label): Strengthen param "insn" from rtx to
17105 (init_eliminable_invariants): Likewise for param "first" and local
17107 (fixup_eh_region_note): Likewise for param "insn".
17108 (reload_as_needed): Likewise for locals "prev", "insn",
17109 "old_next", "old_prev", "next".
17110 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
17112 (reload_inheritance_insn): Strengthen elements of this array from
17114 (failed_reload): Likewise for param "insn".
17115 (choose_reload_regs): Likewise for local "insn". Replace use of
17116 NULL_RTX with NULL when referring to an insn.
17117 (input_reload_insns): Strengthen elements of this array from rtx
17119 (other_input_address_reload_insns): Likewise for this global.
17120 (other_input_reload_insns): Likewise for this global.
17121 (input_address_reload_insns): Likwise for the elements of this
17123 (inpaddr_address_reload_insns): Likwise for the elements of this
17125 (output_reload_insns): Likewise for the elements of this array.
17126 (output_address_reload_insns): Likewise for the elements of this
17128 (outaddr_address_reload_insns): Likewise for the elements of this
17130 (operand_reload_insns): Likewise for this global.
17131 (other_operand_reload_insns): Likewise for this global.
17132 (other_output_reload_insns): Likewise for the elements of this
17134 (new_spill_reg_store): Likewise for the elements of this
17136 (emit_input_reload_insns): Likewise for locals "insn", "temp".
17137 Strengthen local "where" from rtx * to rtx_insn **.
17138 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
17139 from rtx to rtx_insn *.
17140 (do_input_reload): Likewise for local "insn".
17141 (do_output_reload): Likewise for local "insn".
17142 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
17143 (emit_insn_if_valid_for_reload): Likewise for return type and local
17144 "last". Add checked cast to rtx_insn when returning "insn" since
17145 this has been through emit_insn.
17146 (gen_reload): Strengthen return type and locals "last", "insn", "set"
17147 from rtx to rtx_insn *. Add checked cast to rtx_insn when
17148 returning "insn" since it's been through
17149 emit_insn_if_valid_for_reload at this point.
17150 (delete_output_reload): Strengthen param "insn" and locals
17151 "output_reload_insn", "i2" from rtx to rtx_insn *.
17152 (delete_address_reloads): Likewise for params "dead_insn",
17153 "current_insn" and locals "prev", "next".
17154 (delete_address_reloads_1): Likewise for params "dead_insn",
17155 "current_insn" and locals "prev", "i2".
17156 (inc_for_reload): Likewise for locals "last", "add_insn".
17157 (add_auto_inc_notes): Strengthen param "insn" from rtx to
17160 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
17161 param of this duplicate of the prototype from reload.h
17163 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17165 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
17167 (regstat_bb_compute_calls_crossed): Likewise.
17169 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17171 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
17173 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
17175 (regrename_analyze): Strengthen local "insn" from rtx to
17177 (scan_rtx_reg): Likewise for param "insn".
17178 (scan_rtx_address): Likewise.
17179 (scan_rtx): Likewise.
17180 (restore_operands): Likewise.
17181 (record_out_operands): Likewise.
17182 (build_def_use): Likewise for local "insn". Replace use of
17183 NULL_RTX with NULL when dealing with an insn.
17185 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17187 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
17188 * reginfo.c (reg_scan): Likewise, also for local "insn".
17189 (reg_scan_mark_refs): Likewise for param "insn".
17190 (init_subregs_of_mode): Likewise for local "insn".
17192 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17194 * regcprop.c (struct queued_debug_insn_change): Strengthen field
17195 "insn" from rtx to rtx_insn *.
17196 (replace_oldest_value_reg): Likewise for param "insn".
17197 (replace_oldest_value_addr): Likewise.
17198 (replace_oldest_value_mem): Likewise.
17199 (apply_debug_insn_changes): Likewise for local "last_insn".
17200 (copyprop_hardreg_forward_1): Likewise for local "insn".
17202 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17204 * reg-stack.c (next_flags_user): Strengthen return type and param
17205 "insn" from rtx to rtx_insn *.
17206 (straighten_stack): Likewise for param "insn".
17207 (check_asm_stack_operands): Likewise.
17208 (remove_regno_note): Likewise.
17209 (emit_pop_insn): Likewise for return type, param "insn", local
17211 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
17212 "limit" from rtx to rtx_insn *.
17213 (swap_to_top): Likewise for param "insn".
17214 (move_for_stack_reg): Likewise.
17215 (move_nan_for_stack_reg): Likewise.
17216 (swap_rtx_condition): Likewise.
17217 (compare_for_stack_reg): Likewise.
17218 (subst_all_stack_regs_in_debug_insn): Likewise.
17219 (subst_stack_regs_pat): Likewise, and local "insn2".
17220 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
17222 (subst_stack_regs): Likewise.
17223 (change_stack): Likewise.
17224 (convert_regs_1): Likewise for locals "insn", "next".
17226 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17228 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
17230 (combine_set_extension): Likewise for param "curr_insn".
17231 (transform_ifelse): Likewise for param "def_insn".
17232 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
17233 from vec<rtx> * to vec<rtx_insn *> *.
17234 (is_cond_copy_insn): Likewise for param "insn".
17235 (struct ext_state): Strengthen the four vec fields from vec<rtx>
17236 to vec<rtx_insn *>.
17237 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
17238 local "def_insn" from rtx to rtx_insn *.
17239 (get_sub_rtx): Likewise for param "def_insn".
17240 (merge_def_and_ext): Likewise.
17241 (combine_reaching_defs): Likewise.
17242 (add_removable_extension): Likewise for param "insn".
17243 (find_removable_extensions): Likewise for local "insn".
17244 (find_and_remove_re): Likewise for locals "curr_insn" and
17245 "def_insn". Strengthen locals "reinsn_del_list" and
17246 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
17248 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17250 * recog.c (split_insn): Strengthen param "insn" and locals
17251 "first", "last" from rtx to rtx_insn *.
17252 (split_all_insns): Likewise for locals "insn", "next".
17253 (split_all_insns_noflow): Likewise.
17255 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17257 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
17259 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
17260 (debug_rtx_find): Likewise for param 1 "x".
17262 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
17263 const_rtx to const rtx_insn *. Likewise for local "insn".
17264 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
17265 (debug_rtx_find): Likewise for param 1 "x".
17266 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
17267 from const_rtx to const rtx_insn * within the appropriate cases of
17268 the switch statement.
17270 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
17271 Strengthen local "insns" from rtx to rtx_insn * since this is
17272 passed to a call to debug_rtx_list.
17274 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17276 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
17279 * function.c (stack_protect_epilogue): Add checked cast to
17280 rtx_insn for now when invoking predict_insn_def.
17282 * predict.c (predict_insn): Strengthen param "insn" from rtx to
17284 (predict_insn_def): Likewise.
17285 (rtl_predict_edge): Likewise for local "last_insn".
17286 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
17288 (combine_predictions_for_insn): Strengthen param "insn" from rtx
17290 (bb_estimate_probability_locally): Likewise for local "last_insn".
17291 (expensive_function_p): Likewise for local "insn".
17293 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
17294 local "jmp", since this is used when invoking predict_insn_def.
17296 2014-08-22 Marek Polacek <polacek@redhat.com>
17299 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
17301 2014-08-22 Marek Polacek <polacek@redhat.com>
17304 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
17305 a comparison in parens.
17306 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
17309 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17311 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
17314 * cprop.c (fis_get_condition): Likewise.
17316 * postreload.c (reload_cse_regs): Likewise for param "first".
17317 (reload_cse_simplify): Likewise for param "insn".
17318 (reload_cse_regs_1): Likewise for local "insn".
17319 (reload_cse_simplify_set): Likewise for param "insn".
17320 (reload_cse_simplify_operands): Likewise.
17321 (struct reg_use): Likewise for field "insn".
17322 (reload_combine_purge_insn_uses): Likewise for param "insn".
17323 (fixup_debug_insns): Likewise for params "from", "to" and local
17325 (try_replace_in_use): Likewise for local "use_insn".
17326 (reload_combine_recognize_const_pattern): Likewise for param
17327 "insn" and locals "add_moved_after_insn", "use_insn".
17328 (reload_combine_recognize_pattern): Likewise for param "insn" and
17330 (reload_combine): Likewise for locals "insn", "prev".
17331 (reload_combine_note_use): Likewise for param "insn".
17332 (move2add_use_add2_insn): Likewise.
17333 (move2add_use_add3_insn): Likewise.
17334 (reload_cse_move2add): Likewise, also for local "next".
17335 (move2add_note_store): Likewise for local "insn".
17337 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17339 * postreload-gcse.c (struct occr): Strengthen field "insn" from
17341 (struct unoccr): Likewise.
17342 (struct modifies_mem): Likewise.
17343 (alloc_mem): Likewise for local "insn".
17344 (insert_expr_in_table): Likewise for param "insn".
17345 (dump_expr_hash_table_entry): Likewise for local "insn".
17346 (oprs_unchanged_p): Likewise for param "insn".
17347 (load_killed_in_block_p): Likewise for local "setter".
17348 (record_last_reg_set_info): Likewise for param "insn".
17349 (record_last_reg_set_info_regno): Likewise.
17350 (record_last_mem_set_info): Likewise.
17351 (record_last_set_info): Likewise for local "last_set_insn".
17352 (record_opr_changes): Likewise for param "insn".
17353 (hash_scan_set): Likewise.
17354 (compute_hash_table): Likewise for local "insn".
17355 (get_avail_load_store_reg): Likewise for param "insn".
17356 (eliminate_partially_redundant_load): Likewise, also for locals
17357 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
17359 (eliminate_partially_redundant_loads): Likewise for local "insn".
17361 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17363 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
17365 (expand_binop): Likewise for locals "entry_last", "last", "insns"
17366 (expand_twoval_unop): Likewise for locals entry_last", "last".
17367 (expand_twoval_binop): Likewise.
17368 (expand_twoval_binop_libfunc): Likewise for local "insns".
17369 (widen_leading): Likewise for local "last".
17370 (expand_doubleword_clz): Likewise for local "seq". Strengthen
17371 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
17372 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
17373 (expand_parity): Likewise for locals "last" and "seq".
17374 (expand_ffs): Likewise for local "seq". Strengthen local
17375 "nonzero_label" from rtx to rtx_code_label *.
17376 (expand_absneg_bit): Strengthen local "insns" from rtx to
17378 (expand_unop_direct): Likewise for local "last".
17379 (expand_unop): Likewise for locals "last", "insns".
17380 (expand_abs_nojump): Likewise for local "last".
17381 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
17382 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
17384 (expand_copysign_absneg): Strengthen local "label" from rtx to
17386 (expand_copysign_bit): Strengthen local "insns" from rtx to
17388 (struct no_conflict_data): Likewise for fields "first", "insn".
17389 (emit_libcall_block_1): Likewise for param "insns" and locals
17390 "next", "last", "insn".
17391 (emit_libcall_block): For now, add a checked cast to rtx_insn *
17392 on "insns" when invoking emit_libcall_block_1. Ultimately we
17393 want to strengthen insns itself.
17394 (prepare_cmp_insn): Strengthen local "last" from rtx to
17396 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
17397 (prepare_float_lib_cmp): Likewise for local "insns".
17398 (emit_conditional_move): Likewise for local "last".
17399 (emit_conditional_add): Likewise.
17400 (have_sub2_insn): Likewise for local "seq".
17401 (expand_float): Likewise for local "insns". Strengthen locals
17402 "label", "neglabel" from rtx to rtx_code_label *.
17403 (expand_fix): Likewise for locals "last", "insn", "insns" (to
17404 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
17405 (expand_fixed_convert): Likewise for local "insns" (to
17407 (expand_sfix_optab): Likewise for local "last".
17408 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
17409 to rtx_code_label *.
17410 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
17411 from rtx to rtx_insn *.
17412 (expand_atomic_fetch_op): Likewise for local "insn".
17413 (maybe_legitimize_operand_same_code): Likewise for local "last".
17414 (maybe_legitimize_operands): Likewise.
17416 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17418 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
17419 "insn" from rtx to rtx_insn *.
17420 (ps_rtl_insn): Likewise for return type.
17421 (doloop_register_get): Likewise for params "head", "tail" and
17422 locals "insn", "first_insn_not_to_check".
17423 (schedule_reg_move): Likewise for local "this_insn".
17424 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
17425 of gen_move_insn for now.
17426 (reset_sched_times): Strengthen local "insn" from rtx to
17428 (permute_partial_schedule): Likewise.
17429 (duplicate_insns_of_cycles): Likewise for local "u_insn".
17430 (dump_insn_location): Likewise for param "insn".
17431 (loop_canon_p): Likewise for local "insn".
17432 (sms_schedule): Likewise.
17433 (print_partial_schedule): Likewise.
17434 (ps_has_conflicts): Likewise.
17436 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17438 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
17439 "tailp" from rtx * to rtx_insn **.
17441 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
17442 from rtx to rtx_insn *.
17443 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
17444 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
17445 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
17447 * modulo-sched.c (const_iteration_count): Strengthen return type
17448 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
17449 use of NULL_RTX with NULL when working with insns.
17450 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
17452 (sms_schedule): Likewise.
17453 * sched-rgn.c (init_ready_list): Likewise, also for locals
17454 "src_head" and "src_next_tail".
17455 (compute_block_dependences): Likewise.
17456 (free_block_dependencies): Likewise.
17457 (debug_rgn_dependencies): Likewise.
17458 (free_rgn_deps): Likewise.
17459 (compute_priorities): Likewise.
17460 (schedule_region): Likewise.
17461 * sel-sched.c (find_ebb_boundaries): Likewise.
17463 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
17464 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
17466 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17468 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
17469 from rtx to rtx_insn *.
17470 (new_seginfo): Likewise for param "insn".
17471 (create_pre_exit): Likewise for locals "last_insn",
17472 "before_return_copy", "return_copy".
17473 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
17476 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17478 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
17479 from rtx to rtx_insn *.
17480 (lra_push_insn): Likewise for 1st param.
17481 (lra_push_insn_and_update_insn_regno_info): Likewise.
17482 (lra_pop_insn): Likewise for return type.
17483 (lra_invalidate_insn_data): Likewise for 1st param.
17484 (lra_set_insn_deleted): Likewise.
17485 (lra_delete_dead_insn): Likewise.
17486 (lra_process_new_insns): Likewise for first 3 params.
17487 (lra_set_insn_recog_data): Likewise for 1st param.
17488 (lra_update_insn_recog_data): Likewise.
17489 (lra_set_used_insn_alternative): Likewise.
17490 (lra_invalidate_insn_regno_info): Likewise.
17491 (lra_update_insn_regno_info): Likewise.
17492 (lra_former_scratch_operand_p): Likewise.
17493 (lra_eliminate_regs_1): Likewise.
17494 (lra_get_insn_recog_data): Likewise.
17496 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
17499 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
17501 (substitute_within_insn): New.
17502 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
17503 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
17504 Replace call to "substitute" with call to substitute_within_insn.
17506 * lra-constraints.c (curr_insn): Strengthen from rtx to
17508 (get_equiv_with_elimination): Likewise for param "insn".
17509 (match_reload): Strengthen params "before" and "after" from rtx *
17511 (emit_spill_move): Likewise for return type. Add a checked cast
17512 to rtx_insn * on result of gen_move_insn for now.
17513 (check_and_process_move): Likewise for local "before". Replace
17514 NULL_RTX with NULL when referring to insns.
17515 (process_addr_reg): Strengthen params "before" and "after" from
17516 rtx * to rtx_insn **.
17517 (insert_move_for_subreg): Likewise.
17518 (simplify_operand_subreg): Strengthen locals "before" and "after"
17519 from rtx to rtx_insn *.
17520 (process_address_1): Strengthen params "before" and "after" from
17521 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
17523 (process_address): Strengthen params "before" and "after" from
17524 rtx * to rtx_insn **.
17525 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
17526 (curr_insn_transform): Strengthen locals "before" and "after"
17527 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
17529 (loc_equivalence_callback): Update cast of "data", changing
17530 resulting type from rtx to rtx_insn *.
17531 (substitute_pseudo_within_insn): New.
17532 (inherit_reload_reg): Strengthen param "insn" from rtx to
17533 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
17534 NULL when referring to insns. Add a checked cast to rtx_insn *
17535 when using usage_insn to invoke lra_update_insn_regno_info.
17536 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
17537 likewise for locals "restore", "save". Add checked casts to
17538 rtx_insn * when using usage_insn to invoke
17539 lra_update_insn_regno_info and lra_process_new_insns. Replace
17540 NULL_RTX with NULL when referring to insns.
17541 (split_if_necessary): Strengthen param "insn" from rtx to
17543 (update_ebb_live_info): Likewise for params "head", "tail" and local
17545 (get_last_insertion_point): Likewise for return type and local "insn".
17546 (get_live_on_other_edges): Likewise for local "last".
17547 (inherit_in_ebb): Likewise for params "head", "tail" and locals
17548 "prev_insn", "next_insn", "restore".
17549 (remove_inheritance_pseudos): Likewise for local "prev_insn".
17550 (undo_optional_reloads): Likewise for local "insn".
17552 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
17554 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
17556 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
17558 (spill_pseudos): Likewise for local "insn".
17559 (init_elimination): Likewise.
17560 (process_insn_for_elimination): Likewise for param "insn".
17562 * lra-lives.c (curr_insn): Likewise.;
17564 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
17565 (remove_pseudos): Likewise for param "insn".
17566 (spill_pseudos): Likewise for local "insn".
17567 (lra_final_code_change): Likewise for locals "insn", "curr".
17569 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
17570 (lra_set_insn_deleted): Likewise.
17571 (lra_delete_dead_insn): Likewise, and for local "prev".
17572 (new_insn_reg): Likewise for param "insn".
17573 (lra_set_insn_recog_data): Likewise.
17574 (lra_update_insn_recog_data): Likewise.
17575 (lra_set_used_insn_alternative): Likewise.
17576 (get_insn_freq): Likewise.
17577 (invalidate_insn_data_regno_info): Likewise.
17578 (lra_invalidate_insn_regno_info): Likewise.
17579 (lra_update_insn_regno_info): Likewise.
17580 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
17582 (lra_push_insn_1): Strengthen param "insn" from rtx to
17584 (lra_push_insn): Likewise.
17585 (lra_push_insn_and_update_insn_regno_info): Likewise.
17586 (lra_pop_insn): Likewise for return type and local "insn".
17587 (push_insns): Likewise for params "from", "to", and local "insn".
17588 (setup_sp_offset): Likewise for params "from", "last" and locals
17590 (lra_process_new_insns): Likewise for params "insn", "before",
17591 "after" and local "last".
17592 (struct sloc): Likewise for field "insn".
17593 (lra_former_scratch_operand_p): Likewise for param "insn".
17594 (remove_scratches): Likewise for locals "insn", "last".
17595 (check_rtl): Likewise for local "insn".
17596 (add_auto_inc_notes): Likewise for param "insn".
17597 (update_inc_notes): Likewise for local "insn".
17598 (lra): Replace NULL_RTX with NULL when referring to insn.
17600 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17602 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
17604 (resolve_reg_notes): Likewise.
17605 (resolve_simple_move): Likewise for return type, param "insn", and
17606 locals "insns", "minsn".
17607 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
17608 (resolve_use): Likewise.
17609 (resolve_debug): Likewise.
17610 (find_decomposable_shift_zext): Likewise.
17611 (resolve_shift_zext): Likewise for return type, param "insn", and
17612 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
17613 (decompose_multiword_subregs): Likewise for local "insn",
17614 "orig_insn", "decomposed_shift", "end".
17616 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17618 * basic-block.h (basic_block split_edge_and_insert): Strengthen
17619 param "insns" from rtx to rtx_insn *.
17621 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
17623 (struct iv_to_split): Likewise.
17624 (loop_exit_at_end_p): Likewise for local "insn".
17625 (split_edge_and_insert): Likewise for param "insns".
17626 (compare_and_jump_seq): Likewise for return type, param "cinsn",
17627 and locals "seq", "jump".
17628 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
17629 "branch_code"; update invocations of compare_and_jump_seq to
17630 eliminate NULL_RTX in favor of NULL.
17631 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
17633 (reset_debug_uses_in_loop): Likewise.
17634 (analyze_insn_to_expand_var): Likewise for param "insn".
17635 (analyze_iv_to_split_insn): Likewise.
17636 (analyze_insns_in_loop): Likewise for local "insn".
17637 (insert_base_initialization): Likewise for param
17638 "insn" and local "seq".
17639 (split_iv): Likewise for param "insn" and local "seq".
17640 (expand_var_during_unrolling): Likewise for param "insn".
17641 (insert_var_expansion_initialization): Likewise for local "seq".
17642 (combine_var_copies_in_loop_exit): Likewise.
17643 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
17645 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
17646 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
17649 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17651 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
17653 (iv_analyze_result): Likewise.
17654 (iv_analyze_expr): Likewise.
17657 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
17658 local "def_insn" from rtx to rtx_insn *.
17659 (get_biv_step_1): Likewise for local "insn".
17660 (iv_analyze_expr): Likewise for param "insn".
17661 (iv_analyze_def): Likewise for local "insn".
17662 (iv_analyze_op): Likewise for param "insn".
17663 (iv_analyze): Likewise.
17664 (iv_analyze_result): Likewise.
17666 (suitable_set_for_replacement): Likewise.
17667 (simplify_using_initial_values): Likewise for local "insn".
17668 (iv_number_of_iterations): Likewise for param "insn".
17669 (check_simple_exit): Add checked cast to rtx_insn when invoking
17670 iv_number_of_iterations for now (until get_condition is
17673 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
17674 "insn" from rtx to rtx_insn *.
17675 (analyze_insns_in_loop): Likewise for local "insn".
17677 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17679 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
17681 (struct invariant): Likewise.
17682 (hash_invariant_expr_1): Likewise for param "insn".
17683 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
17684 (find_exits): Likewise for local "insn".
17685 (create_new_invariant): Likewise for param "insn".
17686 (check_dependencies): Likewise.
17687 (find_invariant_insn): Likewise.
17688 (record_uses): Likewise.
17689 (find_invariants_insn): Likewise.
17690 (find_invariants_bb): Likewise for local "insn".
17691 (get_pressure_class_and_nregs): Likewise for param "insn".
17692 (calculate_loop_reg_pressure): Likewise for local "insn".
17694 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17696 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
17698 (add_test): Likewise for locals "seq", "jump".
17699 (doloop_modify): Likewise for locals "sequence", "jump_insn".
17701 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17703 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
17705 (rebuild_jump_labels_chain): Likewise for param "chain".
17707 * cfgexpand.c (pass_expand::execute): Add checked cast to
17708 rtx_insn * when calling rebuild_jump_labels_chain in region where
17709 we know e->insns.r is non-NULL.
17711 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
17713 (rebuild_jump_labels): Likewise.
17714 (rebuild_jump_labels_chain): Likewise for param "chain".
17715 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
17716 (init_label_info): Likewise for param "f".
17717 (maybe_propagate_label_ref): Likewise for params "jump_insn",
17718 "prev_nonjump_insn".
17719 (mark_all_labels): Likewise for param "f" and locals "insn",
17720 "prev_nonjump_insn".
17722 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17724 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
17725 from rtx to rtx_insn *insn.
17726 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
17727 (ira_add_allocno_copy): Likewise.
17728 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
17730 (ira_create_copy): Likewise.
17731 (ira_add_allocno_copy): Likewise.
17732 (create_bb_allocnos): Likewise for local "insn".
17733 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
17734 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
17735 process_regs_for_copy for rtx_insn * param.
17736 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
17737 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
17738 process_regs_for_copy for rtx_insn * param.
17739 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
17740 * ira-costs.c (record_reg_classes): Likewise for param "insn".
17741 (record_operand_costs): Likewise.
17742 (scan_one_insn): Likewise for return type, and for param "insn".
17743 (process_bb_for_costs): Likewise for local "insn".
17744 (process_bb_node_for_hard_reg_moves): Likewise.
17745 * ira-emit.c (struct move): Likewise for field "insn".
17746 (create_move): Eliminate use of NULL_RTX when dealing with an
17748 (emit_move_list): Strengthen return type and locals "result",
17749 "insn" from rtx to rtx_insn *insn.
17750 (emit_moves): Likewise for locals "insns", "tmp".
17751 (ira_emit): Likewise for local "insn".
17752 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
17754 (find_call_crossed_cheap_reg): Likewise.
17755 (process_bb_node_lives): Likewise for local "insn".
17756 * ira.c (decrease_live_ranges_number): Likewise.
17757 (compute_regs_asm_clobbered): Likewise.
17758 (build_insn_chain): Likewise.
17759 (find_moveable_pseudos): Likewise, also locals "def_insn",
17760 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
17761 to rtx_insn **. Add a checked cast when assigning from
17762 "closest_use" into closest_uses array in a region where we know
17763 it's a non-NULL insn.
17764 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
17766 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
17767 "last_interesting_insn", "uin".
17768 (move_unallocated_pseudos): Likewise for locals "def_insn",
17769 "move_insn", "newinsn".
17771 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17773 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
17774 Strengthen locals "done_label", "do_error" from rtx to
17776 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
17777 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
17779 (ubsan_expand_si_overflow_neg_check): Likewise for locals
17780 "done_label", "do_error" to rtx_code_label * and local "last" to
17782 (ubsan_expand_si_overflow_mul_check): Likewise for locals
17783 "done_label", "do_error", "large_op0", "small_op0_large_op1",
17784 "one_small_one_large", "both_ops_large", "after_hipart_neg",
17785 "after_lopart_neg", "do_overflow", "hipart_different" to
17786 rtx_code_label * and local "last" to rtx_insn *.
17788 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17790 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
17791 "insn" and "move_insn" from rtx to rtx_insn *.
17793 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17795 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
17797 (cheap_bb_rtx_cost_p): Likewise.
17798 (first_active_insn): Likewise for return type and local "insn".
17799 (last_active_insn): Likewise for return type and locals "insn",
17801 (struct noce_if_info): Likewise for fields "jump", "insn_a",
17803 (end_ifcvt_sequence): Likewise for return type and locals "insn",
17805 (noce_try_move): Likewise for local "seq".
17806 (noce_try_store_flag): Likewise.
17807 (noce_try_store_flag_constants): Likewise.
17808 (noce_try_addcc): Likewise.
17809 (noce_try_store_flag_mask): Likewise.
17810 (noce_try_cmove): Likewise.
17811 (noce_try_minmax): Likewise.
17812 (noce_try_abs): Likewise.
17813 (noce_try_sign_mask): Likewise.
17814 (noce_try_bitop): Likewise.
17815 (noce_can_store_speculate_p): Likewise for local "insn".
17816 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
17818 (check_cond_move_block): Likewise for local "insn".
17819 (cond_move_convert_if_block): Likewise.
17820 (cond_move_process_if_block): Likewise for locals "seq",
17822 (noce_find_if_block): Likewise for local "jump".
17823 (merge_if_block): Likewise for local "last".
17824 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
17825 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
17826 (block_has_only_trap): Likewise for return type and local "trap".
17827 (find_if_case_1): Likewise for local "jump".
17828 (dead_or_predicable): Likewise for locals "head", "end", "jump",
17831 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17833 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
17834 "last_insn", "loop_end" from rtx to rtx_insn *.
17836 * hw-doloop.c (scan_loop): Likewise for local "insn".
17837 (discover_loop): Likewise for param "tail_insn".
17838 (discover_loops): Likewise for local "tail".
17840 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
17841 cast to rtx_insn * when assigning from an rtx local to a
17842 hwloop_info's "last_insn" field.
17844 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17846 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
17847 (add_delay_dependencies): Strengthen local "pro" from rtx to
17849 (recompute_todo_spec): Likewise.
17850 (dep_cost_1): Likewise for locals "insn", "used".
17851 (schedule_insn): Likewise for local "dbg".
17852 (schedule_insn): Likewise for locals "pro", "next".
17853 (unschedule_insns_until): Likewise for local "con".
17854 (restore_pattern): Likewise for local "next".
17855 (estimate_insn_tick): Likewise for local "pro".
17856 (resolve_dependencies): Likewise for local "next".
17857 (fix_inter_tick): Likewise.
17858 (fix_tick_ready): Likewise for local "pro".
17859 (add_to_speculative_block): Likewise for locals "check", "twin",
17861 (sched_extend_bb): Likewise for locals "end", "insn".
17862 (init_before_recovery): Likewise for local "x".
17863 (sched_create_recovery_block): Likewise for local "barrier".
17864 (create_check_block_twin): Likewise for local "pro".
17865 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
17867 (unlink_bb_notes): Update for change to type of bb_header.
17868 Strengthen locals "prev", "label", "note", "next" from rtx to
17870 (clear_priorities): Likewise for local "pro".
17872 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17874 * gcse.c (struct occr): Strengthen field "insn" from rtx to
17876 (test_insn): Likewise for this global.
17877 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
17879 (oprs_anticipatable_p): Likewise.
17880 (oprs_available_p): Likewise.
17881 (insert_expr_in_table): Strengthen param "insn" from rtx to
17883 (hash_scan_set): Likewise.
17884 (hash_scan_clobber): Likewise.
17885 (hash_scan_call): Likewise.
17886 (hash_scan_insn): Likewise.
17887 (compute_hash_table_work): Likewise for local "insn".
17888 (process_insert_insn): Likewise for return type and local "pat".
17889 (insert_insn_end_basic_block): Likewise for locals "new_insn",
17890 "pat", "pat_end", "maybe_cc0_setter".
17891 (pre_edge_insert): Likewise for local "insn".
17892 (pre_insert_copy_insn): Likewise for param "insn".
17893 (pre_insert_copies): Likewise for local "insn".
17894 (struct set_data): Likewise for field "insn".
17895 (single_set_gcse): Likewise for param "insn".
17896 (gcse_emit_move_after): Likewise.
17897 (pre_delete): Likewise for local "insn".
17898 (update_bb_reg_pressure): Likewise for param "from" and local
17900 (should_hoist_expr_to_dom): Likewise for param "from".
17901 (hoist_code): Likewise for local "insn".
17902 (get_pressure_class_and_nregs): Likewise for param "insn".
17903 (calculate_bb_reg_pressure): Likewise for local "insn".
17904 (compute_ld_motion_mems): Likewise.
17906 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17908 * genpeep.c (main): Rename param back from "uncast_ins1" to
17909 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
17912 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
17914 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
17917 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
17918 documentation to state it is only for VSX operations.
17920 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
17921 constraint only active if VSX.
17923 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
17924 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
17925 (lfiwzx): Likewise.
17927 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17929 * fwprop.c (single_def_use_dom_walker::before_dom_children):
17930 Strengthen local "insn" from rtx to rtx_insn *.
17931 (use_killed_between): Likewise for param "target_insn".
17932 (all_uses_available_at): Likewise for param "target_insn" and
17934 (update_df_init): Likewise for params "def_insn", "insn".
17935 (update_df): Likewise for param "insn".
17936 (try_fwprop_subst): Likewise for param "def_insn" and local
17938 (free_load_extend): Likewise for param "insn".
17939 (forward_propagate_subreg): Likewise for param "def_insn" and
17941 (forward_propagate_asm): Likewise for param "def_insn" and local
17943 (forward_propagate_and_simplify): Likewise for param "def_insn"
17944 and local "use_insn".
17945 (forward_propagate_into): Likewise for locals "def_insn" and
17948 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17950 * function.c (emit_initial_value_sets): Strengthen local "seq"
17951 from rtx to rtx_insn *.
17952 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
17954 (instantiate_virtual_regs): Likewise for local "insn".
17955 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
17956 (reorder_blocks_1): Likewise for param "insns" and local "insn".
17957 (expand_function_end): Likewise for locals "insn" and "seq".
17958 (epilogue_done): Likewise for local "insn".
17959 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
17961 (reposition_prologue_and_epilogue_notes): Likewise for locals
17962 "insn", "last", "note", "first".
17963 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
17964 (pass_match_asm_constraints::execute): Likewise for local "insn".
17966 2014-08-22 David Malcolm <dmalcolm@redhat.com>
17968 * output.h (final_scan_insn): Strengthen return type from rtx to
17970 (final_forward_branch_p): Likewise for param.
17971 (current_output_insn): Likewise for this global.
17973 * final.c (rtx debug_insn): Likewise for this variable.
17974 (current_output_insn): Likewise.
17975 (get_attr_length_1): Rename param "insn" to "uncast_insn",
17976 adding "insn" back in as an rtx_insn * with a checked cast, so
17977 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
17979 (compute_alignments): Strengthen local "label" from rtx to
17981 (shorten_branches): Rename param from "first" to "uncast_first",
17982 introducing a new local rtx_insn * "first" using a checked cast to
17983 effectively strengthen "first" from rtx to rtx_insn * without
17984 affecting the type signature. Strengthen locals "insn", "seq",
17985 "next", "label" from rtx to rtx_insn *.
17986 (change_scope): Strengthen param "orig_insn" and local "insn" from
17988 (final_start_function): Rename param from "first" to "uncast_first",
17989 introducing a new local rtx_insn * "first" using a checked cast to
17990 effectively strengthen "first" from rtx to rtx_insn * without
17991 affecting the type signature. Strengthen local "insn" from rtx to
17993 (dump_basic_block_info): Strengthen param "insn" from rtx to
17995 (final): Rename param from "first" to "uncast_first",
17996 introducing a new local rtx_insn * "first" using a checked cast to
17997 effectively strengthen "first" from rtx to rtx_insn * without
17998 affecting the type signature. Strengthen locals "insn", "next"
17999 from rtx to rtx_insn *.
18000 (output_alternate_entry_point): Strengthen param "insn" from rtx to
18002 (call_from_call_insn): Strengthen param "insn" from rtx to
18004 (final_scan_insn): Rename param from "insn" to "uncast_insn",
18005 introducing a new local rtx_insn * "insn" using a checked cast to
18006 effectively strengthen "insn" from rtx to rtx_insn * without
18007 affecting the type signature. Strengthen return type and locals
18008 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
18009 now-redundant checked cast to rtx_insn * from both invocations of
18010 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
18011 introducing a local "call_insn" for use when invoking
18012 call_from_call_insn.
18013 (notice_source_line): Strengthen param "insn" from rtx to
18015 (leaf_function_p): Likewise for local "insn".
18016 (final_forward_branch_p): Likewise.
18017 (leaf_renumber_regs): Likewise for param "first".
18018 (rest_of_clean_state): Likewise for locals "insn" and "next".
18019 (self_recursive_call_p): Likewise for param "insn".
18020 (collect_fn_hard_reg_usage): Likewise for local "insn".
18021 (get_call_fndecl): Likewise for param "insn".
18022 (get_call_cgraph_rtl_info): Likewise.
18023 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
18024 introducing a new local rtx_insn * "insn" using a checked cast to
18025 effectively strengthen "insn" from rtx to rtx_insn * without
18026 affecting the type signature.
18028 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
18029 cast when assigning from param "insn" to current_output_insn.
18030 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
18031 so that we can assign it back to current_output_insn.
18033 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18035 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
18036 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
18037 atmxt540s and atmxt540sreva devices.
18038 * config/avr/avr-tables.opt: Regenerate.
18039 * config/avr/t-multilib: Regenerate.
18040 * doc/avr-mmcu.texi: Regenerate.
18042 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18044 * expr.c (convert_move): Strengthen local "insns" from rtx to
18046 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
18047 "top_label" from rtx to rtx_code_label *.
18048 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
18050 (emit_single_push_insn): Likewise for locals "prev", "last".
18051 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
18052 to rtx_code_label *.
18053 (store_constructor): Likewise for locals "loop_start", "loop_end".
18054 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
18056 (expand_expr_real_2): Likewise.
18057 (expand_expr_real_1): Strengthen local "label" from rtx to
18060 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18062 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
18063 from rtx to rtx_insn *.
18064 (store_bit_field_1): Likewise.
18065 (extract_bit_field_1): Likewise.
18066 (expand_mult_const): Likewise for local "insns".
18067 (expmed_mult_highpart): Strengthen local "label" from rtx to
18069 (expand_smod_pow2): Likewise.
18070 (expand_sdiv_pow2): Likewise.
18071 (expand_divmod): Strengthen locals "last", "insn" from rtx to
18072 rtx_insn *. Strengthen locals "label", "label1", "label2",
18073 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
18074 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
18075 (emit_store_flag): Likewise.
18076 (emit_store_flag_force): Strengthen local "label" from rtx to
18078 (do_cmp_and_jump): Likewise for param "label".
18080 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18082 * explow.c (force_reg): Strengthen local "insn" from rtx to
18084 (adjust_stack_1): Likewise.
18085 (allocate_dynamic_stack_space): Likewise. Strengthen locals
18086 "final_label", "available_label", "space_available" from rtx to
18088 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
18089 (anti_adjust_stack_and_probe): Likewise.
18091 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18093 * except.h (sjlj_emit_function_exit_after): Strengthen param
18094 "after" from rtx to rtx_insn *. This is only called with
18095 result of get_last_insn (in function.c) so type-change should be
18098 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
18099 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
18100 to rtx_insn *. These fields are only used from except.c so this
18101 type-change should be self-contained to this patch.
18103 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
18104 local "last" from rtx to rtx_insn *.
18105 (dw2_build_landing_pads): Likewise for local "seq".
18106 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
18107 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
18108 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
18110 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
18112 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
18113 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
18114 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
18115 referring to an insn. Strengthen local "dispatch_label" from
18116 rtx to rtx_code_label *.
18117 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
18119 (expand_eh_return): Strengthen local "around_label" from
18120 rtx to rtx_code_label *.
18121 (convert_to_eh_region_ranges): Strengthen locals "iter",
18122 "last_action_insn", "first_no_action_insn",
18123 "first_no_action_insn_before_switch",
18124 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
18126 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18128 * dwarf2out.c (last_var_location_insn): Strengthen this variable
18129 from rtx to rtx_insn *.
18130 (cached_next_real_insn): Likewise.
18131 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
18132 working with insns.
18133 (dwarf2out_var_location): Strengthen locals "next_real",
18134 "next_note", "expected_next_loc_note", "last_start", "insn" from
18137 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18139 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
18140 from rtx to rtx_insn *.
18141 (create_pseudo_cfg): Likewise for local "insn".
18143 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18145 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
18146 from rtx to rtx_insn *.
18147 (df_bb_regno_last_def_find): Likewise.
18149 * df-problems.c (df_rd_bb_local_compute): Likewise.
18150 (df_lr_bb_local_compute): Likewise.
18151 (df_live_bb_local_compute): Likewise.
18152 (df_chain_remove_problem): Likewise.
18153 (df_chain_create_bb): Likewise.
18154 (df_word_lr_bb_local_compute): Likewise.
18155 (df_remove_dead_eq_notes): Likewise for param "insn".
18156 (df_note_bb_compute): Likewise for local "insn".
18157 (simulate_backwards_to_point): Likewise.
18158 (df_md_bb_local_compute): Likewise.
18160 * df-scan.c (df_scan_free_bb_info): Likewise.
18161 (df_scan_start_dump): Likewise.
18162 (df_scan_start_block): Likewise.
18163 (df_install_ref_incremental): Likewise for local "insn".
18164 (df_insn_rescan_all): Likewise.
18165 (df_reorganize_refs_by_reg_by_insn): Likewise.
18166 (df_reorganize_refs_by_insn_bb): Likewise.
18167 (df_recompute_luids): Likewise.
18168 (df_bb_refs_record): Likewise.
18169 (df_update_entry_exit_and_calls): Likewise.
18170 (df_bb_verify): Likewise.
18172 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18174 * ddg.h (struct ddg_node): Strengthen fields "insn" and
18175 "first_note" from rtx to rtx_insn *.
18176 (get_node_of_insn): Likewise for param 2 "insn".
18177 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
18179 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
18181 (mem_write_insn_p): Likewise.
18182 (mem_access_insn_p): Likewise.
18183 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
18184 (def_has_ccmode_p): Likewise for param "insn".
18185 (add_cross_iteration_register_deps): Likewise for locals
18186 "def_insn" and "use_insn".
18187 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
18188 (build_intra_loop_deps): Likewise for local "src_insn".
18189 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
18191 (get_node_of_insn): Likewise for param "insn".
18193 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18195 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
18196 (deletable_insn_p): Strengthen param "insn" from rtx to
18197 rtx_insn *. Add checked cast to rtx_call_insn when invoking
18198 find_call_stack_args, since this is guarded by CALL_P (insn).
18199 (marked_insn_p): Strengthen param "insn" from rtx to
18201 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
18202 invoking find_call_stack_args, since this is guarded by
18204 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
18205 rtx_insn *; we know this is an insn since this was called by
18206 mark_nonreg_stores.
18207 (mark_nonreg_stores_2): Likewise.
18208 (mark_nonreg_stores): Strengthen param "insn" from rtx to
18210 (find_call_stack_args): Strengthen param "call_insn" from rtx to
18211 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
18213 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
18214 from rtx to rtx_insn *.
18215 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
18216 "next", "ref_insn".
18217 (delete_unmarked_insns): Likewise for locals "insn", "next".
18218 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
18219 (mark_reg_dependencies): Likewise for param "insn".
18220 (rest_of_handle_ud_dce): Likewise for local "insn".
18221 (word_dce_process_block): Likewise.
18222 (dce_process_block): Likewise.
18224 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18226 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
18227 from rtx to rtx_insn *.
18228 (struct change_cc_mode_args): Likewise for field "insn".
18229 (this_insn): Strengthen from rtx to rtx_insn *.
18230 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
18232 (validate_canon_reg): Strengthen param "insn" from rtx to
18234 (canon_reg): Likewise.
18235 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
18237 (record_jump_equiv): Strengthen param "insn" from rtx to
18239 (try_back_substitute_reg): Likewise, also for locals "prev",
18241 (find_sets_in_insn): Likewise for param "insn".
18242 (canonicalize_insn): Likewise.
18243 (cse_insn): Likewise. Add a checked cast.
18244 (invalidate_from_clobbers): Likewise for param "insn".
18245 (invalidate_from_sets_and_clobbers): Likewise.
18246 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
18248 (cse_prescan_path): Strengthen local "insn" from rtx to
18250 (cse_extended_basic_block): Likewise for locals "insn" and
18252 (cse_main): Likewise for param "f".
18253 (check_for_label_ref): Likewise for local "insn".
18254 (set_live_p): Likewise for second param ("insn").
18255 (insn_live_p): Likewise for first param ("insn") and for local
18257 (cse_change_cc_mode_insn): Likewise for first param "insn".
18258 (cse_change_cc_mode_insns): Likewise for first and second params
18260 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
18262 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
18265 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
18266 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18267 Anna Tikhonova <anna.tikhonova@intel.com>
18268 Ilya Tocar <ilya.tocar@intel.com>
18269 Andrey Turetskiy <andrey.turetskiy@intel.com>
18270 Ilya Verbin <ilya.verbin@intel.com>
18271 Kirill Yukhin <kirill.yukhin@intel.com>
18272 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18274 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
18276 * config/i386/sse.md
18277 (define_mode_iterator VI248_AVX2): Delete.
18278 (define_mode_iterator VI2_AVX2_AVX512BW): New.
18279 (define_mode_iterator VI48_AVX2): Ditto.
18280 (define_insn <shift_insn><mode>3): Delete.
18281 (define_insn "<shift_insn><mode>3<mask_name>" with
18282 VI2_AVX2_AVX512BW): New.
18283 (define_insn "<shift_insn><mode>3<mask_name>" with
18286 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
18287 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18288 Anna Tikhonova <anna.tikhonova@intel.com>
18289 Ilya Tocar <ilya.tocar@intel.com>
18290 Andrey Turetskiy <andrey.turetskiy@intel.com>
18291 Ilya Verbin <ilya.verbin@intel.com>
18292 Kirill Yukhin <kirill.yukhin@intel.com>
18293 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18295 * config/i386/sse.md
18296 (define_mode_iterator VI4F_BRCST32x2): New.
18297 (define_mode_attr 64x2_mode): Ditto.
18298 (define_mode_attr 32x2mode): Ditto.
18299 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
18300 with VI4F_BRCST32x2): Ditto.
18301 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
18302 with V16FI mode iterator): Ditto.
18303 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
18304 with V16FI): Ditto.
18305 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
18306 with VI8F_BRCST64x2): Ditto.
18308 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
18309 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18310 Anna Tikhonova <anna.tikhonova@intel.com>
18311 Ilya Tocar <ilya.tocar@intel.com>
18312 Andrey Turetskiy <andrey.turetskiy@intel.com>
18313 Ilya Verbin <ilya.verbin@intel.com>
18314 Kirill Yukhin <kirill.yukhin@intel.com>
18315 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18317 * config/i386/sse.md
18318 (define_mode_iterator VI8_AVX512VL): New.
18319 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
18321 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
18323 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
18324 (define_mode_iterator V48_AVX512VL): New.
18325 (define_mode_iterator V12_AVX512VL): Ditto.
18326 (define_insn <avx512>_load<mode>_mask): Split into two similar
18327 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
18328 Refactor output template.
18329 (define_insn "<avx512>_store<mode>_mask"): Ditto.
18331 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18333 * cprop.c (struct occr): Strengthen field "insn" from rtx to
18335 (reg_available_p): Likewise for param "insn".
18336 (insert_set_in_table): Likewise.
18337 (hash_scan_set): Likewise.
18338 (hash_scan_insn): Likewise.
18339 (make_set_regs_unavailable): Likewise.
18340 (compute_hash_table_work): Likewise for local "insn".
18341 (reg_not_set_p): Strengthen param "insn" from const_rtx to
18343 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
18344 (try_replace_reg): Likewise.
18345 (find_avail_set): Likewise.
18346 (cprop_jump): Likewise for params "setcc", "jump".
18347 (constprop_register): Likewise for param "insn".
18348 (cprop_insn): Likewise.
18349 (do_local_cprop): Likewise.
18350 (local_cprop_pass): Likewise for local "insn".
18351 (bypass_block): Likewise for params "setcc" and "jump".
18352 (bypass_conditional_jumps): Likewise for locals "setcc" and
18354 (one_cprop_pass): Likewise for local "insn".
18356 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18358 * compare-elim.c (struct comparison_use): Strengthen field "insn"
18359 from rtx to rtx_insn *.
18360 (struct comparison): Likewise, also for field "prev_clobber".
18361 (conforming_compare): Likewise for param "insn".
18362 (arithmetic_flags_clobber_p): Likewise.
18363 (find_flags_uses_in_insn): Likewise.
18364 (find_comparison_dom_walker::before_dom_children): Likewise for
18365 locals "insn", "next", "last_clobber".
18366 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
18368 2014-08-22 David Malcolm <dmalcolm@redhat.com>
18370 * combine-stack-adj.c (struct csa_reflist): Strengthen field
18371 "insn" from rtx to rtx_insn *.
18372 (single_set_for_csa): Likewise for param "insn".
18373 (record_one_stack_ref): Likewise.
18374 (try_apply_stack_adjustment): Likewise.
18375 (struct record_stack_refs_data): Likewise for field "insn".
18376 (maybe_move_args_size_note): Likewise for params "last" and "insn".
18377 (prev_active_insn_bb): Likewise for return type and param "insn".
18378 (next_active_insn_bb): Likewise.
18379 (force_move_args_size_note): Likewise for params "prev" and "last"
18380 and locals "test", "next_candidate", "prev_candidate".
18381 (combine_stack_adjustments_for_block): Strengthen locals
18382 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
18385 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18387 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
18388 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
18389 (subst_insn): Likewise for this variable.
18390 (added_links_insn): Likewise.
18391 (struct insn_link): Likewise for field "insn".
18392 (alloc_insn_link): Likewise for param "insn".
18393 (struct undobuf): Likewise for field "other_insn".
18394 (find_single_use): Likewise for param "insn" and local "next".
18395 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
18396 (delete_noop_moves): Likewise for locals "insn", "next".
18397 (create_log_links): Likewise for locals "insn", "use_insn".
18398 Strengthen local "next_use" from rtx * to rtx_insn **.
18399 (insn_a_feeds_b): Likewise for params "a", "b".
18400 (combine_instructions): Likewise for param "f" and locals "insn",
18401 "next", "prev", "first", "last_combined_insn", "link", "link1",
18402 "temp". Replace use of NULL_RTX with NULL when referring to
18404 (setup_incoming_promotions): Likewise for param "first"
18405 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
18406 (can_combine_p): Likewise for params "insn", "i3", "pred",
18407 "pred2", "succ", "succ2" and for local "p".
18408 (combinable_i3pat): Likewise for param "i3".
18409 (cant_combine_insn_p): Likewise for param "insn".
18410 (likely_spilled_retval_p): Likewise.
18411 (adjust_for_new_dest): Likewise.
18412 (update_cfg_for_uncondjump): Likewise, also for local "insn".
18413 (try_combine): Likewise for return type and for params "i3", "i2",
18414 "i1", "i0", "last_combined_insn", and for locals "insn",
18415 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
18416 "i0_insn". Eliminate local "tem" in favor of new locals
18417 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
18418 checked cast for now to rtx_insn * on the return type of
18419 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
18421 (find_split_point): Strengthen param "insn" from rtx to
18423 (simplify_set): Likewise for local "other_insn".
18424 (recog_for_combine): Likewise for param "insn".
18425 (record_value_for_reg): Likewise.
18426 (record_dead_and_set_regs_1): Likewise for local
18427 "record_dead_insn".
18428 (record_dead_and_set_regs): Likewise for param "insn".
18429 (record_promoted_value): Likewise.
18430 (check_promoted_subreg): Likewise.
18431 (get_last_value_validate): Likewise.
18432 (reg_dead_at_p): Likewise.
18433 (move_deaths): Likewise for param "to_insn".
18434 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
18435 and locals "place", "place2", "cc0_setter". Eliminate local "tem
18436 in favor of new locals "tem_note" and "tem_insn", the latter being
18438 (distribute_links): Strengthen locals "place", "insn" from rtx to
18441 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18443 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
18445 (can_delete_label_p): Require a const rtx_code_label * rather than
18447 (delete_insn): Add checked cast to rtx_code_label * when we know
18448 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
18450 (delete_insn_chain): Strengthen locals "prev" and "current" from
18451 rtx to rtx_insn *. Add a checked cast when assigning from
18452 "finish" (strengthening the params will come later). Add a
18453 checked cast to rtx_note * in region where we know
18455 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
18457 (compute_bb_for_insn): Likewise.
18458 (free_bb_for_insn): Likewise for local "insn".
18459 (compute_bb_for_insn): Likewise.
18460 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
18461 local "insn" from rtx to rtx_insn *
18462 (flow_active_insn_p): Require a const rtx_insn * rather than a
18464 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
18466 (can_fallthru): Likewise for locals "insn" and "insn2".
18467 (bb_note): Likewise for local "note".
18468 (first_insn_after_basic_block_note): Likewise for local "note" and
18470 (rtl_split_block): Likewise for locals "insn" and "next".
18471 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
18473 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
18474 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
18476 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
18477 them), "kill_from", "barrier", "new_insn".
18478 (patch_jump_insn): Likewise for params "insn", "old_label".
18479 (redirect_branch_edge): Likewise for locals "old_label", "insn".
18480 (force_nonfallthru_and_redirect): Likewise for locals "insn",
18481 "old_label", "new_label".
18482 (rtl_tidy_fallthru_edge): Likewise for local "q".
18483 (rtl_split_edge): Likewise for locals "before", "last".
18484 (commit_one_edge_insertion): Likewise for locals "before",
18485 "after", "insns", "tmp", "last", adding a checked cast where
18486 currently necessary.
18487 (commit_edge_insertions): Likewise.
18488 (rtl_dump_bb): Likewise for locals "insn", "last".
18489 (print_rtl_with_bb): Likewise for local "x".
18490 (rtl_verify_bb_insns): Likewise for local "x".
18491 (rtl_verify_bb_pointers): Likewise for local "insn".
18492 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
18494 (rtl_verify_fallthru): Likewise for local "insn".
18495 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
18496 (purge_dead_edges): Likewise for local "insn".
18497 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
18498 (skip_insns_after_block): Likewise for return type and for locals
18499 "insn", "last_insn", "next_head", "prev".
18500 (record_effective_endpoints): Likewise for locals "next_insn",
18502 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
18503 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
18504 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
18505 (duplicate_insn_chain): For now, add checked cast from rtx to
18506 rtx_insn * when returning insn.
18507 (cfg_layout_duplicate_bb): Likewise for local "insn".
18508 (cfg_layout_delete_block): Likewise for locals "insn", "next",
18509 "prev", "remaints".
18510 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
18511 (rtl_block_empty_p): Likewise.
18512 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
18513 "split_point", "last".
18514 (rtl_block_ends_with_call_p): Likewise for local "insn".
18515 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
18517 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
18518 "split_at_insn" from rtx to rtx_insn *.
18519 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
18520 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
18521 to const rtx_insn *.
18522 (rtl_account_profile_record): Likewise.
18524 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18526 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
18528 (average_num_loop_insns): Likewise.
18529 (init_set_costs): Likewise for local "seq".
18530 (seq_cost): Likewise for param "seq", from const_rtx to const
18533 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18535 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
18538 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18540 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
18541 "f1" and "f2" from rtx * to rtx_insn **.
18542 (flow_find_head_matching_sequence): Likewise.
18544 * cfgcleanup.c (try_simplify_condjump): Strengthen local
18545 "cbranch_insn" from rtx to rtx_insn *.
18546 (thread_jump): Likewise for local "insn".
18547 (try_forward_edges): Likewise for local "last".
18548 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
18549 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
18551 (can_replace_by): Likewise for params "i1", "i2".
18552 (old_insns_match_p): Likewise.
18553 (merge_notes): Likewise.
18554 (walk_to_nondebug_insn): Likewise for param "i1".
18555 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
18556 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
18557 "afterlast1", "afterlast2" from rtx to rtx_insn *.
18558 (flow_find_head_matching_sequence): Strengthen params "f1" and
18559 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
18560 "last1", "last2", "beforelast1", "beforelast2" from rtx to
18562 (outgoing_edges_match): Likewise for locals "last1", "last2".
18563 (try_crossjump_to_edge): Likewise for local "insn".
18564 Replace call to for_each_rtx with for_each_rtx_in_insn.
18566 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
18567 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
18568 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
18569 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
18570 (try_optimize_cfg): Strengthen local "last" from rtx to
18572 (delete_dead_jumptables): Likewise for locals "insn", "next",
18575 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
18576 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
18577 "rtx else_first_tail", to reflect the basic-block.h changes above.
18579 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18581 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
18583 (purge_dead_tablejump_edges): Likewise.
18584 (find_bb_boundaries): Likewise for locals "insn", "end",
18585 "flow_transfer_insn".
18587 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18589 * caller-save.c (save_call_clobbered_regs): Strengthen locals
18590 "ins" and "prev" from rtx to rtx_insn *.
18592 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18594 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
18596 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
18597 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
18599 (load_register_parameters): Likewise for local "before_arg".
18600 (check_sibcall_argument_overlap): Likewise for param "insn".
18601 (expand_call): Likewise for locals "normal_call_insns",
18602 "tail_call_insns", "insns", "before_call", "after_args",
18603 "before_arg", "last", "prev". Strengthen one of the "last" from
18604 rtx to rtx_call_insn *.
18605 (fixup_tail_calls): Strengthen local "insn" from rtx to
18607 (emit_library_call_value_1): Likewise for locals "before_call" and
18610 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18612 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
18613 and "last" from rtx to rtx_insn *.
18614 (expand_builtin_nonlocal_goto): Likewise for local "insn".
18615 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
18617 (expand_errno_check): Strengthen local "lab" from rtx to
18619 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
18621 (expand_builtin_mathfn_2): Likewise.
18622 (expand_builtin_mathfn_ternary): Likewise.
18623 (expand_builtin_mathfn_3): Likewise.
18624 (expand_builtin_interclass_mathfn): Likewise for local "last".
18625 (expand_builtin_int_roundingfn): Likewise for local "insns".
18626 (expand_builtin_int_roundingfn_2): Likewise.
18627 (expand_builtin_strlen): Likewise for local "before_strlen".
18628 (expand_builtin_strncmp): Likewise for local "seq".
18629 (expand_builtin_signbit): Likewise for local "last".
18630 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
18631 from rtx to rtx_code_label *.
18632 (expand_stack_restore): Strengthen local "prev" from rtx to
18635 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18637 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
18639 (struct btr_def_s): Likewise.
18640 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
18642 (add_btr_def): Likewise.
18643 (new_btr_user): Likewise.
18644 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
18646 (link_btr_uses): Likewise.
18647 (move_btr_def): Likewise for locals "insp", "old_insn",
18648 "new_insn". Add checked cast to rtx_insn * for now on result of
18650 (can_move_up): Strengthen param "insn" from const_rtx to
18653 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18655 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
18657 (get_uncond_jump_length): Likewise for locals "label", "jump".
18658 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
18660 (add_labels_and_missing_jumps): Likewise for local "new_jump".
18661 (fix_up_fall_thru_edges): Likewise for local "old_jump".
18662 (find_jump_block): Likewise for local "insn".
18663 (fix_crossing_conditional_branches): Likewise for locals
18664 "old_jump", "new_jump".
18665 (fix_crossing_unconditional_branches): Likewise for locals
18666 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
18667 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
18669 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18671 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
18673 (struct mem_insn): Likewise for field "insn".
18674 (reg_next_use): Strengthen from rtx * to rtx_insn **.
18675 (reg_next_inc_use): Likewise.
18676 (reg_next_def): Likewise.
18677 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
18678 from rtx to rtx_insn *.
18679 (move_insn_before): Likewise for param "next_insn" and local "insns".
18680 (attempt_change): Likewise for local "mov_insn".
18681 (try_merge): Likewise for param "last_insn".
18682 (get_next_ref): Likewise for return type and local "insn".
18683 Strengthen param "next_array" from rtx * to rtx_insn **.
18684 (parse_add_or_inc): Strengthen param "insn" from rtx to
18686 (find_inc): Likewise for locals "insn" and "other_insn" (three of
18688 (merge_in_block): Likewise for locals "insn", "curr",
18690 (pass_inc_dec::execute): Update allocations of the arrays to
18691 reflect the stronger types.
18693 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18695 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
18696 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
18697 from rtx to rtx_code_label *.
18699 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18701 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
18704 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18706 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
18707 generated a warning and prevented bootstrapping the compiler.
18709 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18711 * rtl.h (delete_related_insns): Strengthen return type from rtx to
18714 * jump.c (delete_related_insns): Likewise, also for locals "next"
18717 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18719 * genautomata.c (output_internal_insn_latency_func): When writing
18720 the function "internal_insn_latency" to insn-automata.c,
18721 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
18722 allowing the optional guard function of (define_bypass) clauses to
18723 expect a pair of rtx_insn *, rather than a pair of rtx.
18724 (output_insn_latency_func): When writing the function
18725 "insn_latency", add an "uncast_" prefix to params "insn" and
18726 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
18727 using checked casts from the params, thus enabling the above
18728 change to the generated "internal_insn_latency" function.
18730 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
18732 PR tree-optimization/62091
18733 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
18734 handle correctly arrays.
18735 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
18736 inheritance binfos.
18737 (record_known_type): Walk into inner type.
18738 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
18739 condition on no type changes.
18741 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18743 * genattrtab.c (write_attr_get): Within the generated get_attr_
18744 functions, rename param "insn" to "uncast_insn" and reintroduce
18745 "insn" as an local rtx_insn * using a checked cast, so that "insn"
18746 is an rtx_insn * within insn-attrtab.c
18748 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18750 * output.h (peephole): Strengthen return type from rtx to
18752 * rtl.h (delete_for_peephole): Likewise for both params.
18753 * genpeep.c (main): In generated "peephole" function, strengthen
18754 return type and local "insn" from rtx to rtx_insn *. For now,
18755 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
18756 rtx_insn *, with a checked cast.
18757 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
18758 locals "insn", "next", "prev" from rtx to rtx_insn *.
18760 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
18762 PR tree-optimization/62112
18763 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
18764 * gimple-iterator.h (gsi_replace): Return bool.
18765 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
18766 moved from ref_may_alias_global_p.
18767 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
18769 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
18770 (stmt_kills_ref_p_1): Rename...
18771 (stmt_kills_ref_p): ... to this.
18772 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
18773 stmt_kills_ref_p): Declare.
18774 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
18775 Move the self-assignment case...
18776 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
18778 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18780 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
18782 * emit-rtl.c (try_split): Likewise, also for locals "before" and
18783 "after". For now, don't strengthen param "trial", which requires
18784 adding checked casts when returning it.
18786 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18788 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
18789 "label" from rtx to rtx_code_label *. Strengthen param 1 of
18790 "var_location" hook from rtx to rtx_insn *.
18791 (debug_nothing_rtx): Delete in favor of...
18792 (debug_nothing_rtx_code_label): New prototype.
18793 (debug_nothing_rtx_rtx): Delete unused prototype.
18794 (debug_nothing_rtx_insn): New prototype.
18796 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
18797 invoking debug_hooks->var_location (in two places, one in a NOTE
18798 case of a switch statement, the other guarded by a CALL_P
18799 conditional. Add checked cast to rtx_code_label * when invoking
18800 debug_hooks->label (within CODE_LABEL case of switch statement).
18802 * dbxout.c (dbx_debug_hooks): Update "label" hook from
18803 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
18804 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
18805 (xcoff_debug_hooks): Likewise.
18806 * debug.c (do_nothing_debug_hooks): Likewise.
18807 (debug_nothing_rtx): Delete in favor of...
18808 (debug_nothing_rtx_insn): New function.
18809 (debug_nothing_rtx_rtx): Delete unused function.
18810 (debug_nothing_rtx_code_label): New function.
18811 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
18812 debug_nothing_rtx to debug_nothing_rtx_code_label.
18813 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
18815 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
18816 debug_nothing_rtx to debug_nothing_rtx_insn.
18817 (sdbout_label): Strengthen param "insn" from rtx to
18819 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
18820 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
18821 "var_location" hook from debug_nothing_rtx to
18822 debug_nothing_rtx_insn.
18824 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18826 * recog.h (insn_output_fn): Update this function typedef to match
18827 the changes below to the generated output functions, strengthening
18828 the 2nd param from rtx to rtx_insn *.
18830 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
18831 insn when invoking an output function, to match the new signature
18832 of insn_output_fn with a stronger second param.
18834 * genconditions.c (write_header): In the generated code for
18835 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
18836 to match the other changes in this patch.
18838 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
18839 the generated "gen_" functions from rtx to rtx_insn * within their
18842 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
18843 the subfunctions within the generated "recog_", "split", "peephole2"
18844 function trees from rtx to rtx_insn *. For now, the top-level
18845 generated functions ("recog", "split", "peephole2") continue to
18846 take a plain rtx for "insn", to avoid introducing dependencies on
18847 other patches. Rename this 2nd param from "insn" to
18848 "uncast_insn", and reintroduce "insn" as a local variable of type
18849 rtx_insn *, initialized at the top of the generated function with
18850 a checked cast on "uncast_insn".
18851 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
18852 the generated "gen_" functions from rtx to rtx_insn * within their
18855 * genoutput.c (process_template): Strengthen the 2nd param within
18856 the generated "output_" functions "insn" from rtx to rtx_insn *.
18858 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
18860 * tree-profile.c (tree_profiling): Skip external functions
18861 when doing coverage instrumentation.
18862 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
18864 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18866 * config/rs6000/altivec.h (vec_cpsgn): New #define.
18867 (vec_mergee): Likewise.
18868 (vec_mergeo): Likewise.
18869 (vec_cntlz): Likewise.
18870 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
18871 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
18872 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
18873 VMRGEW, and VMRGOW.
18874 * doc/extend.texi: Document various forms of vec_cpsgn,
18875 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
18876 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
18877 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
18878 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
18879 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
18881 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18883 * config/rs6000/rs6000.c (context.h): New include.
18884 (tree-pass.h): Likewise.
18885 (make_pass_analyze_swaps): New decl.
18886 (rs6000_option_override): Register pass_analyze_swaps.
18887 (swap_web_entry): New subsclass of web_entry_base (df.h).
18888 (special_handling_values): New enum.
18889 (union_defs): New function.
18890 (union_uses): Likewise.
18891 (insn_is_load_p): Likewise.
18892 (insn_is_store_p): Likewise.
18893 (insn_is_swap_p): Likewise.
18894 (rtx_is_swappable_p): Likewise.
18895 (insn_is_swappable_p): Likewise.
18896 (chain_purpose): New enum.
18897 (chain_contains_only_swaps): New function.
18898 (mark_swaps_for_removal): Likewise.
18899 (swap_const_vector_halves): Likewise.
18900 (adjust_subreg_index): Likewise.
18901 (permute_load): Likewise.
18902 (permute_store): Likewise.
18903 (handle_special_swappables): Likewise.
18904 (replace_swap_with_copy): Likewise.
18905 (dump_swap_insn_table): Likewise.
18906 (rs6000_analyze_swaps): Likewise.
18907 (pass_data_analyze_swaps): New pass_data.
18908 (pass_analyze_swaps): New rtl_opt_pass.
18909 (make_pass_analyze_swaps): New function.
18910 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
18912 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18914 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
18915 type from rtx to rtx_insn *.
18916 (create_copy_of_insn_rtx): Likewise.
18917 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
18918 (create_copy_of_insn_rtx): Likewise, also for local "res".
18920 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18922 * rtl.h (find_first_parameter_load): Strengthen return type from
18924 * rtlanal.c (find_first_parameter_load): Strengthen return type
18925 from rtx to rtx_insn *. Add checked cast for now, to postpone
18926 strengthening the params.
18928 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
18931 * diagnostic.c: Set default caret.
18932 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
18934 * diagnostic.h (struct diagnostic_context):
18936 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18938 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
18939 (sel_bb_head): Strengthen return type insn_t (currently just an
18940 rtx) to rtx_insn *.
18941 (sel_bb_end): Likewise.
18943 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
18944 (sel_bb_head): Strengthen return type and local "head" from
18945 insn_t (currently just an rtx) to rtx_insn *.
18946 (sel_bb_end): Likewise for return type.
18947 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
18950 2014-08-21 David Malcolm <dmalcolm@redhat.com>
18952 * basic-block.h (get_last_bb_insn): Strengthen return type from
18954 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
18957 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
18960 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
18962 (diagnostic_report_diagnostic): ... from here.
18963 * toplev.c (general_init): Move code to c-family.
18965 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18967 * df.h (web_entry_base): Replace existing struct web_entry with a
18968 new class web_entry_base with only the predecessor member.
18969 (unionfind_root): Remove declaration and move to class member.
18970 (unionfind_union): Remove declaration and move to friend
18972 (union_defs): Remove declaration.
18973 * web.c (web_entry_base::unionfind_root): Modify to be member
18974 function and adjust accessors.
18975 (unionfind_union): Modify to be friend function and adjust
18977 (web_entry): New subclass of web_entry_base containing the reg
18979 (union_match_dups): Modify for struct -> class changes.
18980 (union_defs): Likewise.
18981 (entry_register): Likewise.
18982 (pass_web::execute): Likewise.
18984 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
18986 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
18987 builtin define __VEC_ELEMENT_REG_ORDER__.
18989 2014-08-20 Martin Jambor <mjambor@suse.cz>
18990 Wei Mi <wmi@google.com>
18993 PR middle-end/61776
18994 * tree-ssa-operands.c (update_stmt_operands): Remove
18995 MODIFIED_NORETURN_CALLS.
18996 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
18997 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
18998 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
18999 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
19000 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
19001 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
19002 (gimple_call_set_ctrl_altering): New func.
19003 (gimple_call_ctrl_altering_p): Ditto.
19004 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
19005 (make_blocks): Use gimple_call_initialize_ctrl_altering.
19006 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
19007 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
19008 remove MODIFIED_NORETURN_CALLS.
19010 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
19012 * coverage.c (coverage_compute_profile_id): Return non-0;
19013 also handle symbols with unique name.
19014 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
19016 2014-08-20 Steve Ellcey <sellcey@mips.com>
19018 PR middle-end/49191
19019 * doc/sourcebuild.texi (non_strict_align): New.
19021 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
19023 * cgraphunit.c (ipa_passes, compile): Reshedule
19024 symtab_remove_unreachable_nodes passes; update comments.
19025 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
19026 TODO_remove_functions before the pass; the functions ought to be
19028 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
19029 TODO_remove_functions.
19030 * passes.c (pass_data_early_local_passes): Do not schedule function
19032 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
19034 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
19037 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
19038 before setting the option.
19039 * diagnostic.c (diagnostic_classify_diagnostic): Record
19040 command-line status.
19042 2014-08-20 Richard Biener <rguenther@suse.de>
19045 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
19046 to build uint{16,32,64}_type_node.
19048 2014-08-20 Terry Guo <terry.guo@arm.com>
19050 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
19051 with immediate_operand.
19053 2014-08-20 David Malcolm <dmalcolm@redhat.com>
19055 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
19056 "insn" from an as_a to a safe_as_a, for the case when "insn" is
19059 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
19061 PR preprocessor/51303
19062 * incpath.c (remove_duplicates): Use cpp_warning.
19064 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
19068 * doc/options.texi (CPP): Document it.
19069 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
19070 * optc-gen.awk: Handle CPP.
19071 * opth-gen.awk: Likewise.
19073 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19075 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
19077 (duplicate_insn_chain): Likewise.
19078 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
19079 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
19080 checked cast for now (until we can strengthen the params in the
19082 (duplicate_insn_chain): Likewise.
19084 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19086 * rtl.h (next_cc0_user): Strengthen return type from rtx to
19088 (prev_cc0_setter): Likewise.
19090 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
19091 rtx_insn *, adding checked casts for now as necessary.
19092 (prev_cc0_setter): Likewise.
19094 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19096 * expr.h (emit_move_insn): Strengthen return type from rtx to
19098 (emit_move_insn_1): Likewise.
19099 (emit_move_complex_push): Likewise.
19100 (emit_move_complex_parts): Likewise.
19102 * expr.c (emit_move_via_integer): Strengthen return type from rtx
19103 to rtx_insn *. Replace use of NULL_RTX with NULL when working
19105 (emit_move_complex_push): Strengthen return type from rtx to
19107 (emit_move_complex): Likewise, also for local "ret".
19108 (emit_move_ccmode): Likewise.
19109 (emit_move_multi_word): Likewise for return type and locals
19110 "last_insn", "seq".
19111 (emit_move_insn_1): Likewise for return type and locals "result",
19113 (emit_move_insn): Likewise for return type and local "last_insn".
19114 (compress_float_constant): Likewise.
19116 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19118 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
19119 from rtx to rtx_insn *.
19121 * rtl.h (emit_insn_before): Likewise.
19122 (emit_insn_before_noloc): Likewise.
19123 (emit_insn_before_setloc): Likewise.
19124 (emit_jump_insn_before): Likewise.
19125 (emit_jump_insn_before_noloc): Likewise.
19126 (emit_jump_insn_before_setloc): Likewise.
19127 (emit_call_insn_before): Likewise.
19128 (emit_call_insn_before_noloc): Likewise.
19129 (emit_call_insn_before_setloc): Likewise.
19130 (emit_debug_insn_before): Likewise.
19131 (emit_debug_insn_before_noloc): Likewise.
19132 (emit_debug_insn_before_setloc): Likewise.
19133 (emit_label_before): Likewise.
19134 (emit_insn_after): Likewise.
19135 (emit_insn_after_noloc): Likewise.
19136 (emit_insn_after_setloc): Likewise.
19137 (emit_jump_insn_after): Likewise.
19138 (emit_jump_insn_after_noloc): Likewise.
19139 (emit_jump_insn_after_setloc): Likewise.
19140 (emit_call_insn_after): Likewise.
19141 (emit_call_insn_after_noloc): Likewise.
19142 (emit_call_insn_after_setloc): Likewise.
19143 (emit_debug_insn_after): Likewise.
19144 (emit_debug_insn_after_noloc): Likewise.
19145 (emit_debug_insn_after_setloc): Likewise.
19146 (emit_label_after): Likewise.
19147 (emit_insn): Likewise.
19148 (emit_debug_insn): Likewise.
19149 (emit_jump_insn): Likewise.
19150 (emit_call_insn): Likewise.
19151 (emit_label): Likewise.
19152 (gen_clobber): Likewise.
19153 (emit_clobber): Likewise.
19154 (gen_use): Likewise.
19155 (emit_use): Likewise.
19158 (emit_barrier_before): Strengthen return type from rtx to
19160 (emit_barrier_after): Likewise.
19161 (emit_barrier): Likewise.
19163 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
19164 from rtx to rtx_insn *. Add checked casts for now when converting
19165 "last" from rtx to rtx_insn *.
19166 (emit_insn_before_noloc): Likewise for return type.
19167 (emit_jump_insn_before_noloc): Likewise.
19168 (emit_call_insn_before_noloc): Likewise.
19169 (emit_debug_insn_before_noloc): Likewise.
19170 (emit_barrier_before): Strengthen return type and local "insn"
19171 from rtx to rtx_barrier *.
19172 (emit_label_before): Strengthen return type from rtx to
19173 rtx_insn *. Add checked cast for now when returning param
19174 (emit_pattern_after_noloc): Strengthen return type from rtx to
19175 rtx_insn *. Add checked casts for now when converting "last" from
19177 (emit_insn_after_noloc): Strengthen return type from rtx to
19179 (emit_jump_insn_after_noloc): Likewise.
19180 (emit_call_insn_after_noloc): Likewise.
19181 (emit_debug_insn_after_noloc): Likewise.
19182 (emit_barrier_after): Strengthen return type from rtx to
19184 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
19185 Add checked cast for now when converting "label" from rtx to
19187 (emit_pattern_after_setloc): Strengthen return type from rtx to
19188 rtx_insn *. Add checked casts for now when converting "last" from
19190 (emit_pattern_after): Strengthen return type from rtx to
19192 (emit_insn_after_setloc): Likewise.
19193 (emit_insn_after): Likewise.
19194 (emit_jump_insn_after_setloc): Likewise.
19195 (emit_jump_insn_after): Likewise.
19196 (emit_call_insn_after_setloc): Likewise.
19197 (emit_call_insn_after): Likewise.
19198 (emit_debug_insn_after_setloc): Likewise.
19199 (emit_debug_insn_after): Likewise.
19200 (emit_pattern_before_setloc): Likewise. Add checked casts for now
19201 when converting "last" from rtx to rtx_insn *.
19202 (emit_pattern_before): Strengthen return type from rtx to
19204 (emit_insn_before_setloc): Likewise.
19205 (emit_insn_before): Likewise.
19206 (emit_jump_insn_before_setloc): Likewise.
19207 (emit_jump_insn_before): Likewise.
19208 (emit_call_insn_before_setloc): Likewise.
19209 (emit_call_insn_before): Likewise.
19210 (emit_debug_insn_before_setloc): Likewise.
19211 (emit_debug_insn_before): Likewise.
19212 (emit_insn): Strengthen return type and locals "last", "insn",
19213 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
19214 within cases where we know we have an insn.
19215 (emit_debug_insn): Likewise.
19216 (emit_jump_insn): Likewise.
19217 (emit_call_insn): Strengthen return type and local "insn" from rtx
19219 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
19220 a checked cast to rtx_insn * for now on "label".
19221 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
19222 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
19223 (emit_use): Likewise.
19224 (gen_use): Likewise, also for local "seq".
19225 (emit): Likewise for return type and local "insn".
19226 (rtx_insn): Likewise for return type and local "new_rtx".
19228 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
19229 from rtx to rtx_barrier *.
19231 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
19232 changed return type from rtx to rtx_insn *, we must update
19233 "emit_fn" type, and this in turn means updating...
19234 (frame_insn): ...this. Strengthen return type from rtx to
19235 rtx_insn *. Introduce a new local "insn" of the appropriate type.
19237 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19239 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
19240 rtx to rtx_jump_table_data *. Also for local.
19241 * rtl.h (emit_jump_table_data): Likewise.
19243 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19245 * basic-block.h (create_basic_block_structure): Strengthen third
19246 param "bb_note" from rtx to rtx_note *.
19247 * rtl.h (emit_note_before): Strengthen return type from rtx to
19249 (emit_note_after): Likewise.
19250 (emit_note): Likewise.
19251 (emit_note_copy): Likewise. Also, strengthen param similarly.
19252 * function.h (struct rtl_data): Strengthen field
19253 "x_stack_check_probe_note" from rtx to rtx_note *.
19255 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
19256 from rtx to rtx_note *.
19257 * cfgrtl.c (create_basic_block_structure): Strengthen third param
19258 "bb_note" from rtx to rtx_note *.
19259 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
19260 when calling emit_note_copy.
19261 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
19263 (emit_note_after): Likewise.
19264 (emit_note_before): Likewise.
19265 (emit_note_copy): Likewise. Also, strengthen param similarly.
19266 (emit_note): Likewise.
19267 * except.c (emit_note_eh_region_end): Likewise for return type.
19268 Strengthen local "next" from rtx to rtx_insn *.
19269 (convert_to_eh_region_ranges): Strengthen local "note"
19270 from rtx to rtx_note *.
19271 * final.c (change_scope): Likewise.
19272 (reemit_insn_block_notes): Likewise, for both locals named "note".
19273 Also, strengthen local "insn" from rtx to rtx_insn *.
19274 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
19276 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
19277 strengthen local "seq" from rtx to rtx_insn *.
19278 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
19280 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
19282 (get_bb_note_from_pool): Strengthen return type from rtx to
19284 (sel_create_basic_block): Strengthen local "new_bb_note" from
19285 insn_t to rtx_note *.
19286 * var-tracking.c (emit_note_insn_var_location): Strengthen local
19287 "note" from rtx to rtx_note *.
19288 (emit_notes_in_bb): Likewise.
19290 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19292 * function.h (struct rtl_data): Strengthen field
19293 "x_parm_birth_insn" from rtx to rtx_insn *.
19294 * function.c (struct assign_parm_data_all): Strengthen fields
19295 "first_conversion_insn" and "last_conversion_insn" from rtx to
19298 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19300 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
19301 to rtx_insn *; also for local "var_end_seq".
19302 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
19303 (maybe_cleanup_end_of_block): Likewise for param "last" and local
19305 (expand_gimple_cond): Likewise for locals "last2" and "last".
19306 (mark_transaction_restart_calls): Likewise for local "insn".
19307 (expand_gimple_stmt): Likewise for return type and locals "last"
19309 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
19310 (avoid_complex_debug_insns): Likewise for param "insn".
19311 (expand_debug_locations): Likewise for locals "insn", "last",
19312 "prev_insn" and "insn2".
19313 (expand_gimple_basic_block): Likewise for local "last".
19314 (construct_exit_block): Likewise for locals "head", "end",
19316 (pass_expand::execute): Likewise for locals "var_seq",
19317 "var_ret_seq", "next".
19319 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19321 * asan.h (asan_emit_stack_protection): Strengthen return type from
19323 * asan.c (asan_emit_stack_protection): Likewise. Add local
19324 "insns" to hold the return value.
19326 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19328 * basic-block.h (bb_note): Strengthen return type from rtx to
19330 * sched-int.h (bb_note): Likewise.
19331 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
19333 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19335 * rtl.h (make_insn_raw): Strengthen return type from rtx to
19338 * emit-rtl.c (make_insn_raw): Strengthen return type and local
19339 "insn" from rtx to rtx_insn *.
19340 (make_debug_insn_raw): Strengthen return type from rtx to
19341 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
19342 (make_jump_insn_raw): Strengthen return type from rtx to
19343 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
19344 (make_call_insn_raw): Strengthen return type from rtx to
19345 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
19346 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
19347 callback from rtx to rtx_insn *; likewise for local "insn" and
19348 "next", adding a checked cast to rtx_insn in the relevant cases of
19349 the switch statement.
19350 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
19351 callback from rtx to rtx_insn *.
19352 (emit_pattern_after_setloc): Likewise.
19353 (emit_pattern_after): Likewise.
19354 (emit_pattern_before_setloc): Likewise.
19355 (emit_pattern_before): Likewise.
19357 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19359 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
19361 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
19362 accepting an rtx_insn *.
19363 (last_call_insn): Strengthen return type from rtx to
19366 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19368 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
19369 "insns" from rtx to rtx_insn *.
19370 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
19371 locals "insn" and "prev".
19373 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19375 * rtl.h (tablejump_p): Strengthen third param from rtx * to
19376 rtx_jump_table_data **.
19378 * cfgbuild.c (make_edges): Introduce local "table", using it in
19379 place of "tmp" for jump table data.
19380 (find_bb_boundaries): Strengthen local "table" from rtx to
19381 rtx_jump_table_data *.
19382 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
19383 (outgoing_edges_match): Likewise for locals "table1" and "table2".
19384 (try_crossjump_to_edge): Likewise.
19385 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
19387 (patch_jump_insn): Introduce local "table", using it in place of
19388 "tmp" for jump table data.
19389 (force_nonfallthru_and_redirect): Introduce local "table", so that
19390 call to tablejump_p can receive an rtx_jump_table_data **. Update
19391 logic around the call to overwrite "note" appropriately if
19392 tablejump_p returns non-zero.
19393 (get_last_bb_insn): Introduce local "table", using it in place of
19394 "tmp" for jump table data.
19395 * dwarf2cfi.c (create_trace_edges): Likewise.
19397 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
19398 from rtx to rtx_jump_table_data *.
19399 (create_fix_barrier): Strengthen local "tmp" from rtx to
19400 rtx_jump_table_data *.
19401 (arm_reorg): Likewise for local "table".
19403 * config/s390/s390.c (s390_chunkify_start): Likewise.
19405 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
19407 * jump.c (delete_related_insns): Strengthen local "lab_next" from
19408 rtx to rtx_jump_table_data *.
19410 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
19411 rtx_jump_table_data **. Add a checked cast when writing through
19412 the pointer: we know there that local "table" is non-NULL and that
19413 JUMP_TABLE_DATA_P (table) holds.
19414 (label_is_jump_target_p): Introduce local "table", using it in
19415 place of "tmp" for jump table data.
19417 2014-08-19 Marek Polacek <polacek@redhat.com>
19420 * doc/invoke.texi: Document -Wbool-compare.
19422 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19424 * rtl.h (entry_of_function): Strengthen return type from rtx to
19426 * cfgrtl.c (entry_of_function): Likewise.
19428 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19430 * emit-rtl.h (get_insns): Strengthen return type from rtx to
19431 rtx_insn *, adding a checked cast for now.
19432 (get_last_insn): Likewise.
19434 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19436 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
19439 * emit-rtl.c (gen_label_rtx): Likewise.
19441 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19443 * rtl.h (previous_insn): Strengthen return type from rtx to
19445 (next_insn): Likewise.
19446 (prev_nonnote_insn): Likewise.
19447 (prev_nonnote_insn_bb): Likewise.
19448 (next_nonnote_insn): Likewise.
19449 (next_nonnote_insn_bb): Likewise.
19450 (prev_nondebug_insn): Likewise.
19451 (next_nondebug_insn): Likewise.
19452 (prev_nonnote_nondebug_insn): Likewise.
19453 (next_nonnote_nondebug_insn): Likewise.
19454 (prev_real_insn): Likewise.
19455 (next_real_insn): Likewise.
19456 (prev_active_insn): Likewise.
19457 (next_active_insn): Likewise.
19459 * emit-rtl.c (next_insn): Strengthen return type from rtx to
19460 rtx_insn *, adding a checked cast.
19461 (previous_insn): Likewise.
19462 (next_nonnote_insn): Likewise.
19463 (next_nonnote_insn_bb): Likewise.
19464 (prev_nonnote_insn): Likewise.
19465 (prev_nonnote_insn_bb): Likewise.
19466 (next_nondebug_insn): Likewise.
19467 (prev_nondebug_insn): Likewise.
19468 (next_nonnote_nondebug_insn): Likewise.
19469 (prev_nonnote_nondebug_insn): Likewise.
19470 (next_real_insn): Likewise.
19471 (prev_real_insn): Likewise.
19472 (next_active_insn): Likewise.
19473 (prev_active_insn): Likewise.
19475 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
19476 param "stepfunc" so that it returns an rtx_insn * rather than an
19477 rtx, to track the change to prev_nonnote_insn_bb, which is the
19478 only function this is called with.
19479 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
19481 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
19483 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
19486 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19488 * coretypes.h (class rtx_debug_insn): Add forward declaration.
19489 (class rtx_nonjump_insn): Likewise.
19490 (class rtx_jump_insn): Likewise.
19491 (class rtx_call_insn): Likewise.
19492 (class rtx_jump_table_data): Likewise.
19493 (class rtx_barrier): Likewise.
19494 (class rtx_code_label): Likewise.
19495 (class rtx_note): Likewise.
19497 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
19498 adding the invariant DEBUG_INSN_P (X).
19499 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
19500 the invariant NONJUMP_INSN_P (X).
19501 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
19502 the invariant JUMP_P (X).
19503 (class rtx_call_insn): New, a subclass of rtx_insn, adding
19504 the invariant CALL_P (X).
19505 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
19506 invariant JUMP_TABLE_DATA_P (X).
19507 (class rtx_barrier): New, a subclass of rtx_insn, adding the
19508 invariant BARRIER_P (X).
19509 (class rtx_code_label): New, a subclass of rtx_insn, adding
19510 the invariant LABEL_P (X).
19511 (class rtx_note): New, a subclass of rtx_insn, adding
19512 the invariant NOTE_P(X).
19513 (is_a_helper <rtx_debug_insn *>::test): New.
19514 (is_a_helper <rtx_nonjump_insn *>::test): New.
19515 (is_a_helper <rtx_jump_insn *>::test): New.
19516 (is_a_helper <rtx_call_insn *>::test): New.
19517 (is_a_helper <rtx_jump_table_data *>::test): New functions,
19518 overloaded for both rtx and rtx_insn *.
19519 (is_a_helper <rtx_barrier *>::test): New.
19520 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
19521 for both rtx and rtx_insn *.
19522 (is_a_helper <rtx_note *>::test): New.
19524 2014-08-19 Marek Polacek <polacek@redhat.com>
19526 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
19527 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
19528 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
19529 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
19531 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19533 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
19534 rtx_insn *. To help with transition, for now, convert from an
19535 access macro into a pair of functions: BND_TO, returning an
19537 (SET_BND_TO): New function, for use where BND_TO is used as an
19540 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
19542 (BND_TO): New function, adding a checked cast.
19543 (SET_BND_TO): New function.
19545 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
19547 (compute_av_set_on_boundaries): Likewise.
19549 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
19551 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
19552 destination if it is used in source.
19553 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
19554 (*popcount<mode>2_falsedep_1): Likewise.
19556 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
19559 * configure.ac: Set install_gold_as_default to no first.
19560 * configure: Regenerated.
19562 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19564 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
19565 "note_list" field will eventually be an rtx_insn *. To help with
19566 transition, for now, convert from an access macro into a pair of
19567 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
19568 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
19571 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
19572 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
19574 * sel-sched-ir.c (init_bb): Likewise.
19575 (sel_restore_notes): Likewise.
19576 (move_bb_info): Likewise.
19577 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
19578 (SET_BB_NOTE_LIST): New function.
19580 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19582 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
19583 field will eventually be an rtx_insn *. To help with transition,
19584 for now, convert from an access macro into a pair of functions:
19585 VINSN_INSN_RTX, returning an rtx_insn *, and...
19586 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
19587 is used as an lvalue.
19589 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
19590 SET_VINSN_INSN_RTX where it's used as an lvalue.
19591 (VINSN_INSN_RTX): New function.
19592 (SET_VINSN_INSN_RTX): New function.
19594 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19596 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
19597 eventually be rtx_insn *, but to help with transition, for now,
19598 convert from an access macro into a pair of functions: DEP_PRO
19599 returning an rtx_insn * and...
19600 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
19601 lvalue, returning an rtx&.
19602 (DEP_CON): Analogous changes to DEP_PRO above.
19603 (SET_DEP_CON): Likewise.
19605 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
19606 an lvalue to SET_DEP_CON.
19607 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
19608 (sd_copy_back_deps): Likewise for DEP_CON.
19609 (DEP_PRO): New function, adding a checked cast for now.
19610 (DEP_CON): Likewise.
19611 (SET_DEP_PRO): New function.
19612 (SET_DEP_CON): Likewise.
19614 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
19616 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
19617 (extra_options): Add i386/cygwin.opt.
19618 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
19619 (CPP_SPEC): Accept -pthread.
19620 (LINK_SPEC): Ditto.
19621 (GOMP_SELF_SPECS): Update comment.
19622 * config/i386/cygwin.opt: New file for -pthread flag.
19624 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19626 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
19627 * df.h (DF_REF_INSN): Convert from a macro to a function, so
19628 that we can return an rtx_insn *.
19630 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
19632 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
19633 when building executables, not DLLs. Add --large-address-aware
19634 under the same conditions.
19635 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
19636 when building executables, not DLLs. Add --large-address-aware
19637 under the same conditions when using -m32.
19639 * config/i386/cygwin-stdint.h: Throughout, make type
19640 definitions dependent on target architecture, not host.
19642 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19644 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
19645 the return type from rtx to rtx_insn *, which will enable various
19646 conversions in followup patches. For now this is is done by a
19648 (NEXT_INSN): Likewise.
19649 (SET_PREV_INSN): Convert to an inline function. This is intended
19650 for use as an lvalue, and so returns an rtx& to allow in-place
19652 (SET_NEXT_INSN): Likewise.
19654 2014-07-08 Mark Wielaard <mjw@redhat.com>
19657 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
19659 2014-08-19 Marek Polacek <polacek@redhat.com>
19662 * cgraphunit.c (handle_alias_pairs): Fix condition.
19664 2014-08-19 Richard Biener <rguenther@suse.de>
19666 * gimple-fold.c (fold_gimple_assign): Properly build a
19667 null-pointer constant when devirtualizing addresses.
19669 2014-07-07 Mark Wielaard <mjw@redhat.com>
19671 * dwarf2out.c (decl_quals): New function.
19672 (modified_type_die): Take one cv_quals argument instead of two,
19673 one for const and one for volatile.
19674 (add_type_attribute): Likewise.
19675 (generic_parameter_die): Call add_type_attribute with one modifier
19677 (base_type_for_mode): Likewise.
19678 (add_bounds_info): Likewise.
19679 (add_subscript_info): Likewise.
19680 (gen_array_type_die): Likewise.
19681 (gen_descr_array_type_die): Likewise.
19682 (gen_entry_point_die): Likewise.
19683 (gen_enumeration_type_die): Likewise.
19684 (gen_formal_parameter_die): Likewise.
19685 (gen_subprogram_die): Likewise.
19686 (gen_variable_die): Likewise.
19687 (gen_const_die): Likewise.
19688 (gen_field_die): Likewise.
19689 (gen_pointer_type_die): Likewise.
19690 (gen_reference_type_die): Likewise.
19691 (gen_ptr_to_mbr_type_die): Likewise.
19692 (gen_inheritance_die): Likewise.
19693 (gen_subroutine_type_die): Likewise.
19694 (gen_typedef_die): Likewise.
19695 (force_type_die): Likewise.
19697 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19699 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
19701 * configure: Regenerate.
19703 2014-08-19 Richard Biener <rguenther@suse.de>
19705 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
19706 DECL_EXTERNALs in BLOCKs as non-references.
19707 * tree-streamer-out.c (streamer_write_chain): Likewise.
19709 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
19710 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
19711 Anna Tikhonova <anna.tikhonova@intel.com>
19712 Ilya Tocar <ilya.tocar@intel.com>
19713 Andrey Turetskiy <andrey.turetskiy@intel.com>
19714 Ilya Verbin <ilya.verbin@intel.com>
19715 Kirill Yukhin <kirill.yukhin@intel.com>
19716 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
19718 * config/i386/sse.md
19719 (define_mode_iterator VI48_AVX512F): Delete.
19720 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
19721 (define_mode_iterator VI2_AVX512VL): Ditto.
19722 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
19725 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
19727 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
19728 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
19729 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
19730 with VI48_AVX512F_AVX512VL): New.
19731 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
19732 with VI2_AVX512VL): Ditto.
19734 2014-08-19 Marek Polacek <polacek@redhat.com>
19736 * doc/invoke.texi: Document -Wc99-c11-compat.
19738 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19740 * rtl.h (PREV_INSN): Split macro in two: the existing one,
19741 for rvalues, and...
19742 (SET_PREV_INSN): New macro, for use as an lvalue.
19743 (NEXT_INSN, SET_NEXT_INSN): Likewise.
19745 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
19746 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
19747 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
19748 (fixup_abnormal_edges): Likewise.
19749 (unlink_insn_chain): Likewise.
19750 (fixup_reorder_chain): Likewise.
19751 (cfg_layout_delete_block): Likewise.
19752 (cfg_layout_merge_blocks): Likewise.
19753 * combine.c (update_cfg_for_uncondjump): Likewise.
19754 * emit-rtl.c (link_insn_into_chain): Likewise.
19755 (remove_insn): Likewise.
19756 (delete_insns_since): Likewise.
19757 (reorder_insns_nobb): Likewise.
19758 (emit_insn_after_1): Likewise.
19759 * final.c (rest_of_clean_state): Likewise.
19760 (final_scan_insn): Likewise.
19761 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
19762 * haifa-sched.c (concat_note_lists): Likewise.
19763 (remove_notes): Likewise.
19764 (restore_other_notes): Likewise.
19765 (move_insn): Likewise.
19766 (unlink_bb_notes): Likewise.
19767 (restore_bb_notes): Likewise.
19768 * jump.c (delete_for_peephole): Likewise.
19769 * optabs.c (emit_libcall_block_1): Likewise.
19770 * reorg.c (emit_delay_sequence): Likewise.
19771 (fill_simple_delay_slots): Likewise.
19772 * sel-sched-ir.c (sel_move_insn): Likewise.
19773 (sel_remove_insn): Likewise.
19774 (get_bb_note_from_pool): Likewise.
19775 * sel-sched.c (move_nop_to_previous_block): Likewise.
19777 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
19778 * config/c6x/c6x.c (gen_one_bundle): Likewise.
19779 (c6x_gen_bundles): Likewise.
19780 (hwloop_optimize): Likewise.
19781 * config/frv/frv.c (frv_function_prologue): Likewise.
19782 (frv_register_nop): Likewise.
19783 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
19784 (ia64_reorg): Likewise.
19785 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
19786 (mep_make_bundle): Likewise.
19787 (mep_bundle_insns): Likewise.
19788 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
19789 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
19790 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
19792 2014-08-19 David Malcolm <dmalcolm@redhat.com>
19794 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
19795 return type from rtx to rtx_insn *.
19796 (BB_END): Likewise.
19797 (BB_HEADER): Likewise.
19798 (BB_FOOTER): Likewise.
19799 (SET_BB_HEAD): Convert to a function.
19800 (SET_BB_END): Likewise.
19801 (SET_BB_HEADER): Likewise.
19802 (SET_BB_FOOTER): Likewise.
19804 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
19805 Strengthen the return type from rtx to rtx_insn *. For now, this
19806 is done by adding a checked cast, but this will eventually
19807 become a field lookup.
19808 (BB_END): Likewise.
19809 (BB_HEADER): Likewise.
19810 (BB_FOOTER): Likewise.
19811 (SET_BB_HEAD): New function, from macro of same name. This is
19812 intended for use as an lvalue, and so returns an rtx& to allow
19813 in-place modification.
19814 (SET_BB_END): Likewise.
19815 (SET_BB_HEADER): Likewise.
19816 (SET_BB_FOOTER): Likewise.
19818 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19820 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
19821 for rvalues, and...
19822 (SET_BB_HEAD): New macro, for use as a lvalue.
19823 (BB_END, SET_BB_END): Likewise.
19824 (BB_HEADER, SET_BB_HEADER): Likewise.
19825 (BB_FOOTER, SET_BB_FOOTER): Likewise.
19827 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
19828 of BB_* macros into SET_BB_* macros.
19829 (fix_crossing_unconditional_branches): Likewise.
19830 * caller-save.c (save_call_clobbered_regs): Likewise.
19831 (insert_one_insn): Likewise.
19832 * cfgbuild.c (find_bb_boundaries): Likewise.
19833 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
19834 (outgoing_edges_match): Likewise.
19835 (try_optimize_cfg): Likewise.
19836 * cfgexpand.c (expand_gimple_cond): Likewise.
19837 (expand_gimple_tailcall): Likewise.
19838 (expand_gimple_basic_block): Likewise.
19839 (construct_exit_block): Likewise.
19840 * cfgrtl.c (delete_insn): Likewise.
19841 (create_basic_block_structure): Likewise.
19842 (rtl_delete_block): Likewise.
19843 (rtl_split_block): Likewise.
19844 (emit_nop_for_unique_locus_between): Likewise.
19845 (rtl_merge_blocks): Likewise.
19846 (block_label): Likewise.
19847 (try_redirect_by_replacing_jump): Likewise.
19848 (emit_barrier_after_bb): Likewise.
19849 (fixup_abnormal_edges): Likewise.
19850 (record_effective_endpoints): Likewise.
19851 (relink_block_chain): Likewise.
19852 (fixup_reorder_chain): Likewise.
19853 (fixup_fallthru_exit_predecessor): Likewise.
19854 (cfg_layout_duplicate_bb): Likewise.
19855 (cfg_layout_split_block): Likewise.
19856 (cfg_layout_delete_block): Likewise.
19857 (cfg_layout_merge_blocks): Likewise.
19858 * combine.c (update_cfg_for_uncondjump): Likewise.
19859 * emit-rtl.c (add_insn_after): Likewise.
19860 (remove_insn): Likewise.
19861 (reorder_insns): Likewise.
19862 (emit_insn_after_1): Likewise.
19863 * haifa-sched.c (get_ebb_head_tail): Likewise.
19864 (restore_other_notes): Likewise.
19865 (move_insn): Likewise.
19866 (sched_extend_bb): Likewise.
19867 (fix_jump_move): Likewise.
19868 * ifcvt.c (noce_process_if_block): Likewise.
19869 (dead_or_predicable): Likewise.
19870 * ira.c (update_equiv_regs): Likewise.
19871 * reg-stack.c (change_stack): Likewise.
19872 * sel-sched-ir.c (sel_move_insn): Likewise.
19873 * sel-sched.c (move_nop_to_previous_block): Likewise.
19875 * config/c6x/c6x.c (hwloop_optimize): Likewise.
19876 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
19878 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19880 * rtl.h (for_each_rtx_in_insn): New function.
19881 * rtlanal.c (for_each_rtx_in_insn): Likewise.
19883 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19885 * coretypes.h (class rtx_insn): Add forward declaration.
19887 * rtl.h: Include is-a.h.
19888 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
19889 workaround to ensure gengtype knows inheritance is occurring,
19890 whilst continuing to use the pre-existing special-casing for
19892 (class rtx_insn): New subclass of rtx_def, adding the
19893 invariant that we're dealing with something we can sanely use
19894 INSN_UID, NEXT_INSN, PREV_INSN on.
19895 (is_a_helper <rtx_insn *>::test): New.
19896 (is_a_helper <const rtx_insn *>::test): New.
19898 2014-08-18 David Malcolm <dmalcolm@redhat.com>
19900 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
19902 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
19904 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
19907 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
19909 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
19910 to BUILT_IN_UNREACHABLE.
19912 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
19915 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
19917 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
19918 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
19919 (ffs<mode>2): Do not expand with tzcnt for
19920 TARGET_AVOID_FALSE_DEP_FOR_BMI.
19921 (ffssi2_no_cmove): Ditto.
19922 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
19923 (ctz<mode>2): New expander.
19924 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
19925 (*ctz<mode>2_falsedep): New insn.
19926 (*ctz<mode>2): Rename from ctz<mode>2.
19927 (clz<mode>2_lzcnt): New expander.
19928 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
19929 (*clz<mode>2_lzcnt_falsedep): New insn.
19930 (*clz<mode>2): Rename from ctz<mode>2.
19931 (popcount<mode>2): New expander.
19932 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
19933 (*popcount<mode>2_falsedep): New insn.
19934 (*popcount<mode>2): Rename from ctz<mode>2.
19935 (*popcount<mode>2_cmp): Remove.
19936 (*popcountsi2_cmp_zext): Ditto.
19938 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
19940 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
19941 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
19942 * config/microblaze/microblaze.h
19943 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
19945 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
19948 * configure.ac: Set install_gold_as_default to no for
19950 * configure: Regenerated.
19952 2014-08-18 Roman Gareev <gareevroman@gmail.com>
19954 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
19955 * config.in: Add undef of HAVE_isl.
19956 * configure: Regenerate.
19957 * configure.ac: Add definition of HAVE_isl.
19958 * graphite-blocking.c: Add checking of HAVE_isl.
19959 * graphite-dependences.c: Likewise.
19960 * graphite-interchange.c: Likewise.
19961 * graphite-isl-ast-to-gimple.c: Likewise.
19962 * graphite-optimize-isl.c: Likewise.
19963 * graphite-poly.c: Likewise.
19964 * graphite-scop-detection.c: Likewise.
19965 * graphite-sese-to-poly.c: Likewise.
19966 * graphite.c: Likewise.
19967 * toplev.c: Replace the checking of HAVE_cloog with the checking
19970 2014-08-18 Richard Biener <rguenther@suse.de>
19972 PR tree-optimization/62090
19973 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
19974 (fold_builtin_3): Do not fold snprintf.
19975 (fold_builtin_4): Likewise.
19976 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
19977 moved from builtins.c.
19978 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
19979 (gimple_fold_builtin): Do not fold sprintf here.
19981 2014-08-18 Richard Biener <rguenther@suse.de>
19983 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
19985 (maybe_canonicalize_mem_ref_addr): ... this function.
19986 (fold_stmt_1): Apply it here before all simplification.
19988 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
19991 * cgraph.h (cgraph_node::create_indirect_edge): Add
19992 compute_indirect_info param.
19993 * cgraph.c (cgraph_node::create_indirect_edge): Compute
19994 indirect_info only when it is required.
19995 * cgraphclones.c (cgraph_clone_edge): Do not recompute
19996 indirect_info fore cloned indirect edge.
19998 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
19999 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20000 Anna Tikhonova <anna.tikhonova@intel.com>
20001 Ilya Tocar <ilya.tocar@intel.com>
20002 Andrey Turetskiy <andrey.turetskiy@intel.com>
20003 Ilya Verbin <ilya.verbin@intel.com>
20004 Kirill Yukhin <kirill.yukhin@intel.com>
20005 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20007 * config/i386/sse.md
20008 (define_mode_iterator VI8_AVX2_AVX512BW): New.
20009 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
20011 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
20012 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20013 Anna Tikhonova <anna.tikhonova@intel.com>
20014 Ilya Tocar <ilya.tocar@intel.com>
20015 Andrey Turetskiy <andrey.turetskiy@intel.com>
20016 Ilya Verbin <ilya.verbin@intel.com>
20017 Kirill Yukhin <kirill.yukhin@intel.com>
20018 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20020 * config/i386/sse.md
20021 (define_mode_iterator VF1_AVX512VL): New.
20022 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
20023 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
20026 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
20027 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20028 Anna Tikhonova <anna.tikhonova@intel.com>
20029 Ilya Tocar <ilya.tocar@intel.com>
20030 Andrey Turetskiy <andrey.turetskiy@intel.com>
20031 Ilya Verbin <ilya.verbin@intel.com>
20032 Kirill Yukhin <kirill.yukhin@intel.com>
20033 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20035 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
20036 * config/i386/i386.md
20037 (define_code_iterator any_float): New.
20038 (define_code_attr floatsuffix): New.
20039 * config/i386/sse.md
20040 (define_mode_iterator VF1_128_256VL): New.
20041 (define_mode_iterator VF2_512_256VL): New.
20042 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
20044 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
20045 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
20047 (define_mode_attr qq2pssuff): New.
20048 (define_mode_attr sselongvecmode): New.
20049 (define_mode_attr sselongvecmodelower): New.
20050 (define_mode_attr sseintvecmode3): New.
20051 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
20053 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
20054 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
20055 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
20056 (define_insn "ufloatv2siv2df2<mask_name>"): New.
20058 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
20059 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20060 Anna Tikhonova <anna.tikhonova@intel.com>
20061 Ilya Tocar <ilya.tocar@intel.com>
20062 Andrey Turetskiy <andrey.turetskiy@intel.com>
20063 Ilya Verbin <ilya.verbin@intel.com>
20064 Kirill Yukhin <kirill.yukhin@intel.com>
20065 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20067 * config/i386/sse.md
20068 (define_mode_iterator VF2_AVX512VL): New.
20069 (define_mode_attr sseintvecmode2): New.
20070 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
20071 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
20072 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
20074 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
20076 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
20078 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
20081 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
20082 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20083 Anna Tikhonova <anna.tikhonova@intel.com>
20084 Ilya Tocar <ilya.tocar@intel.com>
20085 Andrey Turetskiy <andrey.turetskiy@intel.com>
20086 Ilya Verbin <ilya.verbin@intel.com>
20087 Kirill Yukhin <kirill.yukhin@intel.com>
20088 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20090 * config/i386/i386.md
20091 (define_insn "*movoi_internal_avx"): Add evex version.
20092 (define_insn "*movti_internal"): Ditto.
20094 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
20095 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20096 Anna Tikhonova <anna.tikhonova@intel.com>
20097 Ilya Tocar <ilya.tocar@intel.com>
20098 Andrey Turetskiy <andrey.turetskiy@intel.com>
20099 Ilya Verbin <ilya.verbin@intel.com>
20100 Kirill Yukhin <kirill.yukhin@intel.com>
20101 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20103 * config/i386/i386.md
20104 (define_attr "isa"): Add avx512dq, noavx512dq.
20105 (define_attr "enabled"): Ditto.
20106 * config/i386/sse.md
20107 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
20109 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
20110 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20111 Anna Tikhonova <anna.tikhonova@intel.com>
20112 Ilya Tocar <ilya.tocar@intel.com>
20113 Andrey Turetskiy <andrey.turetskiy@intel.com>
20114 Ilya Verbin <ilya.verbin@intel.com>
20115 Kirill Yukhin <kirill.yukhin@intel.com>
20116 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20118 * config/i386/i386.c
20119 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
20120 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
20121 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
20122 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
20123 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
20124 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
20125 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
20126 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
20127 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
20128 * config/i386/sse.md
20129 (define_mode_iterator VMOVE): Allow V4TI mode.
20130 (define_mode_iterator V_AVX512VL): New.
20131 (define_mode_iterator V): New handling for AVX512VL.
20132 (define_insn "avx512f_load<mode>_mask"): Delete.
20133 (define_insn "<avx512>_load<mode>_mask"): New.
20134 (define_insn "avx512f_store<mode>_mask"): Delete.
20135 (define_insn "<avx512>_store<mode>_mask"): New.
20138 2014-08-18 Yury Gribov <y.gribov@samsung.com>
20141 * asan.c (instrument_derefs): Fix bitfield check.
20143 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20145 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
20146 * config/rs6000/htm.md (ttest): Remove clobber.
20147 * config/rs6000/predicates.md (any_mask_operand): New predicate.
20148 (and_operand): Reformat.
20149 (and_2rld_operand): New predicate.
20150 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
20152 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
20153 parameter. Handle AND directly.
20154 (rs6000_split_logical_di): Remove last parameter.
20155 (rs6000_split_logical): Remove last parameter. Remove obsolete
20157 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
20158 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
20159 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
20160 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
20161 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
20162 and 5 anonymous splitters): Delete.
20163 (and<mode>3): New expander.
20164 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
20165 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
20166 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
20167 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
20168 (floatdisf2_internal1): Remove clobbers.
20169 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
20170 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
20171 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
20172 (and<mode>3 for BOOL_128): Remove clobber.
20173 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
20174 rs6000_split_logical.
20175 (*bool<mode>3_internal for BOOL_128): Adjust call of
20176 rs6000_split_logical.
20177 (*boolc<mode>3_internal1 for BOOL_128,
20178 *boolc<mode>3_internal2 for BOOL_128,
20179 *boolcc<mode>3_internal1 for BOOL_128,
20180 *boolcc<mode>3_internal2 for BOOL_128,
20181 *eqv<mode>3_internal1 for BOOL_128,
20182 *eqv<mode>3_internal2 for BOOL_128,
20183 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
20184 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
20186 (*vec_reload_and_reg_<mptrsize>): Delete.
20188 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20190 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
20191 and split, *boolccsi3_internal3 and split): Delete.
20192 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
20193 *boolccdi3_internal3 and split): Delete.
20194 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
20195 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
20197 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20199 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
20200 and split, *boolcsi3_internal3 and split): Delete.
20201 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
20202 *boolcdi3_internal3 and split): Delete.
20203 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
20205 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
20207 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
20208 <'u'>: Also support printing the low-order 16 bits.
20209 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
20210 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
20211 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
20212 *booldi3_internal3 and split): Delete.
20213 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
20214 *bool<mode>3_dot2): New.
20215 (two anonymous define_splits for non_logical_cint_operand): Merge.
20217 2014-08-17 Marek Polacek <polacek@redhat.com>
20218 Manuel López-Ibáñez <manu@gcc.gnu.org>
20221 * diagnostic.c (adjust_line): Add gcc_checking_assert.
20222 (diagnostic_show_locus): Don't print caret diagnostic
20223 if a column is larger than the line_width.
20225 2014-08-17 Roman Gareev <gareevroman@gmail.com>
20227 * common.opt: Make the ISL AST generator to be the main code generator
20230 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
20232 * wide-int.h (generic_wide_int): Declare as class instead of struct.
20234 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
20237 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
20239 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
20240 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
20241 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
20243 * config/pa/pa.md (begin_brtab): Delete insn.
20244 (end_brtab): Likewise.
20246 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
20248 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
20250 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
20252 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
20253 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
20254 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
20255 (get_dynamic_type): Remove.
20256 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
20257 (clear_speculation): Bring to ipa-deivrt.h
20258 (get_class_context): Rename to ...
20259 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
20260 (contains_type_p): Update.
20261 (get_dynamic_type): Rename to ...
20262 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
20263 (possible_polymorphic_call_targets): UPdate.
20264 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
20265 * ipa-prop.c (ipa_analyze_call_uses): Update.
20267 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
20269 * doc/invoke.texi (SH options): Document missing processor variant
20270 options. Remove references to Hitachi. Undocument deprecated mspace
20273 2014-08-15 Jason Merrill <jason@redhat.com>
20275 * tree.c (type_hash_canon): Uncomment assert.
20277 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
20279 * input.h (in_system_header_at): Add comment.
20281 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
20284 * diagnostic.c (build_message_string): Make it extern.
20285 * diagnostic.h (build_message_string): Make it extern.
20287 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
20289 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
20290 load/store from/to non-floating class pseudo.
20292 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
20294 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
20296 2014-08-15 Richard Biener <rguenther@suse.de>
20298 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
20299 (get_constraint_for_ssa_var): Remove dead code.
20300 (get_constraint_for_1): Adjust.
20301 (find_what_var_points_to): Likewise.
20302 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
20304 2014-08-15 Ilya Tocar <tocarip@gmail.com>
20307 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
20308 (_mm512_mask_cmpge_epu32_mask): Ditto.
20309 (_mm512_cmpge_epu32_mask): Ditto.
20310 (_mm512_mask_cmpge_epi64_mask): Ditto.
20311 (_mm512_cmpge_epi64_mask): Ditto.
20312 (_mm512_mask_cmpge_epu64_mask): Ditto.
20313 (_mm512_cmpge_epu64_mask): Ditto.
20314 (_mm512_mask_cmple_epi32_mask): Ditto.
20315 (_mm512_cmple_epi32_mask): Ditto.
20316 (_mm512_mask_cmple_epu32_mask): Ditto.
20317 (_mm512_cmple_epu32_mask): Ditto.
20318 (_mm512_mask_cmple_epi64_mask): Ditto.
20319 (_mm512_cmple_epi64_mask): Ditto.
20320 (_mm512_mask_cmple_epu64_mask): Ditto.
20321 (_mm512_cmple_epu64_mask): Ditto.
20322 (_mm512_mask_cmplt_epi32_mask): Ditto.
20323 (_mm512_cmplt_epi32_mask): Ditto.
20324 (_mm512_mask_cmplt_epu32_mask): Ditto.
20325 (_mm512_cmplt_epu32_mask): Ditto.
20326 (_mm512_mask_cmplt_epi64_mask): Ditto.
20327 (_mm512_cmplt_epi64_mask): Ditto.
20328 (_mm512_mask_cmplt_epu64_mask): Ditto.
20329 (_mm512_cmplt_epu64_mask): Ditto.
20330 (_mm512_mask_cmpneq_epi32_mask): Ditto.
20331 (_mm512_mask_cmpneq_epu32_mask): Ditto.
20332 (_mm512_cmpneq_epu32_mask): Ditto.
20333 (_mm512_mask_cmpneq_epi64_mask): Ditto.
20334 (_mm512_cmpneq_epi64_mask): Ditto.
20335 (_mm512_mask_cmpneq_epu64_mask): Ditto.
20336 (_mm512_cmpneq_epu64_mask): Ditto.
20337 (_mm512_castpd_ps): Ditto.
20338 (_mm512_castpd_si512): Ditto.
20339 (_mm512_castps_pd): Ditto.
20340 (_mm512_castps_si512): Ditto.
20341 (_mm512_castsi512_ps): Ditto.
20342 (_mm512_castsi512_pd): Ditto.
20343 (_mm512_castpd512_pd128): Ditto.
20344 (_mm512_castps512_ps128): Ditto.
20345 (_mm512_castsi512_si128): Ditto.
20346 (_mm512_castpd512_pd256): Ditto.
20347 (_mm512_castps512_ps256): Ditto.
20348 (_mm512_castsi512_si256): Ditto.
20349 (_mm512_castpd128_pd512): Ditto.
20350 (_mm512_castps128_ps512): Ditto.
20351 (_mm512_castsi128_si512): Ditto.
20352 (_mm512_castpd256_pd512): Ditto.
20353 (_mm512_castps256_ps512): Ditto.
20354 (_mm512_castsi256_si512): Ditto.
20355 (_mm512_cmpeq_epu32_mask): Ditto.
20356 (_mm512_mask_cmpeq_epu32_mask): Ditto.
20357 (_mm512_mask_cmpeq_epu64_mask): Ditto.
20358 (_mm512_cmpeq_epu64_mask): Ditto.
20359 (_mm512_cmpgt_epu32_mask): Ditto.
20360 (_mm512_mask_cmpgt_epu32_mask): Ditto.
20361 (_mm512_mask_cmpgt_epu64_mask): Ditto.
20362 (_mm512_cmpgt_epu64_mask): Ditto.
20363 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
20364 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
20365 * config/i386/i386.c (enum ix86_builtins): Add
20366 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
20367 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
20368 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
20369 (bdesc_args): Add __builtin_ia32_si512_256si,
20370 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
20371 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
20372 __builtin_ia32_pd512_pd.
20373 (ix86_expand_args_builtin): Handle new FTYPEs.
20374 * config/i386/sse.md (castmode): Add 512-bit modes.
20375 (AVX512MODE2P): New.
20376 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
20377 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
20379 2014-08-15 Richard Biener <rguenther@suse.de>
20381 * fold-const.c (tree_swap_operands_p): Put all constants
20382 last, also strip sign-changing NOPs when considering further
20383 canonicalization. Canonicalize also when optimizing for size.
20385 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20387 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
20388 one_match > zero_match case to just before simple_sequence.
20390 2014-08-15 Richard Biener <rguenther@suse.de>
20392 * data-streamer.h (streamer_string_index, string_for_index):
20394 * data-streamer-out.c (streamer_string_index): Make static.
20395 * data-streamer-in.c (string_for_index): Likewise.
20396 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
20397 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
20399 2014-08-15 Richard Biener <rguenther@suse.de>
20401 PR tree-optimization/62031
20402 * tree-data-ref.c (dr_analyze_indices): Do not set
20403 DR_UNCONSTRAINED_BASE.
20404 (dr_may_alias_p): All indirect accesses have to go the
20405 formerly DR_UNCONSTRAINED_BASE path.
20406 * tree-data-ref.h (struct indices): Remove
20407 unconstrained_base member.
20408 (DR_UNCONSTRAINED_BASE): Remove.
20410 2014-08-15 Jakub Jelinek <jakub@redhat.com>
20412 PR middle-end/62092
20413 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
20414 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
20415 in OMP_CLAUSE_MAP in some outer target region.
20417 2014-08-15 Bin Cheng <bin.cheng@arm.com>
20419 * tree-ssa-loop-ivopts.c (ivopts_data): New field
20420 name_expansion_cache.
20421 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
20422 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
20423 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
20424 (difference_cannot_overflow_p): New parameter. Use affine
20425 expansion for equality check.
20426 (iv_elimination_compare_lt): Pass new argument.
20428 2014-08-14 DJ Delorie <dj@redhat.com>
20430 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
20431 variables to the accumulator.
20433 * config/rl78/predicates.md (rl78_near_mem_operand): New.
20434 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
20435 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
20436 with far-far moves.
20438 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
20439 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
20440 (umulqihi3_virt): Likewise.
20441 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
20442 (umulqihi3_real): Likewise.
20444 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
20446 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
20448 PR tree-optimization/62091
20449 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
20450 function_entry_reached.
20451 (walk_aliased_vdefs): Clear it here.
20452 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
20454 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
20456 * ipa-utils.h (compare_virtual_tables): Declare.
20457 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
20459 2014-08-14 Marek Polacek <polacek@redhat.com>
20462 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
20463 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
20465 2014-08-14 Tom de Vries <tom@codesourcery.com>
20467 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
20469 2014-08-14 Tom de Vries <tom@codesourcery.com>
20471 PR rtl-optimization/62004
20472 PR rtl-optimization/62030
20473 * ifcvt.c (rtx_interchangeable_p): New function.
20474 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
20475 * emit-rtl.h (mem_attrs_eq_p): Declare.
20477 2014-08-14 Roman Gareev <gareevroman@gmail.com>
20479 * graphite-scop-detection.c:
20480 Add inclusion of cp-tree.h.
20481 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
20482 in case they are pointers to object types
20484 2014-08-14 Richard Biener <rguenther@suse.de>
20486 * BASE-VER: Change to 5.0.0
20488 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
20489 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20490 Anna Tikhonova <anna.tikhonova@intel.com>
20491 Ilya Tocar <ilya.tocar@intel.com>
20492 Andrey Turetskiy <andrey.turetskiy@intel.com>
20493 Ilya Verbin <ilya.verbin@intel.com>
20494 Kirill Yukhin <kirill.yukhin@intel.com>
20495 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20497 * config/i386/sse.md (define_mode_attr avx512): New.
20498 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
20500 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
20501 (define_mode_attr ssse3_avx2): Ditto.
20502 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
20503 (define_mode_attr avx2_avx512bw): New.
20504 (define_mode_attr ssedoublemodelower): New.
20505 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
20506 V32HI, V64QI modes.
20507 (define_mode_attr ssebytemode): Allow V8DI modes.
20508 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
20509 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
20510 (define_mode_attr ssePSmode2): New.
20511 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
20512 V16HI, V32HI modes.
20513 (define_mode_attr dbpsadbwmode): New.
20514 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
20515 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
20516 (vi8_sse4_1_avx2_avx512): New.
20517 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
20519 (define_mode_attr blendbits): Move before its immediate use.
20521 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
20522 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20523 Anna Tikhonova <anna.tikhonova@intel.com>
20524 Ilya Tocar <ilya.tocar@intel.com>
20525 Andrey Turetskiy <andrey.turetskiy@intel.com>
20526 Ilya Verbin <ilya.verbin@intel.com>
20527 Kirill Yukhin <kirill.yukhin@intel.com>
20528 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20530 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
20531 * config/i386/subst.md
20532 (define_mode_iterator SUBST_V): Update.
20533 (define_mode_iterator SUBST_A): Ditto.
20534 (define_subst_attr "mask_operand7"): New.
20535 (define_subst_attr "mask_operand10"): New.
20536 (define_subst_attr "mask_operand_arg34") : New.
20537 (define_subst_attr "mask_expand_op3"): New.
20538 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
20539 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
20540 (define_subst_attr "mask_avx512vl_condition"): New.
20541 (define_subst_attr "round_mask_operand4"): Ditto.
20542 (define_subst_attr "round_mask_scalar_op3"): Delete.
20543 (define_subst_attr "round_mask_op4"): New.
20544 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
20546 (define_subst_attr "round_modev8sf_condition"): New.
20547 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
20549 (define_subst_attr "round_saeonly_mask_operand4"): New.
20550 (define_subst_attr "round_saeonly_mask_op4"): New.
20551 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
20552 V8DImode, V16SImode.
20553 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
20554 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
20555 (define_subst_attr "mask_expand4_args"): New.
20556 (define_subst "mask_expand4"): New.
20558 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
20559 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20560 Anna Tikhonova <anna.tikhonova@intel.com>
20561 Ilya Tocar <ilya.tocar@intel.com>
20562 Andrey Turetskiy <andrey.turetskiy@intel.com>
20563 Ilya Verbin <ilya.verbin@intel.com>
20564 Kirill Yukhin <kirill.yukhin@intel.com>
20565 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20567 * config/i386/i386.md
20568 (define_attr "isa"): Add avx512bw,noavx512bw.
20569 (define_attr "enabled"): Ditto.
20570 (define_split): Add 32/64-bit mask logic.
20571 (define_insn "*k<logic>qi"): New.
20572 (define_insn "*k<logic>hi"): New.
20573 (define_insn "*anddi_1"): Add mask version.
20574 (define_insn "*andsi_1"): Ditto.
20575 (define_insn "*<code><mode>_1"): Ditto.
20576 (define_insn "*<code>hi_1"): Ditto.
20577 (define_insn "kxnor<mode>"): New.
20578 (define_insn "kunpcksi"): New.
20579 (define_insn "kunpckdi"): New.
20580 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
20581 (define_insn "*one_cmplhi2_1"): Ditto.
20583 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
20584 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20585 Anna Tikhonova <anna.tikhonova@intel.com>
20586 Ilya Tocar <ilya.tocar@intel.com>
20587 Andrey Turetskiy <andrey.turetskiy@intel.com>
20588 Ilya Verbin <ilya.verbin@intel.com>
20589 Kirill Yukhin <kirill.yukhin@intel.com>
20590 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20592 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
20595 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
20596 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20597 Anna Tikhonova <anna.tikhonova@intel.com>
20598 Ilya Tocar <ilya.tocar@intel.com>
20599 Andrey Turetskiy <andrey.turetskiy@intel.com>
20600 Ilya Verbin <ilya.verbin@intel.com>
20601 Kirill Yukhin <kirill.yukhin@intel.com>
20602 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20604 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
20606 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
20607 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
20608 xmm/ymm16+ when availble.
20609 * config/i386/i386.h
20610 (HARD_REGNO_NREGS): Add mask regs.
20611 (VALID_AVX512F_REG_MODE): Ditto.
20612 (VALID_AVX512F_REG_MODE) : Define.
20613 (VALID_MASK_AVX512BW_MODE): Ditto.
20614 (reg_class) (MASK_REG_P(X)): Define.
20615 * config/i386/i386.md: Do not split long moves with mask register,
20616 use kmovb if avx512bw is availible.
20617 (movdi_internal): Handle mask registers.
20619 2014-08-14 Richard Biener <rguenther@suse.de>
20621 PR tree-optimization/62081
20622 * tree-ssa-loop.c (pass_fix_loops): New pass.
20623 (pass_tree_loop::gate): Do not fixup loops here.
20624 * tree-pass.h (make_pass_fix_loops): Declare.
20625 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
20627 2014-08-14 Richard Biener <rguenther@suse.de>
20629 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
20630 (type_hash_canon): ... this and avoid 2nd lookup for the add.
20632 2014-08-14 Richard Biener <rguenther@suse.de>
20634 PR tree-optimization/62090
20635 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
20636 (fold_builtin_2): Do not fold sprintf.
20637 (fold_builtin_3): Likewise.
20638 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
20639 moved from builtins.c.
20640 (gimple_fold_builtin): Fold sprintf.
20642 2014-08-14 Richard Biener <rguenther@suse.de>
20644 PR rtl-optimization/62079
20645 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
20648 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
20650 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
20651 current_function_decl.
20653 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
20655 * cgraph.c (cgraph_node::function_symbol): Fix wrong
20656 cgraph_function_node to cgraph_node::function_symbol
20659 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
20661 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
20662 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
20664 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
20666 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
20669 2014-08-13 Roman Gareev <gareevroman@gmail.com>
20671 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
20674 2014-08-12 Jakub Jelinek <jakub@redhat.com>
20677 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
20678 any registers that are used in mem_insn.
20680 2014-08-12 Steve Ellcey <sellcey@mips.com>
20682 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
20684 2014-08-12 Steve Ellcey <sellcey@mips.com>
20686 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
20687 (MULTILIB_DIRNAMES): Ditto.
20688 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
20689 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
20690 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
20691 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
20692 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
20693 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
20695 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20698 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
20699 of __ARM_SIZEOF_WCHAR_T.
20701 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20704 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
20705 Remove unnecessary attributes.
20707 2014-08-12 Yury Gribov <y.gribov@samsung.com>
20709 * internal-fn.c (init_internal_fns): Fix off-by-one.
20711 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
20712 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20713 Anna Tikhonova <anna.tikhonova@intel.com>
20714 Ilya Tocar <ilya.tocar@intel.com>
20715 Andrey Turetskiy <andrey.turetskiy@intel.com>
20716 Ilya Verbin <ilya.verbin@intel.com>
20717 Kirill Yukhin <kirill.yukhin@intel.com>
20718 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20720 * config/i386/i386.c (standard_sse_constant_opcode): Use
20721 vpxord/vpternlog if avx512 is availible.
20723 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
20725 PR middle-end/62103
20726 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
20727 bitfields, that is when size doesn't match the size of type or the
20728 size of the constructor.
20730 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20732 * config/rs6000/constraints.md (wh constraint): New constraint,
20733 for FP registers if direct move is available.
20734 (wi constraint): New constraint, for VSX/FP registers that can
20735 handle 64-bit integers.
20736 (wj constraint): New constraint for VSX/FP registers that can
20737 handle 64-bit integers for direct moves.
20738 (wk constraint): New constraint for VSX/FP registers that can
20739 handle 64-bit doubles for direct moves.
20740 (wy constraint): Make documentation match implementation.
20742 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
20743 scalar_in_vmx_p field to simplify tests of whether SFmode or
20744 DFmode can go in the Altivec registers.
20745 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
20746 (rs6000_setup_reg_addr_masks): Likewise.
20747 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
20748 field, and wh/wi/wj/wk constraints.
20749 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
20750 the wh/wi/wj/wk constraints.
20751 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
20752 upper registers, prefer VSX registers unless the operation is a
20753 memory operation with REG+OFFSET addressing.
20755 * config/rs6000/vsx.md (VSr mode attribute): Add support for
20756 DImode. Change SFmode to use ww constraint instead of d to allow
20757 SF registers in the upper registers.
20760 (VSr5): Fix thinko in comment.
20761 (VSa): New mode attribute that is an alternative to wa, that
20762 returns the VSX register class that a mode can go in, but may not
20763 be the preferred register class.
20764 (VS_64dm): New mode attribute for appropriate register classes for
20765 referencing 64-bit elements of vectors for direct moves and normal
20767 (VS_64reg): Likewise.
20768 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
20769 register allocator to only registers the data type can handle.
20770 (vsx_le_perm_load_<mode>): Likewise.
20771 (vsx_le_perm_store_<mode>): Likewise.
20772 (vsx_xxpermdi2_le_<mode>): Likewise.
20773 (vsx_xxpermdi4_le_<mode>): Likewise.
20774 (vsx_lxvd2x2_le_<mode>): Likewise.
20775 (vsx_lxvd2x4_le_<mode>): Likewise.
20776 (vsx_stxvd2x2_le_<mode>): Likewise.
20777 (vsx_add<mode>3): Likewise.
20778 (vsx_sub<mode>3): Likewise.
20779 (vsx_mul<mode>3): Likewise.
20780 (vsx_div<mode>3): Likewise.
20781 (vsx_tdiv<mode>3_internal): Likewise.
20782 (vsx_fre<mode>2): Likewise.
20783 (vsx_neg<mode>2): Likewise.
20784 (vsx_abs<mode>2): Likewise.
20785 (vsx_nabs<mode>2): Likewise.
20786 (vsx_smax<mode>3): Likewise.
20787 (vsx_smin<mode>3): Likewise.
20788 (vsx_sqrt<mode>2): Likewise.
20789 (vsx_rsqrte<mode>2): Likewise.
20790 (vsx_tsqrt<mode>2_internal): Likewise.
20791 (vsx_fms<mode>4): Likewise.
20792 (vsx_nfma<mode>4): Likewise.
20793 (vsx_eq<mode>): Likewise.
20794 (vsx_gt<mode>): Likewise.
20795 (vsx_ge<mode>): Likewise.
20796 (vsx_eq<mode>_p): Likewise.
20797 (vsx_gt<mode>_p): Likewise.
20798 (vsx_ge<mode>_p): Likewise.
20799 (vsx_xxsel<mode>): Likewise.
20800 (vsx_xxsel<mode>_uns): Likewise.
20801 (vsx_copysign<mode>3): Likewise.
20802 (vsx_float<VSi><mode>2): Likewise.
20803 (vsx_floatuns<VSi><mode>2): Likewise.
20804 (vsx_fix_trunc<mode><VSi>2): Likewise.
20805 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
20806 (vsx_x<VSv>r<VSs>i): Likewise.
20807 (vsx_x<VSv>r<VSs>ic): Likewise.
20808 (vsx_btrunc<mode>2): Likewise.
20809 (vsx_b2trunc<mode>2): Likewise.
20810 (vsx_floor<mode>2): Likewise.
20811 (vsx_ceil<mode>2): Likewise.
20812 (vsx_<VS_spdp_insn>): Likewise.
20813 (vsx_xscvspdp): Likewise.
20814 (vsx_xvcvspuxds): Likewise.
20815 (vsx_float_fix_<mode>2): Likewise.
20816 (vsx_set_<mode>): Likewise.
20817 (vsx_extract_<mode>_internal1): Likewise.
20818 (vsx_extract_<mode>_internal2): Likewise.
20819 (vsx_extract_<mode>_load): Likewise.
20820 (vsx_extract_<mode>_store): Likewise.
20821 (vsx_splat_<mode>): Likewise.
20822 (vsx_xxspltw_<mode>): Likewise.
20823 (vsx_xxspltw_<mode>_direct): Likewise.
20824 (vsx_xxmrghw_<mode>): Likewise.
20825 (vsx_xxmrglw_<mode>): Likewise.
20826 (vsx_xxsldwi_<mode>): Likewise.
20827 (vsx_xscvdpspn): Tighten constraints to only use register classes
20829 (vsx_xscvspdpn): Likewise.
20830 (vsx_xscvdpspn_scalar): Likewise.
20832 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
20833 wj, and wk constraints.
20834 (GPR_REG_CLASS_P): New helper macro for register classes targeting
20835 general purpose registers.
20837 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
20839 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
20840 DImode instead of wm. Use wk constraint for direct move of DFmode
20842 (extendsidi2_lfiwax): Likewise.
20843 (lfiwax): Likewise.
20844 (lfiwzx): Likewise.
20845 (movdi_internal64): Likewise.
20847 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
20848 wk constraints. Make the wy constraint documentation match them
20851 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
20853 Replacement of isl_int by isl_val
20854 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
20855 (compute_bounds_for_param): use isl_val instead of isl_int
20856 (compute_bounds_for_loop): likewise
20857 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
20858 (build_linearized_memory_access): use isl_val instead of isl_int
20859 (pdr_stride_in_loop): likewise
20860 * graphite-optimize-isl.c:
20861 (getPrevectorMap): use isl_val instead of isl_int
20863 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
20864 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
20865 (extern the_isl_ctx): declare
20866 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
20867 (extract_affine_gmp): likewise
20869 (build_loop_iteration_domains): likewise
20870 (add_param_constraints): likewise
20872 2014-08-11 Richard Biener <rguenther@suse.de>
20874 PR tree-optimization/62075
20875 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
20876 handle uses in patterns.
20878 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
20879 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20880 Anna Tikhonova <anna.tikhonova@intel.com>
20881 Ilya Tocar <ilya.tocar@intel.com>
20882 Andrey Turetskiy <andrey.turetskiy@intel.com>
20883 Ilya Verbin <ilya.verbin@intel.com>
20884 Kirill Yukhin <kirill.yukhin@intel.com>
20885 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20887 * common/config/i386/i386-common.c
20888 (OPTION_MASK_ISA_AVX512VL_SET): Define.
20889 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
20890 (ix86_handle_option): Handle OPT_mavx512vl.
20891 * config/i386/cpuid.h (bit_AVX512VL): Define.
20892 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
20893 set -mavx512vl accordingly.
20894 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20895 OPTION_MASK_ISA_AVX512VL.
20896 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
20897 (ix86_option_override_internal): Define PTA_AVX512VL, handle
20898 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
20899 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
20900 * config/i386/i386.h (TARGET_AVX512VL): Define.
20901 (TARGET_AVX512VL_P(x)): Ditto.
20902 * config/i386/i386.opt: Add mavx512vl.
20904 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
20906 PR tree-optimization/62073
20907 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
20910 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
20911 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
20912 Anna Tikhonova <anna.tikhonova@intel.com>
20913 Ilya Tocar <ilya.tocar@intel.com>
20914 Andrey Turetskiy <andrey.turetskiy@intel.com>
20915 Ilya Verbin <ilya.verbin@intel.com>
20916 Kirill Yukhin <kirill.yukhin@intel.com>
20917 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
20919 * common/config/i386/i386-common.c
20920 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
20921 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
20922 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
20923 (ix86_handle_option): Handle OPT_mavx512bw.
20924 * config/i386/cpuid.h (bit_AVX512BW): Define.
20925 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
20926 set -mavx512bw accordingly.
20927 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20928 OPTION_MASK_ISA_AVX512BW.
20929 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
20930 (ix86_option_override_internal): Define PTA_AVX512BW, handle
20931 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
20932 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
20933 * config/i386/i386.h (TARGET_AVX512BW): Define.
20934 (TARGET_AVX512BW_P(x)): Ditto.
20935 * config/i386/i386.opt: Add mavx512bw.
20937 2014-08-11 Richard Biener <rguenther@suse.de>
20939 PR tree-optimization/62070
20940 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
20941 Remove SSA checking.
20943 2014-08-11 Yury Gribov <y.gribov@samsung.com>
20945 * asan.c (asan_check_flags): New enum.
20946 (build_check_stmt_with_calls): Removed function.
20947 (build_check_stmt): Split inlining logic to
20948 asan_expand_check_ifn.
20949 (instrument_derefs): Rename parameter.
20950 (instrument_mem_region_access): Rename parameter.
20951 (instrument_strlen_call): Likewise.
20952 (asan_expand_check_ifn): New function.
20953 (asan_instrument): Remove old code.
20954 (pass_sanopt::execute): Change handling of
20955 asan-instrumentation-with-call-threshold.
20956 (asan_clear_shadow): Fix formatting.
20957 (asan_function_start): Likewise.
20958 (asan_emit_stack_protection): Likewise.
20959 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
20960 Update description.
20961 * internal-fn.c (expand_ASAN_CHECK): New function.
20962 * internal-fn.def (ASAN_CHECK): New internal function.
20963 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
20964 Update description.
20965 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
20966 * tree.c: Small comment fix.
20968 2014-08-11 Yury Gribov <y.gribov@samsung.com>
20970 * gimple.c (gimple_call_fnspec): Support internal functions.
20971 (gimple_call_return_flags): Use const.
20972 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
20973 * internal-fn.def: Add fnspec information.
20974 * internal-fn.h (internal_fn_fnspec): New function.
20975 (init_internal_fns): Declare new function.
20976 * internal-fn.c (internal_fn_fnspec_array): New global variable.
20977 (init_internal_fns): New function.
20978 * tree-core.h: Update macro call.
20979 * tree.c (build_common_builtin_nodes): Initialize internal fns.
20981 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
20983 * lto-streamer.h (struct output_block::symbol): Change from
20984 struct symtab_node to plain symtab_node.
20985 (referenced_from_this_partition_p): Change first parameter
20986 from struct symtab_node to plain symtab_node.
20988 2014-08-10 Marek Polacek <polacek@redhat.com>
20991 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
20993 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
20995 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
20996 DECL correctly; do not give up on types in static storage.
20998 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
21000 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
21002 2014-08-09 Roman Gareev <gareevroman@gmail.com>
21004 * graphite-isl-ast-to-gimple.c:
21005 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
21007 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
21009 2014-08-08 Guozhi Wei <carrot@google.com>
21011 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
21013 2014-08-08 Cary Coutant <ccoutant@google.com>
21015 * dwarf2out.c (get_skeleton_type_unit): Remove.
21016 (output_skeleton_debug_sections): Remove skeleton type units.
21017 (output_comdat_type_unit): Likewise.
21018 (dwarf2out_finish): Likewise.
21020 2014-08-07 Yi Yang <ahyangyi@google.com>
21022 * predict.c (expr_expected_value_1): Remove the redundant assignment.
21024 2014-08-08 Richard Biener <rguenther@suse.de>
21026 * lto-streamer.h (struct lto_input_block): Make it a class
21027 with a constructor.
21028 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
21029 (struct lto_function_header, struct lto_simple_header,
21030 struct lto_simple_header_with_strings,
21031 struct lto_decl_header, struct lto_function_header): Make
21032 a simple inheritance hieararchy. Remove unused fields.
21033 (struct lto_asm_header): Remove.
21034 * lto-streamer-out.c (produce_asm): Adjust.
21035 (lto_output_toplevel_asms): Likewise.
21036 (produce_asm_for_decls): Likewise.
21037 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
21038 * data-streamer-in.c (string_for_index): Likewise.
21039 * ipa-inline-analysis.c (inline_read_section): Likewise.
21040 * ipa-prop.c (ipa_prop_read_section): Likewise.
21041 (read_replacements_section): Likewise.
21042 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
21043 * lto-section-in.c (lto_create_simple_input_block): Likewise.
21044 (lto_destroy_simple_input_block): Likewise.
21045 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
21046 (lto_input_toplevel_asms): Likewise.
21048 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
21049 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
21050 Anna Tikhonova <anna.tikhonova@intel.com>
21051 Ilya Tocar <ilya.tocar@intel.com>
21052 Andrey Turetskiy <andrey.turetskiy@intel.com>
21053 Ilya Verbin <ilya.verbin@intel.com>
21054 Kirill Yukhin <kirill.yukhin@intel.com>
21055 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
21057 * common/config/i386/i386-common.c
21058 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
21059 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
21060 (ix86_handle_option): Handle OPT_mavx512dq.
21061 * config/i386/cpuid.h (bit_AVX512DQ): Define.
21062 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
21063 set -mavx512dq accordingly.
21064 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
21065 OPTION_MASK_ISA_AVX512DQ.
21066 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
21067 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
21068 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
21069 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
21070 * config/i386/i386.h (TARGET_AVX512DQ): Define.
21071 (TARGET_AVX512DQ_P(x)): Ditto.
21072 * config/i386/i386.opt: Add mavx512dq.
21074 2014-08-08 Richard Biener <rguenther@suse.de>
21076 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
21077 target_percent, target_percent_s): Export.
21078 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
21079 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
21080 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
21081 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
21082 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
21083 Move to gimple-fold.c.
21084 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
21086 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
21087 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
21088 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
21089 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
21090 (rewrite_call_expr_array): Remove.
21091 (fold_builtin_sprintf_chk): Likewise.
21092 (fold_builtin_snprintf_chk): Likewise.
21093 (fold_builtin_varargs): Remove handling of sprintf_chk,
21094 vsprintf_chk, snprintf_chk and vsnprintf_chk.
21095 (gimple_fold_builtin_sprintf_chk): Remove.
21096 (gimple_fold_builtin_snprintf_chk): Likewise.
21097 (gimple_fold_builtin_varargs): Likewise.
21098 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
21099 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
21100 * gimple.c (gimple_seq_add_seq_without_update): New function.
21101 * gimple.h (gimple_seq_add_seq_without_update): Declare.
21102 * gimple-fold.c: Include output.h.
21103 (gsi_replace_with_seq_vops): New function, split out from ...
21104 (gimplify_and_update_call_from_tree): ... here.
21105 (replace_call_with_value): New function.
21106 (replace_call_with_call_and_fold): Likewise.
21107 (var_decl_component_p): Moved from builtins.c.
21108 (gimple_fold_builtin_memory_op): Moved from builtins.c
21109 fold_builtin_memory_op and rewritten to GIMPLE.
21110 (gimple_fold_builtin_memset): Likewise.
21111 (gimple_fold_builtin_strcpy): Likewise.
21112 (gimple_fold_builtin_strncpy): Likewise.
21113 (gimple_fold_builtin_strcat): Likewise.
21114 (gimple_fold_builtin_fputs): Likewise.
21115 (gimple_fold_builtin_memory_chk): Likewise.
21116 (gimple_fold_builtin_stxcpy_chk): Likewise.
21117 (gimple_fold_builtin_stxncpy_chk): Likewise.
21118 (gimple_fold_builtin_snprintf_chk): Likewise.
21119 (gimple_fold_builtin_sprintf_chk): Likewise.
21120 (gimple_fold_builtin_strlen): New function.
21121 (gimple_fold_builtin_with_strlen): New function split out from
21122 gimple_fold_builtin.
21123 (gimple_fold_builtin): Change signature and handle
21124 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
21125 here. Call gimple_fold_builtin_with_strlen.
21126 (gimple_fold_call): Adjust.
21128 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
21130 * calls.c (precompute_arguments): Check
21131 promoted_for_signed_and_unsigned_p and set the promoted mode.
21132 (promoted_for_signed_and_unsigned_p): New function.
21133 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
21134 and set the promoted mode.
21135 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
21136 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
21137 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
21140 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
21142 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
21143 instead of SUBREG_PROMOTED_UNSIGNED_SET.
21144 (expand_call): Likewise.
21145 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
21146 to get promoted mode.
21147 * combine.c (record_promoted_value): Skip > 0 comparison with
21148 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
21149 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
21150 of SUBREG_PROMOTED_UNSIGNED_P.
21151 (convert_modes): Likewise.
21152 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
21153 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
21154 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
21155 SUBREG_PROMOTED_UNSIGNED_SET.
21156 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
21157 instead of SUBREG_PROMOTED_UNSIGNED_SET.
21158 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
21159 SUBREG_PROMOTED_SET.
21160 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
21161 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
21162 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
21163 of SUBREG_PROMOTED_UNSIGNED_P.
21164 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
21165 (SUBREG_PROMOTED_SET): New define.
21166 (SUBREG_PROMOTED_GET): Likewise.
21167 (SUBREG_PROMOTED_SIGN): Likewise.
21168 (SUBREG_PROMOTED_SIGNED_P): Likewise.
21169 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
21170 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
21171 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
21172 instead of SUBREG_PROMOTED_UNSIGNED_GET.
21173 (nonzero_bits1): Skip > 0 comparison with the results as
21174 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
21175 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
21176 of !SUBREG_PROMOTED_UNSIGNED_P.
21177 * simplify-rtx.c (simplify_unary_operation_1): Use new
21178 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
21179 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
21180 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
21181 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
21183 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
21185 * ipa-devirt.c: Include gimple-pretty-print.h
21186 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
21188 (decl_maybe_in_construction_p): Fix conditional on cdtor check
21189 (get_polymorphic_call_info): Fix return value
21190 (type_change_info): New sturcture based on ipa-prop
21192 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
21193 based on ipa-prop variant.
21194 (extr_type_from_vtbl_ptr_store): New function
21195 based on ipa-prop variant.
21196 (record_known_type): New function.
21197 (check_stmt_for_type_change): New function.
21198 (get_dynamic_type): New function.
21199 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
21200 * tree-ssa-pre.c: ipa-utils.h
21201 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
21202 machinery; sanity check with ipa-prop devirtualization.
21203 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
21206 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
21208 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
21209 * alias.c, cfgexpand.c, cgraphbuild.c,
21210 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
21211 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
21212 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
21213 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
21214 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
21215 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
21216 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
21217 dse.c, except.c, gengtype.c, gimple-expr.c,
21218 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
21219 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
21220 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
21221 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
21222 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
21223 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
21225 * pointer-set.c: Remove file.
21226 * pointer-set.h: Remove file.
21228 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21230 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
21231 * config/arm/types.md (f_sels, f_seld): Delete.
21233 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21235 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
21236 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
21237 (aarch64_movdi_<mode>high): Likewise.
21238 (aarch64_mov<mode>high_di): Likewise.
21239 (aarch64_movdi_<mode>low): Likewise.
21240 (aarch64_mov<mode>low_di): Likewise.
21241 (aarch64_movtilow_tilow): Likewise.
21242 Add comment explaining usage of fp,simd attributes and of
21243 TARGET_FLOAT and TARGET_SIMD.
21245 2014-08-07 Ian Bolton <ian.bolton@arm.com>
21246 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21248 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
21249 Use MOVN when one of the half-words is 0xffff.
21251 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
21253 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
21255 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21257 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
21258 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
21259 (rfs_str): String corresponding to RFS_* constants.
21260 (rank_for_schedule_stats_t): New typedef.
21261 (rank_for_schedule_stats): New static variable.
21262 (rfs_result): New static function.
21263 (rank_for_schedule): Track statistics for deciding heuristics.
21264 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
21266 (ready_sort): Use them for debug printouts.
21267 (schedule_block): Init statistics state. Print statistics on
21268 rank_for_schedule decisions.
21270 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
21272 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
21274 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
21276 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
21279 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
21281 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
21282 function to not conflict.
21283 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
21284 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
21285 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
21286 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
21287 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
21290 2014-08-07 Marek Polacek <polacek@redhat.com>
21292 * fold-const.c (fold_binary_loc): Add folding of
21293 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
21295 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
21297 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
21298 instead of type size.
21299 (ASM_FINISH_DECLARE_OBJECT): Likewise.
21301 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
21303 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
21304 (*thumb1_movqi_insn): Likewise.
21305 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
21307 2014-08-07 Tom de Vries <tom@codesourcery.com>
21309 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
21310 (glibc_2_11_or_earlier): Remove effective-target keywords.
21312 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
21314 * config/arm/arm.c (bdesc_2arg): Fix typo.
21315 (arm_atomic_assign_expand_fenv): Remove The default implementation.
21317 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
21319 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
21321 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
21324 * haifa-sched.c (advance_one_cycle): Fix dump.
21325 (schedule_block): Don't advance cycle if we are already at the
21326 beginning of the cycle.
21328 2014-08-06 Martin Jambor <mjambor@suse.cz>
21331 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
21333 2014-08-06 Richard Biener <rguenther@suse.de>
21336 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
21338 (lto_input_tree): Pop SCCs here.
21340 2014-08-06 Richard Biener <rguenther@suse.de>
21342 PR tree-optimization/61320
21343 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
21344 handle misaligned loads.
21346 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
21348 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
21349 (aarch64_expand_vec_perm_const): Check for dup before zip.
21351 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21353 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
21354 CONST_INT_P instead of GET_CODE and compare.
21355 (aarch64_select_cc_mode): Likewise.
21356 (aarch64_print_operand): Likewise.
21357 (aarch64_rtx_costs): Likewise.
21358 (aarch64_simd_valid_immediate): Likewise.
21359 (aarch64_simd_check_vect_par_cnst_half): Likewise.
21360 (aarch64_simd_emit_pair_result_insn): Likewise.
21362 2014-08-05 David Malcolm <dmalcolm@redhat.com>
21364 * gdbhooks.py (find_gcc_source_dir): New helper function.
21365 (class PassNames): New class, locating and parsing passes.def.
21366 (class BreakOnPass): New command "break-on-pass".
21368 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
21370 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
21373 2014-08-05 Richard Biener <rguenther@suse.de>
21375 PR rtl-optimization/61672
21376 * emit-rtl.h (mem_attrs_eq_p): Declare.
21377 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
21378 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
21379 * cfgcleanup.c (merge_memattrs): Likewise.
21380 Include emit-rtl.h.
21382 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21384 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
21385 rather than singleton vectors.
21386 (vqdmlsls_lane_s32): Likewise.
21388 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21390 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
21391 Use VSDQ_HSI mode iterator.
21392 (aarch64_sqrdmulh_laneq<mode>): Likewise.
21393 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
21394 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
21395 Use BUILTIN_VDQHS macro.
21396 (sqrdmulh_laneq): Likewise.
21397 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
21398 (vqdmlals_laneq_s32): Likewise.
21399 (vqdmlslh_laneq_s16): Likewise.
21400 (vqdmlsls_laneq_s32): Likewise.
21401 (vqdmulhh_laneq_s16): Likewise.
21402 (vqdmulhs_laneq_s32): Likewise.
21403 (vqrdmulhh_laneq_s16): Likewise.
21404 (vqrdmulhs_laneq_s32): Likewise.
21406 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21408 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
21409 (vmuld_laneq_f64): Likewise.
21410 (vmuls_laneq_f32): Likewise.
21411 (vmul_n_f64): Likewise.
21412 (vmuld_lane_f64): Reimplement in C.
21413 (vmuls_lane_f32): Likewise.
21415 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21417 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
21419 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
21421 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21423 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
21424 (rbitsi2): Likewise.
21425 (*arm_rev): Set predicable and predicable_short_it attributes.
21427 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21429 * convert.c (convert_to_integer): Guard transformation to lrint by
21432 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
21434 * config/aarch64/aarch64-builtins.c
21435 (aarch64_simd_builtin_type_mode): Delete.
21436 (v8qi_UP): Remap to V8QImode.
21437 (v4hi_UP): Remap to V4HImode.
21438 (v2si_UP): Remap to V2SImode.
21439 (v2sf_UP): Remap to V2SFmode.
21440 (v1df_UP): Remap to V1DFmode.
21441 (di_UP): Remap to DImode.
21442 (df_UP): Remap to DFmode.
21443 (v16qi_UP):V16QImode.
21444 (v8hi_UP): Remap to V8HImode.
21445 (v4si_UP): Remap to V4SImode.
21446 (v4sf_UP): Remap to V4SFmode.
21447 (v2di_UP): Remap to V2DImode.
21448 (v2df_UP): Remap to V2DFmode.
21449 (ti_UP): Remap to TImode.
21450 (ei_UP): Remap to EImode.
21451 (oi_UP): Remap to OImode.
21452 (ci_UP): Map to CImode.
21453 (xi_UP): Remap to XImode.
21454 (si_UP): Remap to SImode.
21455 (sf_UP): Remap to SFmode.
21456 (hi_UP): Remap to HImode.
21457 (qi_UP): Remap to QImode.
21458 (aarch64_simd_builtin_datum): Make mode a machine_mode.
21459 (VAR1): Build builtin name.
21460 (aarch64_init_simd_builtins): Remove dead code.
21462 2014-08-05 Roman Gareev <gareevroman@gmail.com>
21464 * graphite-isl-ast-to-gimple.c:
21465 (set_options): New function.
21466 (scop_to_isl_ast): Add calling of set_options.
21468 2014-08-05 Jakub Jelinek <jakub@redhat.com>
21470 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
21471 (analyze_iv_to_split_insn): Don't initialize them.
21472 (get_ivts_expr): Removed.
21473 (allocate_basic_variable, insert_base_initialization): Use
21474 SET_SRC instead of *get_ivts_expr.
21475 (split_iv): Use &SET_SRC instead of get_ivts_expr.
21477 2014-08-05 Roman Gareev <gareevroman@gmail.com>
21479 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
21480 (translate_isl_ast_for_loop): Add checking of the
21481 flag_loop_parallelize_all.
21482 (ast_build_before_for): New function.
21483 (scop_to_isl_ast): Add checking of the
21484 flag_loop_parallelize_all.
21485 * graphite-dependences.c: Move the defenition of the
21486 scop_get_dependences from graphite-optimize-isl.c to this file.
21487 (apply_schedule_on_deps): Add checking of the ux's emptiness.
21488 (carries_deps): Add checking of the x's value.
21489 * graphite-optimize-isl.c: Move the defenition of the
21490 scop_get_dependences to graphite-dependences.c.
21491 * graphite-poly.h: Add declarations of scop_get_dependences
21494 2014-08-04 Rohit <rohitarulraj@freescale.com>
21497 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
21499 (alt_reg_names): Likewise.
21500 (rs6000_dwarf_register_span): For SPE high registers, replace
21501 dwarf register numbers with GCC hard register numbers.
21502 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
21503 (rs6000_dbx_register_number): For SPE high registers, return dwarf
21504 register number for the corresponding GCC hard register number.
21505 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
21506 newly added GCC hard register numbers for SPE high registers.
21507 (DWARF_FRAME_REGISTERS): Likewise.
21508 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
21509 (DWARF_FRAME_REGNUM): Likewise.
21510 (FIXED_REGISTERS): Likewise.
21511 (CALL_USED_REGISTERS): Likewise.
21512 (CALL_REALLY_USED_REGISTERS): Likewise.
21513 (REG_ALLOC_ORDER): Likewise.
21514 (enum reg_class): Likewise.
21515 (REG_CLASS_NAMES): Likewise.
21516 (REG_CLASS_CONTENTS): Likewise.
21517 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
21519 2014-08-04 Richard Biener <rguenther@suse.de>
21521 * gimple-fold.h (gimple_fold_builtin): Remove.
21522 * gimple-fold.c (gimple_fold_builtin): Make static.
21523 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
21524 fold_stmt, not gimple_fold_builtin.
21526 2014-08-04 Martin Liska <mliska@suse.cz>
21528 * cgraph.h (csi_end_p): Removed.
21529 (csi_next): Likewise.
21530 (csi_node): Likewise.
21531 (csi_start): Likewise.
21532 (cgraph_node_in_set_p): Likewise.
21533 (cgraph_node_set_size): Likewise.
21534 (vsi_end_p): Likewise.
21535 (vsi_next): Likewise.
21536 (vsi_node): Likewise.
21537 (vsi_start): Likewise.
21538 (varpool_node_set_size): Likewise.
21539 (cgraph_node_set_nonempty_p): Likewise.
21540 (varpool_node_set_nonempty_p): Likewise.
21541 * cgraphunit.c (cgraph_process_new_functions): vec replaces
21543 * ipa-inline-transform.c: Likewise.
21544 * ipa-utils.c (cgraph_node_set_new): Removed.
21545 (cgraph_node_set_add): Likewise.
21546 (cgraph_node_set_remove): Likewise.
21547 (cgraph_node_set_find): Likewise.
21548 (dump_cgraph_node_set): Likewise.
21549 (debug_cgraph_node_set): Likewise.
21550 (free_cgraph_node_set): Likewise.
21551 (varpool_node_set_new): Likewise.
21552 (varpool_node_set_add): Likewise.
21553 (varpool_node_set_remove): Likewise.
21554 (varpool_node_set_find): Likewise.
21555 (dump_varpool_node_set): Likewise.
21556 (free_varpool_node_set): Likewise.
21557 (debug_varpool_node_set): Likewise.
21558 * tree-emutls.c (struct tls_var_data):
21559 (emutls_index): Removed.
21560 (emutls_decl): Likewise.
21561 (gen_emutls_addr): Function implementation uses newly added
21562 hash_map<varpool_node *, tls_var_data>.
21563 (clear_access_vars): Likewise.
21564 (create_emultls_var): Likewise.
21565 (ipa_lower_emutls): Likewise.
21566 (reset_access): New function.
21568 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21570 * config/i386/i386.c (ix86_option_override_internal): Add
21571 PTA_RDRND and PTA_MOVBE for bdver4.
21573 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21574 James Greenhalgh <james.greenhalgh@arm.com>
21576 * doc/md.texi (clrsb): Document.
21577 (clz): Change reference to x into operand 1.
21579 (popcount): Likewise.
21581 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21584 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
21585 move to subtarget in serial version if result is ignored.
21587 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21588 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21590 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
21591 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
21592 (sched_analyze_insn): Update use of try_group_insn to
21593 sched_macro_fuse_insns.
21594 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
21595 arguments that are not conditional jumps.
21597 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21599 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
21600 family information. Handle BTVER2 cpu with cpuid family value.
21602 2014-08-04 Tom de Vries <tom@codesourcery.com>
21604 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
21605 (glibc_2_11_or_earlier): Document effective-target keywords.
21607 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
21609 * ipa-devirt.c (odr_type_warn_count): Add type.
21610 (possible_polymorphic_call_targets): Set it.
21611 (ipa_devirt): Use it.
21613 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
21615 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
21617 * ipa-devirt.c: Include hash-map.h
21618 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
21619 (clear_speculation): Break out of ...
21620 (get_class_context): ... here; speed up handling obviously useless
21622 (odr_type_warn_count, decl_warn_count): New structures.
21623 (final_warning_record): New structure.
21624 (final_warning_records): New static variable.
21625 (possible_polymorphic_call_targets): Cleanup handling of
21626 speculative info; do not build speculation when user do not care;
21627 record info about warnings when asked for.
21628 (add_decl_warning): New function.
21629 (type_warning_cmp): New function.
21630 (decl_warning_cmp): New function.
21631 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
21632 (gate): Enable pass when warnings are requested.
21633 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
21636 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
21638 * hash-map.h (default_hashmap_traits::mark_key_deleted):
21640 (hash_map::remove): New method.
21641 (hash_map::traverse): New method.
21642 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
21643 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
21644 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
21645 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
21646 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
21647 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
21650 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
21652 * hash-set.h: new File.
21653 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
21654 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
21655 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
21656 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
21657 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
21658 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
21659 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
21660 varpool.c: Use hash_set instead of pointer_set.
21662 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
21664 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
21666 2014-08-01 Jiong Wang <jiong.wang@arm.com>
21668 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
21669 for frame access when strict_p is false.
21671 2014-08-01 Renlin Li <renlin.li@arm.com>
21672 2014-08-01 Jiong Wang <jiong.wang@arm.com>
21674 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
21675 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
21676 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
21678 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
21680 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
21681 aarch64_mem_pair_offset.
21683 2014-08-01 Jiong Wang <jiong.wang@arm.com>
21685 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
21687 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
21688 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
21690 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
21692 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
21694 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
21696 PR regression/61510
21697 * cgraphunit.c (analyze_functions): Use get_create rather than get
21698 for decls which are clones of abstract functions.
21700 2014-08-01 Martin Liska <mliska@suse.cz>
21702 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
21703 * ipa-prop.h (count_formal_params): Global function created from static.
21704 * ipa-prop.c (count_formal_params): Likewise.
21705 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
21706 profiles for semantically equivalent functions.
21707 * passes.c (do_per_function): If we load body of a function
21708 during WPA, this condition should behave same.
21709 * varpool.c (ctor_for_folding): More tolerant assert for variable
21710 aliases created during WPA.
21712 2014-08-01 Martin Liska <mliska@suse.cz>
21714 * doc/invoke.texi (Options That Control Optimization): Documentation
21715 for -foptimize-strlen introduced. Optimization levels default options
21718 2014-08-01 Jakub Jelinek <jakub@redhat.com>
21720 * opts.c (common_handle_option): Handle -fsanitize=alignment.
21721 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
21722 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
21724 * stor-layout.h (min_align_of_type): New prototype.
21725 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
21726 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
21728 * ubsan.c: Include builtins.h.
21729 (ubsan_expand_bounds_ifn): Change return type to bool,
21730 always return true.
21731 (ubsan_expand_null_ifn): Change return type to bool, change
21732 argument to gimple_stmt_iterator *. Handle both null and alignment
21733 sanitization, take type from ckind argument's type rather than
21735 (instrument_member_call): Removed.
21736 (instrument_mem_ref): Remove t argument, add mem and base arguments.
21737 Handle both null and alignment sanitization, don't say whole
21738 struct access is member access. Build 3 argument IFN_UBSAN_NULL
21739 call instead of 2 argument.
21740 (instrument_null): Adjust instrument_mem_ref caller. Don't
21741 instrument calls here.
21742 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
21743 like SANITIZE_NULL.
21744 * stor-layout.c (min_align_of_type): New function.
21745 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
21746 Or it into SANITIZE_UNDEFINED.
21747 * doc/invoke.texi (-fsanitize=alignment): Document.
21749 2014-07-31 Andi Kleen <ak@linux.intel.com>
21751 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
21753 2014-07-31 Andi Kleen <ak@linux.intel.com>
21755 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
21757 (vn_reference_compute_hash): Dito.
21758 (vn_nary_op_compute_hash): Dito.
21759 (vn_phi_compute_hash): Dito.
21760 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
21762 2014-07-31 Andi Kleen <ak@linux.intel.com>
21764 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
21765 Rename to inchash:add_expr_commutative. Convert to inchash.
21766 (iterative_hash_hashable_expr): Rename to
21767 inchash:add_hashable_expr. Convert to inchash.
21768 (avail_expr_hash): Dito.
21770 2014-07-31 Andi Kleen <ak@linux.intel.com>
21772 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
21773 Convert to inchash.
21775 2014-07-31 Andi Kleen <ak@linux.intel.com>
21777 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
21779 2014-07-31 Andi Kleen <ak@linux.intel.com>
21781 * Makefile.in (OBJS): Add rtlhash.o
21782 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
21783 (loc_checksum): Dito.
21784 (loc_checksum_ordered): Dito.
21785 (hash_loc_operands): Dito.
21787 (hash_loc_list): Dito.
21788 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
21789 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
21790 * rtlhash.c: New file.
21791 * rtlhash.h: New file.
21793 2014-07-31 Andi Kleen <ak@linux.intel.com>
21795 * inchash.h (inchash): Change inchash class to namespace.
21796 (class hash): ... Rename from inchash.
21797 (add_object): Move from macro to class template.
21798 * lto-streamer-out.c (hash_tree): Change inchash
21800 * tree.c (build_type_attribute_qual_variant): Dito.
21801 (type_hash_list): Dito.
21802 (attribute_hash_list): Dito.
21803 (iterative_hstate_expr): Rename to inchash::add_expr
21804 (build_range_type_1): Change inchash to inchash::hash
21805 and use hash::add_expr.
21806 (build_array_type_1): Dito.
21807 (build_function_type): Dito
21808 (build_method_type_directly): Dito.
21809 (build_offset_type): Dito.
21810 (build_complex_type): Dito.
21811 (make_vector_type): Dito.
21812 * tree.h (iterative_hash_expr): Dito.
21814 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
21816 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
21818 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
21820 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
21821 correct alphabetical position.
21822 (vpaddd_f64): Rewrite using builtins.
21823 (vpaddd_s64): Move to correct alphabetical position.
21826 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
21829 * config/sh/sh.c (sh_legitimate_address_p,
21830 sh_legitimize_reload_address): Handle reg+reg address modes when
21831 ALLOW_INDEXED_ADDRESS is false.
21832 * config/sh/predicates.md (general_movsrc_operand,
21833 general_movdst_operand): Likewise.
21835 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
21837 * config/aarch64/aarch64-builtins.c
21838 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
21841 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
21843 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
21844 the generated mask based on BYTES_BIG_ENDIAN.
21845 (aarch64_simd_check_vect_par_cnst_half): New.
21846 * config/aarch64/aarch64-protos.h
21847 (aarch64_simd_check_vect_par_cnst_half): New.
21848 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
21849 the check out to aarch64_simd_check_vect_par_cnst_half.
21850 (vect_par_cnst_lo_half): Likewise.
21851 * config/aarch64/aarch64-simd.md
21852 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
21853 (move_hi_quad_<mode>): Always generate a low mask.
21855 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21857 * doc/invoke.texi (AVR Options): Add documentation about
21858 __AVR_DEVICE_NAME__ built-in macro.
21860 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
21863 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
21864 constraints are satisfied.
21865 (<shift>di3_neon): Likewise.
21867 2014-07-31 Richard Biener <rguenther@suse.de>
21869 PR tree-optimization/61964
21870 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
21871 by structural equality.
21873 2014-07-31 Yury Gribov <y.gribov@samsung.com>
21875 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
21876 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
21877 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
21879 * gcc.c (sanitize_spec_function): Support new option.
21880 (SANITIZER_SPEC): Remove now redundant check.
21881 * opts.c (common_handle_option): Support new option.
21882 (finish_options): Check for incompatibilities.
21883 * toplev.c (process_options): Split userspace-specific checks.
21885 2014-07-31 Richard Biener <rguenther@suse.de>
21887 * lto-streamer.h (struct output_block): Remove global.
21888 (struct data_in): Remove labels, num_named_labels and
21889 num_unnamed_labels.
21890 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
21891 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
21893 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
21896 * common.opt (-Wreturn-local-addr): Moved from c.opt.
21897 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
21898 (isolate_path): New argument to avoid inserting a trap.
21899 (find_implicit_erroneous_behaviour): Handle returning the address
21900 of a local variable.
21901 (find_explicit_erroneous_behaviour): Likewise.
21903 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
21906 * toplev.c (init_random_seed): Move piece of code never called to
21908 (set_random_seed): see above.
21910 2014-07-31 Tom de Vries <tom@codesourcery.com>
21912 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
21914 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
21916 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
21917 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
21919 2014-07-31 Richard Biener <rguenther@suse.de>
21921 * data-streamer.h (streamer_write_data_stream): Declare here,
21923 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
21924 * lto-cgraph.c (lto_output_node): Adjust.
21925 (lto_output_varpool_node): Likewise.
21926 * data-streamer-out.c (streamer_string_index): Likewise.
21927 (streamer_write_data_stream, lto_append_block): Move from ...
21928 * lto-section-out.c (lto_output_data_stream,
21929 lto_append_block): ... here.
21931 2014-07-30 Mike Stump <mikestump@comcast.net>
21933 * configure.ac: Also check for popen.
21934 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
21935 * configure: Regenerate.
21936 * config.in: Regenerate.
21938 2014-07-30 Martin Jambor <mjambor@suse.cz>
21940 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
21941 parameter to gimple.
21943 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21945 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
21946 address as second parameter to __tpf_eh_return routine.
21948 2014-07-30 Jiong Wang <jiong.wang@arm.com>
21950 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
21953 2014-07-30 Tom Tromey <tromey@redhat.com>
21956 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
21957 * doc/extend.texi (Type Attributes): Document designated_init
21960 2014-07-30 Roman Gareev <gareevroman@gmail.com>
21962 * graphite-isl-ast-to-gimple.c:
21963 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
21964 (gcc_expression_from_isl_expression): Pass type to
21965 gcc_expression_from_isl_ast_expr_id.
21967 2014-07-30 Richard Biener <rguenther@suse.de>
21969 * lto-streamer.h (lto_write_data): New function.
21970 * langhooks.c (lhd_append_data): Do not free block.
21971 * lto-section-out.c (lto_write_data): New function writing
21972 raw data to the current section.
21973 (lto_write_stream): Adjust for langhook semantic change.
21974 (lto_destroy_simple_output_block): Write header directly.
21975 * lto-opts.c (lto_write_options): Write options directly.
21976 * lto-streamer-out.c (produce_asm): Write heaeder directly.
21977 (lto_output_toplevel_asms): Likewise.
21978 (copy_function_or_variable): Copy data directly.
21979 (write_global_references): Output index table directly.
21980 (lto_output_decl_state_refs): Likewise.
21981 (write_symbol): Write data directly.
21982 (produce_symtab): Adjust.
21983 (produce_asm_for_decls): Output header and refs directly.
21985 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
21987 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
21988 to speculative_targets
21989 (get_class_context): Fix handling of contextes without outer type;
21990 avoid matching non-polymorphic types in LTO.
21991 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
21992 parameter to speculative_targetsp; handle speculation.
21993 (dump_possible_polymorphic_call_targets): Update dumping.
21995 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
21997 * common.opt (Wodr): Enable by default.
21999 2014-07-29 Olivier Hainque <hainque@adacore.com>
22001 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
22003 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
22006 * gengtype.c (strtoken): New function.
22007 (create_user_defined_type): Replace strtok with strtoken.
22009 2014-07-29 Nathan Sidwell <nathan@acm.org>
22011 * gcov-io.c (gcov_var): Make hidden.
22012 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
22013 (gcov_do_dump): Declare.
22014 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
22016 2014-07-29 Martin Jambor <mjambor@suse.cz>
22018 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
22019 parameter to gimple.
22020 (sra_modify_assign): Likewise.
22022 2014-07-29 Richard Biener <rguenther@suse.de>
22024 PR middle-end/52478
22025 * expr.c (expand_expr_real_2): Revert last change.
22027 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
22029 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
22030 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
22031 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
22033 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
22034 (contains_type_p): Forward declare.
22035 (polymorphic_call_target_hasher::hash): Hash speculative info.
22036 (polymorphic_call_target_hasher::equal): Compare speculative info.
22037 (get_class_context): Handle speuclation.
22038 (contains_type_p): Update.
22039 (get_polymorphic_call_info_for_decl): Update.
22040 (walk_ssa_copies): Break out from ...
22041 (get_polymorphic_call_info): ... here; set speculative context
22043 * ipa-prop.c (ipa_write_indirect_edge_info,
22044 ipa_read_indirect_edge_info): Stream speculative context.
22045 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
22046 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
22047 SPECULATIVE_MAYBE_DERIVED_TYPE).
22048 (possible_polymorphic_call_targets overriders): Update.
22049 (dump_possible_polymorphic_call_targets overriders): Update.
22050 (dump_possible_polymorphic_call_target_p overriders): Update.
22052 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
22054 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
22055 ipa-devirt path; fix thinko there.
22057 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
22059 * config/i386/i386.c (ix86_return_in_memory): Replace one
22060 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
22062 2014-07-28 Marek Polacek <polacek@redhat.com>
22064 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
22066 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
22068 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
22069 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
22070 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
22071 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
22072 (USE_LD_AS_NEEDED): Likewise.
22073 (ASM_APP_ON): Likewise.
22074 (ASM_APP_OFF): Likewise.
22075 (TARGET_POSIX_IO): Likewise.
22076 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
22077 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
22078 (USE_LD_AS_NEEDED): Likewise.
22079 (ASM_APP_ON): Likewise.
22080 (ASM_APP_OFF): Likewise.
22081 (TARGET_POSIX_IO): Likewise.
22083 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
22085 PR middle-end/61734
22086 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
22087 operators other than the equality operators.
22089 2014-07-28 Richard Biener <rguenther@suse.de>
22091 PR middle-end/52478
22092 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
22093 sure to register SImode ones, not only >= word_mode ones.
22094 * expr.c (expand_expr_real_2): When expanding -ftrapv
22095 binops do not use OPTAB_LIB_WIDEN.
22097 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
22099 PR middle-end/61919
22100 * tree-outof-ssa.c (insert_partition_copy_on_edge)
22101 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
22102 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
22103 inserting them in the insn stream.
22105 2014-07-28 Marek Polacek <polacek@redhat.com>
22107 PR middle-end/61913
22108 * common.opt (Wodr): Add Var.
22110 2014-07-28 Richard Biener <rguenther@suse.de>
22112 PR tree-optimization/61921
22113 * tree-ssa-structalias.c (create_variable_info_for_1): Check
22114 if there is a varpool node before dereferencing it.
22116 2014-07-28 Roman Gareev <gareevroman@gmail.com>
22118 * graphite-sese-to-poly.c:
22119 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
22120 id of the pbb), which contains pointer to the pbb1.
22122 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
22124 2014-07-28 Roman Gareev <gareevroman@gmail.com>
22126 * graphite-isl-ast-to-gimple.c:
22127 (graphite_create_new_guard): New function.
22128 (translate_isl_ast_node_if): New function.
22129 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
22131 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
22133 2014-07-27 Anthony Green <green@moxielogic.com>
22135 * config.gcc: Add moxie-*-moxiebox* configuration.
22136 * config/moxie/moxiebox.h: New file.
22138 2014-07-26 Andrew Pinski <apinski@cavium.com>
22140 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
22141 from the read only register.
22143 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
22145 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
22146 as the allocation class if it isn't likely to be spilled.
22148 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
22150 * rtl.h (tls_referenced_p): Declare.
22151 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
22152 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
22153 (mips_cannot_force_const_mem): Use tls_referenced_p.
22154 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
22155 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
22156 instead of pa_tls_referenced_p.
22157 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
22158 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
22159 (pa_legitimate_constant_p): Likewise.
22160 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
22161 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
22162 (rs6000_cannot_force_const_mem, rs6000_emit_move)
22163 (rs6000_address_for_altivec): Use tls_referenced_p instead of
22164 rs6000_tls_referenced_p.
22165 (rs6000_tls_symbol_ref_1): Delete.
22167 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
22170 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
22171 Optimize inverse of a VEC_CONCAT.
22173 2014-07-25 Xinliang David Li <davidxl@google.com>
22175 * params.def: New parameter.
22176 * coverage.c (get_coverage_counts): Check new flag.
22177 (coverage_compute_profile_id): Check new flag.
22178 (coverage_begin_function): Check new flag.
22179 (coverage_end_function): Check new flag.
22180 * value-prof.c (coverage_node_map_initialized_p): New function.
22181 (init_node_map): Populate map with all functions.
22182 * doc/invoke.texi: Document new parameter.
22184 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
22185 Richard Biener <rguenther@suse.de>
22187 * lto-streamer-out.c (struct sccs): Turn to ...
22188 (class DFS): ... this one; refactor the DFS walk so it can
22189 be re-done on per-SCC basis.
22190 (DFS::DFS): New constructor.
22191 (DFS::~DFS): New destructor.
22192 (hash_tree): Add new MAP argument holding in-SCC hash values;
22193 remove POINTER_TYPE hashing hack.
22194 (scc_entry_compare): Rename to ...
22195 (DFS::scc_entry_compare): ... this one.
22196 (hash_scc): Rename to ...
22197 (DFS::hash_scc): ... this one; pass output_block instead
22198 of streamer_cache; work harder to get unique and stable SCC
22200 (DFS_write_tree): Rename to ...
22201 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
22202 (lto_output_tree): Update.
22204 2014-07-25 Andi Kleen <ak@linux.intel.com>
22206 * lto-streamer-out.c (hash_tree): Convert to inchash.
22208 2014-07-25 Andi Kleen <ak@linux.intel.com>
22210 * tree.c (build_type_attribute_qual_variant): Use inchash.
22211 (type_hash_list): Dito.
22212 (attribute_hash_list): Dito
22213 (iterative_hstate_expr): Dito.
22214 (iterative_hash_expr): Dito.
22215 (build_range_type_1): Dito.
22216 (build_array_type_1): Dito.
22217 (build_function_type): Dito.
22218 (build_method_type_directly): Dito.
22219 (build_offset_type): Dito.
22220 (build_complex_type): Dito.
22221 (make_vector_type): Dito.
22222 * tree.h (iterative_hash_expr): Add compat wrapper.
22223 (iterative_hstate_expr): Add.
22225 2014-07-25 Andi Kleen <ak@linux.intel.com>
22227 * Makefile.in (OBJS): Add inchash.o.
22228 (PLUGIN_HEADERS): Add inchash.h.
22229 * ipa-devirt.c: Include inchash.h.
22230 * lto-streamer-out.c: Dito.
22231 * tree-ssa-dom.c: Dito.
22232 * tree-ssa-pre.c: Dito.
22233 * tree-ssa-sccvn.c: Dito.
22234 * tree-ssa-tail-merge.c: Dito.
22236 * tree.c (iterative_hash_hashval_t): Move to ...
22237 (iterative_hash_host_wide_int): Move to ...
22238 * inchash.c: Here. New file.
22239 * tree.h (iterative_hash_hashval_t): Move to ...
22240 (iterative_hash_host_wide_int): Move to ...
22241 * inchash.h: Here. New file.
22243 2014-07-25 Richard Biener <rguenther@suse.de>
22245 PR middle-end/61762
22246 PR middle-end/61894
22247 * fold-const.c (native_encode_int): Add and handle offset
22248 parameter to do partial encodings of expr.
22249 (native_encode_fixed): Likewise.
22250 (native_encode_real): Likewise.
22251 (native_encode_complex): Likewise.
22252 (native_encode_vector): Likewise.
22253 (native_encode_string): Likewise.
22254 (native_encode_expr): Likewise.
22255 * fold-const.c (native_encode_expr): Add offset parameter
22257 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
22258 (fold_ctor_reference): Handle all reads from tcc_constant
22261 2014-07-25 Richard Biener <rguenther@suse.de>
22263 * tree-inline.c (estimate_move_cost): Mark speed_p argument
22264 as possibly unused.
22266 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22268 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
22270 2014-07-24 Kyle McMartin <kyle@redhat.com>
22272 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
22274 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22276 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
22278 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
22280 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
22281 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
22282 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
22284 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22286 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
22287 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
22288 aggregate types. Instead, *all* aggregate types, except for single-
22289 element or homogeneous float/vector aggregates, are quadword-aligned
22290 if required by their type alignment. Issue -Wpsabi note when a type
22291 is now treated differently than before.
22293 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22295 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
22296 does not fit fully into floating-point registers, and there is still
22297 space in the register parameter area, use GPRs to pass those parts
22298 of the argument. Issue -Wpsabi note if any parameter is now treated
22299 differently than before.
22300 (rs6000_arg_partial_bytes): Update.
22302 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
22304 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
22306 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
22308 * rtl.h (target_rtl): Remove lang_dependent_initialized.
22309 * toplev.c (initialize_rtl): Don't use it. Move previously
22310 "language-dependent" calls to...
22311 (backend_init): ...here.
22312 (lang_dependent_init_target): Don't set lang_dependent_initialized.
22313 Assert that RTL initialization hasn't happend yet.
22315 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
22317 PR rtl-optimization/61629
22318 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
22319 they have already been initialized.
22321 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
22323 PR middle-end/61268
22324 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
22325 DECL_INCOMING_RTL and entry_parm.
22326 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
22327 * calls.c (load_register_parameters): Likewise argument values.
22328 (emit_library_call_value_1, store_one_arg): Likewise argument
22330 * config/i386/i386.c (assign_386_stack_local): Likewise the local
22332 * explow.c (validize_mem): Modify the argument in-place.
22334 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22336 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
22337 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
22339 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22341 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
22342 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
22344 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22346 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
22347 (aarch64_save_callee_saves): New parameter "skip_wb".
22348 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
22350 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22352 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
22354 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
22356 2014-07-24 Roman Gareev <gareevroman@gmail.com>
22358 * graphite-isl-ast-to-gimple.c:
22359 (graphite_create_new_loop): Add calling of isl_id_free to properly
22360 decrement reference counts.
22362 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
22364 2014-07-24 Martin Liska <mliska@suse.cz>
22365 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
22367 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
22368 (rs6000_code_end): Likewise.
22370 2014-07-24 Martin Liska <mliska@suse.cz>
22372 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
22373 symtab_node funtion used.
22374 (rs6000_xcoff_declare_object_name): Likewise.
22376 2014-07-24 Martin Liska <mliska@suse.cz>
22378 * cgraphunit.c (compile): Correct function used.
22380 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
22382 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
22385 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
22388 * varasm.c (bss_initializer_p): Handle offlined ctors.
22389 (align_variable, get_variable_align): Likewise.
22390 (make_decl_one_only): Likewise.
22391 (default_binds_local_p_1): Likewise.
22392 (decl_binds_to_current_def_p): Likewise.
22393 (get_variable_section): Get constructor if it is offlined.
22394 (assemble_variable_contents): Sanity check that the caller
22395 streamed in the ctor in LTO.
22397 2014-07-24 Roman Gareev <gareevroman@gmail.com>
22399 * graphite-isl-ast-to-gimple.c:
22400 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
22401 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
22402 isl_ast_op_pdiv_r to the different case.
22404 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
22406 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22408 PR middle-end/61876
22409 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
22410 when flag_errno_math is on.
22412 2014-07-24 Martin Liska <mliska@suse.cz>
22414 * cgraph.h (varpool_node):
22415 (availability get_availability (void)):
22416 created from cgraph_variable_initializer_availability
22417 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
22418 created from: cgraph_variable_initializer_availability
22419 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
22420 (void finalize_named_section_flags (void)):
22421 created from varpool_finalize_named_section_flags
22422 (bool assemble_decl (void)): created from varpool_assemble_decl
22423 (void analyze (void)): created from varpool_analyze_node
22424 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
22425 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
22426 (void remove_initializer (void)): created from varpool_remove_initializer
22427 (tree get_constructor (void)): created from varpool_get_constructor
22428 (bool externally_visible_p (void)): created from varpool_externally_visible_p
22429 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
22430 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
22431 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
22432 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
22433 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
22434 (static bool output_variables (void)): created from varpool_output_variables
22435 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
22436 created from varpool_extra_name_alias
22437 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
22438 (static void dump_varpool (FILE *f)): created from dump_varpool
22439 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
22440 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
22441 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
22442 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
22443 (void assemble_aliases (void)): created from assemble_aliases
22445 2014-07-24 Martin Liska <mliska@suse.cz>
22447 * cgraph.h (symtab_node):
22448 (void register_symbol (void)): created from symtab_register_node
22449 (void remove (void)): created from symtab_remove_node
22450 (void dump (FILE *f)): created from dump_symtab_node
22451 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
22452 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
22453 (struct ipa_ref *add_reference (symtab_node *referred_node,
22454 enum ipa_ref_use use_type)): created from add_reference
22455 (struct ipa_ref *add_reference (symtab_node *referred_node,
22456 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
22457 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
22458 gimple stmt)): created from maybe_add_reference
22459 (bool semantically_equivalent_p (symtab_node *target)): created from
22460 symtab_semantically_equivalent_p
22461 (void remove_from_same_comdat_group (void)): created from
22462 remove_from_same_comdat_group
22463 (void add_to_same_comdat_group (symtab_node *old_node)): created from
22464 symtab_add_to_same_comdat_group
22465 (void dissolve_same_comdat_group_list (void)): created from
22466 symtab_dissolve_same_comdat_group_list
22467 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
22468 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
22469 created from symtab_alias_ultimate_target
22470 (inline symtab_node *next_defined_symbol (void)): created from
22471 symtab_next_defined_symbol
22472 (bool resolve_alias (symtab_node *target)): created from
22473 symtab_resolve_alias
22474 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
22475 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
22476 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
22477 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
22478 (void set_section (const char *section)): created from set_section_1
22479 (enum availability get_availability (void)): created from symtab_node_availability
22480 (void make_decl_local (void)): created from symtab_make_decl_local
22481 (bool real_symbol_p (void)): created from symtab_read_node
22482 (can_be_discarded_p (void)): created from symtab_can_be_discarded
22483 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
22484 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
22485 symtab_in_same_comdat_p;
22486 (bool address_taken_from_non_vtable_p (void)): created from
22487 address_taken_from_non_vtable_p
22488 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
22489 (static void dump_table (FILE *)): created from dump_symtab
22490 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
22491 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
22492 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
22493 symtab_used_from_object_file_p
22494 (void dump_base (FILE *)): created from dump_symtab_base
22495 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
22496 (void unregister (void)): created from symtab_unregister_node
22497 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
22498 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
22499 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
22500 symtab_nonoverwritable_alias_1
22501 * cgraph.h (cgraph_node):
22502 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
22503 created from cgraph_remove_node_and_inline_clones
22504 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
22505 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
22506 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
22507 (cgraph_node *function_symbol (enum availability *avail = NULL)):
22508 created from cgraph_function_node
22509 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
22510 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
22511 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
22512 created from cgraph_create_clone
22513 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
22514 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
22515 created from cgraph_create_virtual_clone
22516 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
22517 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
22518 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
22519 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
22520 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
22521 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
22522 created from cgraph_function_version_info
22523 (struct cgraph_function_version_info *insert_new_function_version (void)):
22524 created from insert_new_cgraph_node_version
22525 (struct cgraph_function_version_info *function_version (void)): created from
22526 get_cgraph_node_version
22527 (void analyze (void)): created from analyze_function
22528 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
22529 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
22530 tree real_alias) cgraph_add_thunk
22531 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
22532 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
22533 created from cgraph_function_or_thunk_node
22534 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
22535 created from expand_thunk
22536 (void reset (void)): created from cgraph_reset_node
22537 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
22538 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
22539 (void remove (void)): created from cgraph_remove_node
22540 (void dump (FILE *f)): created from dump_cgraph_node
22541 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
22542 (bool get_body (void)): created from cgraph_get_body
22543 (void release_body (void)): created from cgraph_release_function_body
22544 (void unnest (void)): created from cgraph_unnest_node
22545 (void make_local (void)): created from cgraph_make_node_local
22546 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
22547 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
22548 gcov_type count, int freq)): created from cgraph_create_edge
22549 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
22550 gcov_type count, int freq)): created from cgraph_create_indirect_edge
22551 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
22552 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
22553 created from cgraph_create_edge_including_clones
22554 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
22555 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
22556 (void remove_callers (void)): created from cgraph_node_remove_callers
22557 (void remove_callees (void)): created from cgraph_node_remove_callees
22558 (enum availability get_availability (void)): created from cgraph_function_body_availability
22559 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
22560 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
22561 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
22562 (void call_duplication_hooks (cgraph_node *node2)): created from
22563 cgraph_call_node_duplication_hooks
22564 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
22565 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
22566 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
22567 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
22568 (void call_function_insertion_hooks (void)):
22569 created from cgraph_call_function_insertion_hooks
22570 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
22571 (bool local_p (void)): created from cgraph_local_node
22572 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
22573 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
22574 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
22575 (inline bool only_called_directly_or_aliased_p (void)):
22576 created from cgraph_only_called_directly_or_aliased_p
22577 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
22578 created from cgraph_will_be_removed_from_program_if_no_direct_calls
22579 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
22580 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
22581 (bool can_remove_if_no_direct_calls_p (void)):
22582 created from cgraph_can_remove_if_no_direct_calls_p
22583 (inline bool has_gimple_body_p (void)):
22584 created from cgraph_function_with_gimple_body_p
22585 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
22586 (static void dump_cgraph (FILE *f)): created from dump_cgraph
22587 (static inline void debug_cgraph (void)): created from debug_cgraph
22588 (static void record_function_versions (tree decl1, tree decl2)):
22589 created from record_function_versions
22590 (static void delete_function_version (tree decl)):
22591 created from delete_function_version
22592 (static void add_new_function (tree fndecl, bool lowered)):
22593 created from cgraph_add_new_function
22594 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
22595 (static cgraph_node * create (tree decl)): created from cgraph_create_node
22596 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
22597 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
22598 (static cgraph_node *get_for_asmname (tree asmname)):
22599 created from cgraph_node_for_asm
22600 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
22601 created from cgraph_same_body_alias
22602 (static bool used_from_object_file_p_worker (cgraph_node *node,
22603 void *): new function
22604 (static bool non_local_p (cgraph_node *node, void *)):
22605 created from cgraph_non_local_node_p_1
22606 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
22607 created from verify_cgraph
22608 (static bool make_local (cgraph_node *node, void *)):
22609 created from cgraph_make_node_local
22610 (static cgraph_node *create_alias (tree alias, tree target)):
22611 created from cgraph_create_function_alias
22612 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
22613 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
22614 created from cgraph_create_edge_1
22615 * cgraph.h (varpool_node):
22616 (void remove (void)): created from varpool_remove_node
22617 (void dump (FILE *f)): created from dump_varpool_node
22619 2014-07-24 Richard Biener <rguenther@suse.de>
22622 * tree-ssa-structalias.c (create_variable_info_for_1):
22623 Use varpool_get_constructor.
22624 (create_variable_info_for): Likewise.
22626 2014-07-24 Jiong Wang <jiong.wang@arm.com>
22628 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
22629 subtract outgoing area size when restoring stack_pointer_rtx.
22631 2014-07-24 Nick Clifton <nickc@redhat.com>
22633 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
22634 that operations are taking place in parallel.
22635 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
22637 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
22639 * omp-low.c (extract_omp_for_data): Add missing break statement.
22641 2014-07-24 Richard Biener <rguenther@suse.de>
22643 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
22644 * tree-inline.c (estimate_move_cost): Add speed_p parameter
22645 and adjust MOVE_RATIO query accordingly.
22646 (estimate_num_insns): Adjust callers.
22647 * ipa-prop.c (ipa_populate_param_decls): Likewise.
22648 * ipa-cp.c (gather_context_independent_values,
22649 estimate_local_effects): Likewise.
22650 * ipa-split.c (consider_split): Likewise.
22652 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
22654 * config/i386/driver-i386.c: Remove names of unused arguments and
22655 unnecessary unused attributes.
22656 * config/i386/host-mingw32.c: Likewise.
22657 * config/i386/i386.c: Likewise.
22658 * config/i386/winnt-stubs.c: Likewise.
22659 * config/i386/winnt.c: Likewise.
22661 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22663 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
22664 (aarch64_gen_loadwb_pair): New helper function.
22665 (aarch64_expand_epilogue): Simplify code using new helper functions.
22666 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
22668 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22670 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
22671 (aarch64_gen_storewb_pair): New helper function.
22672 (aarch64_expand_prologue): Simplify code using new helper functions.
22673 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
22675 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22677 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
22678 Rename to aarch64_save_callee_saves, remove restore code.
22679 (aarch64_restore_callee_saves): New function.
22681 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22683 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
22684 (aarch64_save_callee_saves): New function to handle reg save
22685 for both core and vectore regs.
22687 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22689 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
22690 (aarch64_gen_store_pair): New helper function.
22691 (aarch64_save_or_restore_callee_save_registers)
22692 (aarch64_save_or_restore_fprs): Use new helper functions.
22694 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22696 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
22697 (aarch64_save_or_restore_callee_save_registers)
22698 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
22700 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22702 * config/aarch64/aarch64.c
22703 (aarch64_save_or_restore_callee_save_registers)
22704 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
22706 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22708 * config/aarch64/aarch64.c
22709 (aarch64_save_or_restore_callee_save_registers)
22710 (aarch64_save_or_restore_fprs): Remove 'increment'.
22712 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22714 * config/aarch64/aarch64.c
22715 (aarch64_save_or_restore_callee_save_registers)
22716 (aarch64_save_or_restore_fprs): Use register offset in
22717 cfun->machine->frame.reg_offset.
22719 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22721 * config/aarch64/aarch64.c
22722 (aarch64_save_or_restore_callee_save_registers)
22723 (aarch64_save_or_restore_fprs): Remove base_rtx.
22725 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22727 * config/aarch64/aarch64.c
22728 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
22729 to 'start_offset'. Remove local variable 'start_offset'.
22731 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22733 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
22734 type to HOST_WIDE_INT.
22736 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22738 * config/aarch64/aarch64.c (aarch64_expand_prologue)
22739 (aarch64_save_or_restore_fprs)
22740 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
22742 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
22744 * config/arm/t-rtems-eabi: Add
22745 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
22746 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
22747 mbig-endian/mthumb/march=armv7-r, and
22748 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
22751 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
22752 Chris Johns <chrisj@rtems.org>
22753 Joel Sherrill <joel.sherrill@oarcorp.com>
22755 * config.gcc: Add nios2-*-rtems*.
22756 * config/nios2/rtems.h: New file.
22757 * gcc/config/nios2/t-rtems: New file.
22759 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
22762 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
22763 constant numbers, not general constants.
22764 (rs6000_expand_vector_init): Ditto.
22766 2014-07-23 Nathan Sidwell <nathan@acm.org>
22768 * gcov-tool.c (gcov_list): Declare here.
22769 (set_gcov_list): Remove.
22770 (gcov_output_files): Set gcov_list directly.
22772 2014-07-23 Host Schirmeier <horst@schirmeier.com>
22774 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
22776 2014-07-23 Jiong Wang <jiong.wang@arm.com>
22778 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
22779 callee-saved registers are available for padding purpose
22780 and r3 is not mandatory, then prefer use those callee-saved
22783 2014-07-23 Richard Biener <rguenther@suse.de>
22785 * params.def (PARAM_MAX_COMBINE_INSNS): New.
22786 * combine.c: Include statistics.h and params.h.
22787 (combine_instructions): Guard three and four insn combines
22788 with max-combine-insns value. Record statistics for combines
22790 * doc/invoke.texi (max-combine-insns): Document new param.
22792 2014-07-23 Roman Gareev <gareevroman@gmail.com>
22794 * graphite-isl-ast-to-gimple.c:
22795 (translate_isl_ast_node_block): New function.
22796 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
22798 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
22799 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
22801 2014-07-23 Roman Gareev <gareevroman@gmail.com>
22803 * graphite-isl-ast-to-gimple.c:
22804 (get_max_schedule_dimensions): New function.
22805 (extend_schedule): Likewise.
22806 (generate_isl_schedule): Add calling of extend_schedule and
22807 get_max_schedule_dimensions.
22809 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22811 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
22812 (case UNSPEC): Handle UNSPEC_RBIT.
22814 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22816 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
22817 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
22819 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22821 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
22823 2014-07-22 Roman Gareev <gareevroman@gmail.com>
22825 * graphite-isl-ast-to-gimple.c:
22826 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
22827 (ivs_params_clear):
22828 (build_iv_mapping): New function.
22829 (translate_isl_ast_node_user): Likewise.
22830 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
22832 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
22833 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
22834 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
22836 2014-07-21 Bin Cheng <bin.cheng@arm.com>
22839 * config/arm/arm.md (setmem): New pattern.
22840 * config/arm/arm-protos.h (struct tune_params): New fields.
22841 (arm_gen_setmem): New prototype.
22842 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
22843 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
22844 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
22845 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
22846 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
22847 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
22848 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
22849 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
22850 (arm_const_inline_cost): New function.
22851 (arm_block_set_max_insns): New function.
22852 (arm_block_set_non_vect_profit_p): New function.
22853 (arm_block_set_vect_profit_p): New function.
22854 (arm_block_set_unaligned_vect): New function.
22855 (arm_block_set_aligned_vect): New function.
22856 (arm_block_set_unaligned_non_vect): New function.
22857 (arm_block_set_aligned_non_vect): New function.
22858 (arm_block_set_vect, arm_gen_setmem): New functions.
22860 2014-07-21 Bin Cheng <bin.cheng@arm.com>
22862 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
22864 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
22867 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
22868 out of #ifdef __OPTIMIZE__.
22870 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
22872 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
22873 different trapping status if -fnon-call-exceptions is enabled.
22875 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
22877 * expr.c (store_field): Handle VOIDmode for calls that return values
22878 in multiple locations.
22880 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22882 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
22883 (altivec_vsldoi_<mode>): Likewise.
22885 2014-07-20 Roman Gareev <gareevroman@gmail.com>
22887 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
22888 to the number of characters in the line.
22890 2014-07-20 Roman Gareev <gareevroman@gmail.com>
22892 * graphite-isl-ast-to-gimple.c: Add using of
22893 build_nonstandard_integer_type instead of int128_integer_type_node.
22895 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
22897 * toplev.c (output_stack_usage): Adjust the location of the warning.
22899 2014-07-19 Daniel Cederman <cederman@gaisler.com>
22901 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
22902 (*membar_storeload): Disable for LEON3.
22904 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
22906 PR rtl-optimization/61461
22907 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
22909 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
22912 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
22913 Fix instruction constraint.
22914 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
22916 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
22918 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
22920 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
22922 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
22923 GNU coding standards.
22924 (nds32_register_move_cost): Likewise.
22925 (nds32_memory_move_cost): Likewise.
22926 (nds32_address_cost): Likewise.
22928 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
22930 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
22932 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
22934 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
22935 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
22936 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
22937 (HAVE_sync_compare_and_swapqi): Define.
22938 (HAVE_sync_compare_and_swaphi): Likewise.
22939 (HAVE_sync_compare_and_swapsi): Likewise.
22941 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
22943 * config/mips/p5600.md: Add missing cpu tests.
22945 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22947 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
22948 (vmla_f64): Likewise.
22949 (vfms_f64): Likewise.
22950 (vmls_f64): Likewise.
22952 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22954 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
22955 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
22957 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22959 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
22960 (vmlal_high_lane_s32): Likewise.
22961 (vmlal_high_lane_u16): Likewise.
22962 (vmlal_high_lane_u32): Likewise.
22963 (vmlsl_high_lane_s16): Likewise.
22964 (vmlsl_high_lane_s32): Likewise.
22965 (vmlsl_high_lane_u16): Likewise.
22966 (vmlsl_high_lane_u32): Likewise.
22968 2014-07-17 Terry Guo <terry.guo@arm.com>
22970 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
22971 (alus_reg): Renamed to alus_sreg.
22972 * config/arm/arm-fixed.md: Change type of non-dsp instructions
22973 from alu_reg to alu_sreg. Change type of dsp instructions from
22974 alu_reg to alu_dsp_reg.
22975 * config/arm/thumb1.md: Likewise.
22976 * config/arm/thumb2.md: Likewise.
22977 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
22978 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
22979 with alu_sreg and alus_sreg.
22980 * config/arm/arm1026ejs.md (alu_op): Likewise.
22981 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
22982 * config/arm/arm926ejs.md (9_alu_op): Likewise.
22983 * config/arm/fa526.md (526_alu_op): Likewise.
22984 * config/arm/fa606te.md (606te_alu_op): Likewise.
22985 * config/arm/fa626te.md (626te_alu_op): Likewise.
22986 * config/arm/fa726te.md (726te_alu_op): Likewise.
22987 * config/arm/fmp626.md (mp626_alu_op): Likewise.
22988 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
22989 alu_sreg, alu_dsp_reg and alus_sreg.
22990 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
22991 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
22992 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
22993 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
22994 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
22995 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
22996 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
22997 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
22998 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
22999 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
23000 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
23001 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
23002 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
23003 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
23004 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
23005 alus_reg to alus_sreg.
23007 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
23009 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
23012 2014-07-17 Richard Biener <rguenther@suse.de>
23014 PR rtl-optimization/61801
23015 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
23016 don't set reg_pending_barrier if it appears in a debug-insn.
23018 2014-07-16 DJ Delorie <dj@redhat.com>
23020 * config/rx/rx.c (rx_option_override): Fix alignment values.
23021 (rx_align_for_label): Likewise.
23023 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
23026 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
23027 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
23028 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
23030 (cris_print_index, cris_print_operand, cris_constant_index_p)
23031 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
23032 (cris_address_cost): Ditto last CONSTANT_P.
23033 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
23034 callers changed. Yield cris_offsettable_symbol for non-PIC
23035 constant symbolic expressions including labels. Yield cris_unspec
23037 (cris_expand_pic_call_address): New parameter MARKERP. Set its
23038 target to pic_offset_table_rtx for calls that will likely go
23039 through PLT, const0_rtx when they can't. All callers changed.
23040 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
23041 symbolic expressions to be PICified. Remove second, redundant,
23042 assert on can_create_pseudo_p returning non-zero. Use
23043 replace_equiv_address_nv, not replace_equiv_address, for final
23045 * config/cris/cris.md ("movsi"): Move variable t to pattern
23046 toplevel. Adjust assert for new cris_symbol_type member. Use
23047 CONSTANT_P instead of CONSTANT_ADDRESS_P.
23048 ("*movsi_internal") <case 9>: Make check for valid unspec operands
23050 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
23051 ("call", "call_value"): Use second incoming operand as a marker
23052 for pic-offset-table-register being used.
23053 ("*expanded_call_non_v32", "*expanded_call_v32")
23054 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
23055 second incoming operand to CALL, match cris_call_type_marker.
23056 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
23057 ("*expanded_call_side"): Ditto. Fix typo in comment.
23058 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
23060 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
23061 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
23062 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
23063 users changed. Add members cris_offsettable_symbol and cris_unspec.
23064 (cris_symbol_type): Rename from cris_pic_symbol_type.
23065 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
23067 * config/cris/cris-protos.h (cris_symbol_type_of,
23068 cris_expand_pic_call_address): Adjust prototypes.
23069 (cris_legitimate_constant_p): New prototype.
23071 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
23072 an existing tmake_file. Don't add t-slibgcc and t-linux.
23074 2014-07-17 Jason Merrill <jason@redhat.com>
23077 * symtab.c (symtab_remove_from_same_comdat_group): Also
23078 set_comdat_group to NULL_TREE.
23079 (verify_symtab): Fix diagnostic.
23081 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
23084 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
23086 2014-07-16 Dodji Seketeli <dodji@redhat.com>
23088 Support location tracking for built-in macro tokens
23089 * input.h (is_location_from_builtin_token): New function declaration.
23090 * input.c (is_location_from_builtin_token): New function definition.
23091 * toplev.c (general_init): Tell libcpp what the pre-defined
23092 spelling location for built-in tokens is.
23094 2014-07-16 Jakub Jelinek <jakub@redhat.com>
23096 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
23097 on the FUNCTION_DECL.
23099 2014-07-16 Richard Biener <rguenther@suse.de>
23102 * doc/extend.texi (always_inline): Clarify.
23104 2014-07-15 Eric Christopher <echristo@gmail.com>
23106 * doc/invoke.texi (Link Options): Document -z option.
23108 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
23110 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
23111 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23113 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
23115 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
23117 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
23119 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
23120 varpool_assemble_decl.
23121 * varpool.c (varpool_assemble_decl): Assert that node->definition is
23124 2014-07-15 Michael Matz <matz@suse.de>
23126 PR rtl-optimization/61772
23127 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
23129 2014-07-15 Richard Biener <rguenther@suse.de>
23131 * opts.c (default_options_table): Disable bit-ccp at -Og.
23133 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
23135 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
23137 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
23139 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
23140 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
23141 call langhook for unknown declaration.
23142 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
23143 * tree.h (DECL_ARGUMENTS): Update.
23144 * print-tree.c (print_node): Update.
23145 * tree-core.h (tree_decl_non_common): Remove arguments.
23146 (tree_function_decl): Add arguments.
23148 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
23150 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
23152 2014-07-14 Richard Biener <rguenther@suse.de>
23154 PR tree-optimization/61779
23155 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
23156 simplifying a condition.
23158 2014-07-14 Richard Biener <rguenther@suse.de>
23160 * builtins.c (c_strlen): Make only_value == 2 really only
23161 affect warning generation.
23163 2014-07-14 Richard Biener <rguenther@suse.de>
23165 PR tree-optimization/61757
23166 PR tree-optimization/61783
23167 PR tree-optimization/61787
23168 * tree-ssa-dom.c (record_equality): Revert canonicalization
23169 change and add comment.
23170 (propagate_rhs_into_lhs): Revert previous fix, removing
23171 loop depth restriction again.
23173 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23175 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
23176 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
23177 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
23178 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
23179 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
23180 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
23181 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
23183 2014-07-14 Richard Biener <rguenther@suse.de>
23185 * cgraph.h (decl_in_symtab_p): Make inline.
23187 2014-07-14 Jakub Jelinek <jakub@redhat.com>
23189 PR middle-end/61294
23190 * doc/invoke.texi (-Wmemset-transposed-args): Document.
23193 * config/i386/i386.c (classify_argument): Don't merge classes above
23196 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
23198 * cgraph.h (symtab_node): Add nonzero_address.
23199 (decl_in_symtab_p): Break out from ...
23200 (symtab_get_node): ... here.
23201 * fold-const.c: Include cgraph.h
23202 (tree_single_nonzero_warnv_p): Use symtab to determine
23203 if symbol is non-zero.
23204 * symtab.c (symtab_node::nonzero_address): New method.
23206 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
23208 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
23209 forgotten in previous commit.
23211 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
23213 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
23215 * ipa-devirt.c: Include stor-layout.h and intl.h
23216 (odr_subtypes_equivalent_p): New function.
23217 (warn_odr): New function.
23218 (warn_type_mismatch): New function.
23219 (odr_types_equivalent_p): New function.
23220 (add_type_duplicate): Use it.
23221 * common.opt (Wodr): New flag.
23222 * doc/invoke.texi (Wodr): Document new warning.
23224 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
23226 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
23227 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
23228 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
23229 (varpool_get_constructor): Push CTORS_IN timevar.
23230 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
23232 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
23234 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
23235 Remove VOID_FTYPE_PUSHORT.
23236 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
23237 Change code to USHORT_FTYPE_VOID.
23238 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
23239 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
23240 (ix86_atomic_assign_expand_fenv): Update for
23241 __builtin_ia32_fnstsw changes.
23242 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
23243 (fnstsw): Change operand 0 to nonimmediate operand.
23245 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
23247 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
23248 (varpool_get_constructor): New function.
23249 (varpool_ctor_useable_for_folding_p): Break out from ...
23250 (ctor_for_folding): ... here; use varpool_get_constructor.
23251 (varpool_assemble_decl): Likewise.
23252 * lto-streamer.h (struct output_block): Turn cgraph_node
23254 (lto_input_variable_constructor): Declare.
23255 * ipa-visibility.c (function_and_variable_visibility): Use
23256 varpool_get_constructor.
23257 * cgraph.h (varpool_get_constructor): Declare.
23258 (varpool_ctor_useable_for_folding_p): New function.
23259 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
23260 parameter; return error_mark_node for non-trivial constructors.
23261 (lto_write_tree_1, DFS_write_tree): Update use of
23262 get_symbol_initial_value.
23263 (output_function): Update initialization of symbol.
23264 (output_constructor): New function.
23265 (copy_function): Rename to ..
23266 (copy_function_or_variable): ... this one; handle vars too.
23267 (lto_output): Output variable sections.
23268 * lto-streamer-in.c (input_constructor): New function.
23269 (lto_read_body): Rename from ...
23270 (lto_read_body_or_constructor): ... this one; handle vars too.
23271 (lto_input_variable_constructor): New function.
23272 * ipa-prop.c (ipa_prop_write_jump_functions,
23273 ipa_prop_write_all_agg_replacement): Update.
23274 * lto-cgraph.c (compute_ltrans_boundary): Use it.
23275 (output_cgraph_opt_summary): Set symbol to NULL.
23277 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
23279 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
23280 non-polymorphic types.
23281 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
23282 * ipa-devirt.c (types_same_for_odr): Do not explode when one
23283 of types is not polymorphic.
23285 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
23287 * lra-constraints.c (remove_inheritance_pseudos): Process
23288 destination pseudo too.
23290 2014-07-11 Rong Xu <xur@google.com>
23292 * gcov-tool.c (gcov_output_files): Fix build error introduced in
23295 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23297 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
23298 * config/avr/avr-devices.c (AVR_MCU): Same.
23299 (avr_mcu_types): add text start value to end of device list.
23300 * config/avr/avr-mcus.def: Add text section start for all devices.
23301 (ata5782): Add new avr5 device.
23303 * config/avr/avr-tables.opt: Regenerate.
23304 * config/avr/avr.h: Add declaration for text section start handler.
23305 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
23307 (LINK_SPEC): Include text section start handler to linker spec.
23308 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
23309 pass -Ttext option to linker if the text section start for the device
23311 * config/avr/t-multilib: Regenerate.
23312 * doc/avr-mmcu.texi: Regenerate.
23314 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
23316 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
23317 * config/rs6000/aix52.h (LINK_SPEC): Same.
23318 * config/rs6000/aix53.h (LINK_SPEC): Same.
23319 * config/rs6000/aix61.h (LINK_SPEC): Same.
23320 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
23322 2014-07-11 Roman Gareev <gareevroman@gmail.com>
23324 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
23325 (graphite_verify): New function.
23326 (ivs_params_clear): New function.
23327 (gcc_expression_from_isl_ast_expr_id): New function.
23328 (gcc_expression_from_isl_expr_int): New function.
23329 (binary_op_to_tree): New function.
23330 (ternary_op_to_tree): New function.
23331 (unary_op_to_tree): New function.
23332 (nary_op_to_tree): New function.
23333 (gcc_expression_from_isl_expr_op): New function.
23334 (gcc_expression_from_isl_expression): New function.
23335 (graphite_create_new_loop): New function.
23336 (translate_isl_ast_for_loop): New function.
23337 (get_upper_bound): New function.
23338 (graphite_create_new_loop_guard): New function.
23339 (translate_isl_ast_node_for): New function.
23340 (translate_isl_ast): New function.
23341 (add_parameters_to_ivs_params): New function.
23342 (scop_to_isl_ast): New parameter ip.
23343 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
23345 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
23347 * config/xtensa/predicates.md (call expander): Update for
23348 DECL_SECTION_NAME being string.
23350 2014-07-11 Richard Biener <rguenther@suse.de>
23352 PR middle-end/61473
23353 * builtins.c (fold_builtin_memory_op): Inline memory moves that
23354 can be implemented with a single load followed by a single store.
23355 (c_strlen): Only warn when only_value is not 2.
23357 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
23359 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
23361 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
23364 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
23365 (*movhi_bytes): Likewise.
23366 (*arm_movqi_insn): Likewise.
23368 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
23371 * config/alpha/alpha.c: Include tree-pass.h, context.h
23372 and pass_manager.h.
23373 (pass_data_handle_trap_shadows): New pass.
23374 (pass_handle_trap_shadows::gate): New pass gate function.
23375 (make_pass_handle_trap_shadows): New function.
23376 (rest_of_handle_trap_shadows): Ditto.
23378 (alpha_align_insns_1): Rename from alpha_align_insns.
23379 (pass_data_align_insns): New pass.
23380 (pass_align_insns::gate): New pass gate function.
23381 (make_pass_aling_insns): New function.
23382 (rest_of_align_insns): Ditto.
23383 (alpha_align_insns): Ditto.
23385 (alpha_option_override): Declare handle_trap_shadows info
23386 and align_insns_info. Register handle_trap_shadows and align_insns
23388 (alpha_reorg): Do not call alpha_trap_shadows and
23389 alpha_align_insn from here.
23391 (alpha_pad_function_end): Do not skip BARRIERs.
23393 2014-07-10 Rong Xu <xur@google.com>
23395 Add gcov-tool: an offline gcda profile processing tool support.
23396 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
23397 (gcov_is_error): Ditto.
23398 (gcov_read_string): Ditto.
23399 (gcov_read_sync): Ditto.
23400 * gcov-io.h: Move counter defines to gcov-counter.def.
23401 * gcov-dump.c (tag_counters): Use gcov-counter.def.
23402 * coverage.c: Ditto.
23403 * gcov-tool.c: Offline gcda profile processing tool.
23404 (unlink_gcda_file): Remove one gcda file.
23405 (unlink_profile_dir): Remove gcda files from the profile path.
23406 (gcov_output_files): Output gcda files to an output dir.
23407 (profile_merge): Merge two profiles in directory.
23408 (print_merge_usage_message): Print merge usage.
23409 (merge_usage): Print merge usage and exit.
23410 (do_merge): Driver for profile merge sub-command.
23411 (profile_rewrite): Rewrite profile.
23412 (print_rewrite_usage_message): Print rewrite usage.
23413 (rewrite_usage): Print rewrite usage and exit.
23414 (do_rewrite): Driver for profile rewrite sub-command.
23415 (print_usage): Print gcov-info usage and exit.
23416 (print_version): Print gcov-info version.
23417 (process_args): Process arguments.
23418 (main): Main routine for gcov-tool.
23419 * Makefile.in: Build and install gcov-tool.
23420 * gcov-counter.def: New file split from gcov-io.h.
23421 * doc/gcc.texi: Include gcov-tool.texi.
23422 * doc/gcov-tool.texi: Document for gcov-tool.
23424 2014-07-10 Richard Biener <rguenther@suse.de>
23426 PR tree-optimization/61757
23427 * tree-ssa-dom.c (loop_depth_of_name): Restore.
23428 (propagate_rhs_into_lhs): Revert part of last change.
23430 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
23432 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
23435 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
23437 PR middle-end/53590
23438 * function.c (allocate_struct_function): Revert r188667 change.
23440 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
23442 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
23444 * doc/install.texi: Remove links to defunct package providers for
23447 2014-07-09 Tom de Vries <tom@codesourcery.com>
23449 * final.c (get_call_fndecl): Declare.
23450 (self_recursive_call_p): New function.
23451 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
23453 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23455 * ipa-devirt.c (record_node): Walk through aliases.
23457 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23459 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
23461 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23464 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
23466 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23468 * ipa-visibility.c (function_and_variable_visibility): Remove
23469 temporary hack disabling local aliases on AIX.
23471 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23473 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
23474 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
23476 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23478 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
23479 * rs6000/rs6000.c: Inline output of .set instruction.
23480 (declare_alias_data): New struct.
23481 (rs6000_declare_alias): New function.
23482 (rs6000_xcoff_declare_function_name): Use it.
23483 (rs6000_xcoff_declare_object_name): New function.
23484 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
23485 (ASM_OUTPUT_DEF): Turn to empty definition.
23487 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
23490 * hash-table.h: use hash_table::value_type instead of
23491 Descriptor::value_type in the return types of several methods.
23493 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
23495 * tree-pass.h (pass_data): Remove has_execute member.
23496 * passes.c (execute_one_pass): Don't check pass->has_execute.
23497 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
23498 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
23499 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
23500 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
23501 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
23502 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
23503 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
23504 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
23505 gimple-low.c, gimple-ssa-isolate-paths.c,
23506 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
23507 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
23508 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
23509 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
23510 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
23511 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
23512 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
23513 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
23514 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
23515 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
23516 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
23517 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
23518 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
23519 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
23520 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
23521 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
23522 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
23523 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
23524 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
23525 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
23526 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
23527 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
23528 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
23529 web.c: Remove initializer for pass_data::has_execute.
23531 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
23533 * graphite-htab.h: Use hash_map instead of hash_table.
23534 * graphite-clast-to-gimple.c: Adjust.
23535 * passes.c: Use hash_map instead of hash_table.
23536 * sese.c: Likewise.
23537 * sese.h: Remove now unused code.
23539 2014-07-08 Sriraman Tallam <tmsriram@google.com>
23542 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
23545 2014-07-08 Jakub Jelinek <jakub@redhat.com>
23547 PR rtl-optimization/61673
23548 * combine.c (simplify_comparison): Test just mode's sign bit
23549 in tmode rather than the sign bit and any bits above it.
23551 2014-07-08 Roman Gareev <gareevroman@gmail.com>
23553 * graphite-isl-ast-to-gimple.c (generate_isl_context):
23554 Add __isl_give to the declaration.
23555 (generate_isl_schedule): Likewise.
23556 (scop_to_isl_ast): Likewise.
23558 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23560 * config/arm/arm.c (cortexa5_extra_costs): New table.
23561 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
23563 2014-07-08 Jakub Jelinek <jakub@redhat.com>
23565 PR tree-optimization/61725
23566 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
23567 range, use range_includes_zerop_p instead of integer_zerop on
23568 vr0->min, only use log2 of max if min is not negative.
23570 2014-07-08 Richard Biener <rguenther@suse.de>
23572 * tree-ssa-dom.h (loop_depth_of_name): Remove.
23573 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
23574 restriction on loop depth difference.
23575 (record_equality): Likewise.
23576 (propagate_rhs_into_lhs): Likewise. Simplify condition.
23577 (loop_depth_of_name): Remove.
23578 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
23579 restriction on loop depth difference.
23580 (init_copy_prop): Likewise.
23582 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
23584 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
23586 (walk_aliased_vdefs): Likewise.
23587 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
23588 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
23589 (detect_type_change_from_memory_writes): Check if entry was reached.
23591 2014-07-08 Richard Biener <rguenther@suse.de>
23593 PR tree-optimization/61681
23594 * tree-ssa-structalias.c (find_what_var_points_to): Expand
23595 NONLOCAL inside ESCAPED.
23597 2014-07-08 Richard Biener <rguenther@suse.de>
23599 PR tree-optimization/61680
23600 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
23601 Handle properly all read-write dependences with group accesses.
23603 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
23605 PR tree-optimization/61576
23606 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
23607 block containing reduction statement is predecessor of phi basi block.
23609 2014-07-08 Marek Polacek <polacek@redhat.com>
23612 * fold-const.c (round_up_loc): Change the parameter type.
23614 * fold-const.h (round_up_loc): Adjust declaration.
23615 * stor-layout.c (finalize_record_size): Check for too large types.
23617 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
23619 * symtab.c: Include calls.h.
23620 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
23622 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
23624 * config/rs6000/rs6000.c (output_vec_const_move): Handle
23625 little-endian code generation.
23626 * config/rs6000/spe.md (spe_evmergehi): Rename to...
23627 (vec_perm00_v2si): ... this. Handle little-endian code generation.
23628 (spe_evmergehilo): Rename to...
23629 (vec_perm01_v2si): ... this. Handle little-endian code generation.
23630 (spe_evmergelo): Rename to...
23631 (vec_perm11_v2si): ... this. Handle little-endian code generation.
23632 (spe_evmergelohi): Rename to...
23633 (vec_perm10_v2si): ... this. Handle little-endian code generation.
23634 (spe_evmergehi, spe_evmergehilo): New expanders.
23635 (spe_evmergelo, spe_evmergelohi): Likewise.
23636 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
23637 (*frob_tf_ti): Likewise.
23638 (*frob_<mode>_di_2): Likewise.
23639 (*frob_tf_di_8_2): Likewise.
23640 (*frob_di_<mode>): Likewise.
23641 (*frob_ti_tf): Likewise.
23642 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
23643 (*frob_ti_<mode>_8_2): Likewise.
23644 (*frob_ti_tf_2): Likewise.
23645 (mov_si<mode>_e500_subreg0): Rename to...
23646 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
23648 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
23649 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
23650 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
23651 the big endianness only.
23652 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
23653 (*mov_si<mode>_e500_subreg0_2): Rename to...
23654 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
23655 big big endianness only.
23656 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
23657 (*mov_si<mode>_e500_subreg4): Rename to...
23658 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
23660 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
23661 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
23662 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
23663 the big endianness only.
23664 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
23666 (*mov_si<mode>_e500_subreg4_2): Rename to...
23667 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
23669 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
23670 (*mov_sitf_e500_subreg8): Rename to...
23671 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
23673 (*mov_sitf_e500_subreg8_le): New instruction pattern.
23674 (*mov_sitf_e500_subreg8_2): Rename to...
23675 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
23677 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
23678 (*mov_sitf_e500_subreg12): Rename to...
23679 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
23681 (*mov_sitf_e500_subreg12_le): New instruction pattern.
23682 (*mov_sitf_e500_subreg12_2): Rename to...
23683 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
23685 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
23687 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
23689 * asan.c (instrument_strlen_call): Do not instrument first byte
23690 in strlen if already instrumented.
23692 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23694 * config/arm/arm.opt (mwords-little-endian): Delete.
23695 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
23696 of TARGET_LITTLE_WORDS.
23697 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
23698 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
23700 * doc/invoke.texi: Remove references to -mwords-little-endian.
23702 2014-07-07 Jakub Jelinek <jakub@redhat.com>
23704 * expmed.c (struct init_expmed_rtl): Change all fields but
23705 pow2 and cint from struct rtx_def to rtx.
23706 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
23707 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
23710 2014-07-06 Marek Polacek <polacek@redhat.com>
23713 * doc/invoke.texi: Document -Wsizeof-array-argument.
23715 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
23717 * wide-int.h (wide_int_storage): Change declaration from struct
23720 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
23722 * cgraph.c (cgraph_create_indirect_edge): Update call of
23723 get_polymorphic_call_info.
23724 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
23725 (possible_polymorphic_call_targets): Add parameter call.
23726 (decl_maybe_in_construction_p): New predicate.
23727 (get_polymorphic_call_info): Add parameter call;
23728 use decl_maybe_in_construction_p.
23729 * gimple-fold.c (fold_gimple_assign): Update use of
23730 possible_polymorphic_call_targets.
23731 (gimple_fold_call): Likewise.
23732 * ipa-prop.c: Inlcude calls.h
23733 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
23734 (param_type_may_change_p): New predicate.
23735 (detect_type_change_from_memory_writes): Break out from ...
23736 (detect_type_change): ... this one; use param_type_may_change_p.
23737 (detect_type_change_ssa): Use param_type_may_change_p.
23738 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
23740 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
23743 * config/arm/arm-protos.h (arm_legitimate_address_p,
23744 arm_is_constant_pool_ref): Add prototypes.
23745 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
23746 (arm_is_constant_pool_ref) New function.
23747 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
23748 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
23749 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
23750 operand. Remove pool_range and neg_pool_range attributes.
23751 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
23752 pool_range and neg_pool_range attributes.
23753 * config/arm/constraints.md (Uh): New constraint.
23754 (Uq): Don't allow constant pool references.
23756 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
23758 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
23759 (move_lo_quad_internal_be_<mode>): Likewise.
23760 (move_lo_quad_<mode>): Convert to define_expand.
23761 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
23762 (aarch64_simd_move_hi_quad_be_<mode>): New.
23763 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
23764 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
23765 (aarch64_combinez_be<mode>): New.
23766 (aarch64_combine<mode>): Convert to define_expand.
23767 (aarch64_combine_internal<mode>): New.
23768 (aarch64_simd_combine<mode>): Remove bogus RTL description.
23770 2014-07-04 Tom de Vries <tom@codesourcery.com>
23772 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
23773 combination of earlyclobber and read/write modifiers.
23775 2014-07-04 Tom de Vries <tom@codesourcery.com>
23777 * config/aarch64/aarch64-simd.md
23778 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
23780 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
23783 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
23785 2014-07-04 Jakub Jelinek <jakub@redhat.com>
23787 PR middle-end/61654
23788 * cgraphunit.c (expand_thunk): Call free_dominance_info.
23790 PR tree-optimization/61684
23791 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
23792 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
23794 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23795 Kito Cheng <kito@0xlab.org>
23796 Monk Chiang <sh.chiang04@gmail.com>
23798 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
23799 (nds32_symbol_load_store_p): Move to ...
23800 (nds32_fp_as_gp_check_available): Move to ...
23801 * config/nds32/nds32-fp-as-gp.c: ... here.
23802 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
23803 extern declaration.
23805 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23806 Kito Cheng <kito@0xlab.org>
23807 Monk Chiang <sh.chiang04@gmail.com>
23809 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
23810 (nds32_expand_store_multiple): Move to ...
23811 (nds32_expand_movmemqi): Move to ...
23812 * config/nds32/nds32-memory-manipulation.c: ... here.
23814 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23815 Kito Cheng <kito@0xlab.org>
23816 Monk Chiang <sh.chiang04@gmail.com>
23818 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
23819 (nds32_output_casesi_pc_relative): Move to ...
23820 (nds32_output_casesi): Move to ...
23821 (nds32_mem_format): Move to ...
23822 (nds32_output_16bit_store): Move to ...
23823 (nds32_output_16bit_load): Move to ...
23824 (nds32_output_32bit_store): Move to ...
23825 (nds32_output_32bit_load): Move to ...
23826 (nds32_output_32bit_load_s): Move to ...
23827 (nds32_output_stack_push): Move to ...
23828 (nds32_output_stack_pop): Move to ...
23829 * config/nds32/nds32-md-auxiliary.c: ... here.
23831 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23832 Ling-Hua Tseng <uranus@tinlans.org>
23834 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
23835 the purpose of this file.
23837 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23838 Kito Cheng <kito@0xlab.org>
23839 Monk Chiang <sh.chiang04@gmail.com>
23841 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
23842 (nds32_address_cost): Move implementation to ...
23843 * config/nds32/nds32-cost.c: ... here.
23844 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
23845 (nds32_address_cost_impl): Declare.
23847 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23848 Kito Cheng <kito@0xlab.org>
23849 Monk Chiang <sh.chiang04@gmail.com>
23851 * config/nds32/nds32.c
23852 (nds32_consecutive_registers_load_store_p): Move to ...
23853 (nds32_valid_multiple_load_store): Move to ...
23854 (nds32_valid_stack_push_pop): Move to ...
23855 (nds32_can_use_bclr_p): Move to ...
23856 (nds32_can_use_bset_p): Move to ...
23857 (nds32_can_use_btgl_p): Move to ...
23858 (nds32_can_use_bitci_p): Move to ...
23859 * config/nds32/nds32-predicates.c: ... here.
23861 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23862 Kito Cheng <kito@0xlab.org>
23863 Monk Chiang <sh.chiang04@gmail.com>
23865 * config/nds32/nds32.c
23866 (nds32_expand_builtin_null_ftype_reg): Move to ...
23867 (nds32_expand_builtin_reg_ftype_imm): Move to ...
23868 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
23869 (nds32_init_builtins): Move implementation to ...
23870 (nds32_expand_builtin): Move implementation to ...
23871 * config/nds32/nds32-intrinsic.c: ... here.
23872 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
23873 (nds32_expand_builtin_impl): Declare.
23875 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23876 Kito Cheng <kito@0xlab.org>
23877 Monk Chiang <sh.chiang04@gmail.com>
23879 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
23880 (nds32_emit_section_tail_template): Move to ...
23881 (nds32_emit_isr_jmptbl_section): Move to ...
23882 (nds32_emit_isr_vector_section): Move to ...
23883 (nds32_emit_isr_reset_conten): Move to ...
23884 (nds32_check_isr_attrs_conflict): Move to ...
23885 (nds32_construct_isr_vectors_information): Move to ...
23886 (nds32_asm_file_start): Move implementation to ...
23887 (nds32_asm_file_end): Move implementation to ...
23888 * config/nds32/nds32-isr.c: ... here.
23889 * config/nds32/nds32-protos.h
23890 (nds32_check_isr_attrs_conflict): Declare.
23891 (nds32_construct_isr_vectors_information): Declare.
23892 (nds32_asm_file_start_for_isr): Declare.
23893 (nds32_asm_file_end_for_isr): Declare.
23895 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
23896 Kito Cheng <kito@0xlab.org>
23897 Monk Chiang <sh.chiang04@gmail.com>
23899 * config.gcc (nds32*): Add new modules to extra_objs.
23900 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
23901 (nds32be-*-*): Likewise.
23902 * config/nds32/nds32-cost.c: New file.
23903 * config/nds32/nds32-fp-as-gp.c: New file.
23904 * config/nds32/nds32-intrinsic.c: New file.
23905 * config/nds32/nds32-isr.c: New file.
23906 * config/nds32/nds32-md-auxiliary.c: New file.
23907 * config/nds32/nds32-memory-manipulation.c: New file.
23908 * config/nds32/nds32-pipelines-auxiliary.c: New file.
23909 * config/nds32/nds32-predicates.c: New file.
23910 * config/nds32/t-nds32: New file.
23912 2014-07-03 Jakub Jelinek <jakub@redhat.com>
23914 PR tree-optimization/61682
23915 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
23916 using cases and when one of the operands is equal to 1.
23918 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
23920 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
23921 ashr<mode>3): Correct mode of operands[2].
23922 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
23923 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
23924 Correct mode of operands[2]. Fix split condition.
23926 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
23928 * arm.md (arch): Add armv6_or_vfpv3.
23929 (arch_enabled): Add test for the above.
23930 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
23932 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
23934 2014-07-03 Jakub Jelinek <jakub@redhat.com>
23936 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
23937 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
23938 HWI 1 and negate the unsigned value.
23939 * expmed.c (expand_sdiv_pow2): For modes wider than word always
23940 use AND instead of shift.
23941 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
23943 2014-07-03 Marek Polacek <polacek@redhat.com>
23945 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
23946 (-fsanitize=float-divide-by-zero): Move to the table with
23947 -fsanitize=undefined suboptions.
23948 (-fsanitize=float-cast-overflow): Likewise.
23950 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
23952 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
23953 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
23956 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23958 * loop-invariant.c (struct invariant): Add a new member: eqno;
23959 (find_identical_invariants): Update eqno;
23960 (create_new_invariant): Init eqno;
23961 (get_inv_cost): Compute comp_cost with eqno;
23963 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
23965 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
23966 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
23967 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
23968 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
23969 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
23971 2014-07-02 Christian Bruel <christian.bruel@st.com>
23975 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
23976 (make_preds_opaque): Delete.
23977 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
23978 (commit_mode_sets): New function.
23979 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
23980 Process all modes at once.
23981 * basic-block.h (pre_edge_lcm_avs): Declare.
23982 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
23983 Call clear_aux_for_edges. Fix comments.
23984 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
23985 (pre_edge_rev_lcm): Idem.
23986 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
23988 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
23989 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
23991 * config/i386/i386.c (x96_emit_mode_set): Idem.
23992 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
23993 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
23994 (fpscr_toggle) Disallow from delay slot.
23995 * target.def (emit_mode_set): Add prev_mode parameter.
23996 * doc/tm.texi: Regenerate.
23998 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24000 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
24003 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
24005 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
24006 vtable_pointer_value_to_vtable): Constify.
24007 (contains_polymorphic_type_p): Declare.
24008 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
24009 vtable_pointer_value_to_vtable): Constify.
24010 (contains_polymorphic_type_p): New predicate.
24011 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
24013 (ipa_set_ancestor_jf): Likewise.
24014 (detect_type_change): Return false in easy cases.
24015 (compute_complex_assign_jump_func): Require type to contain
24017 (compute_known_type_jump_func): Likewise.
24019 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
24021 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
24023 (type_in_anonymous_namespace_p): Constify argument.
24024 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
24025 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
24026 (main_odr_variant): New function.
24027 (hash_type_name): Make static; update assert; do not ICE on
24029 (types_same_for_odr): Bring here from tree.c; simplify and remove
24030 old structural comparing code that doesn't work for templates.
24031 (odr_hasher::equal): Update assert.
24032 (add_type_duplicate): Return true when bases should be computed;
24033 replace incomplete loader by complete; do not output duplicated
24034 warnings; do not ICE on non-records; set odr_violated flag.
24035 (get_odr_type): Be ready to replace incomplete type by complete
24036 one; work on ODR variants instead of main variants; reorder item
24037 in array so bases have still smaller indexes.
24038 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
24039 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
24041 2014-07-01 Cary Coutant <ccoutant@google.com>
24043 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
24045 (resolve_addr_in_expr): When replacing the rtx in a location list
24046 entry, get a new address table entry.
24047 (dwarf2out_finish): Call index_location_lists even if there are no
24048 addr_index_table entries yet.
24050 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
24052 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
24053 change for not being obvious.
24055 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
24057 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
24060 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24062 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
24063 (vcagt_f64): Likewise.
24064 (vcale_f64): Likewise.
24065 (vcaled_f64): Likewise.
24066 (vcales_f32): Likewise.
24067 (vcalt_f64): Likewise.
24068 (vcaltd_f64): Likewise.
24069 (vcalts_f32): Likewise.
24071 2014-07-01 Marek Polacek <polacek@redhat.com>
24073 * doc/invoke.texi: Document -Wint-conversion.
24075 2014-07-01 Marek Polacek <polacek@redhat.com>
24078 * doc/invoke.texi: Document -Wincompatible-pointer-types.
24080 2014-07-01 Martin Liska <mliska@suse.cz>
24082 IPA REF alias refactoring
24083 * cgraph.h (iterate_direct_aliases): New function.
24084 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
24085 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
24086 FOR_EACH_ALIAS added.
24087 (cgraph_for_node_and_aliases): Likewise.
24088 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
24089 * ipa-inline.c (reset_edge_caches): Likewise.
24090 (update_caller_keys): Likewise.
24091 * trans-mem.c (ipa_tm_execute): Likewise.
24092 *varpool.c (varpool_analyze_node): Likewise.
24093 (varpool_for_node_and_aliases): Likewise.
24094 * ipa-ref.h (first_alias): New function.
24095 (last_alias): Likewise.
24096 (has_aliases_p): Likewise.
24097 * ipa-ref.c (ipa_ref::remove_reference): Removal function
24098 is sensitive to IPA_REF_ALIASes.
24099 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
24100 are put at the beginning of the list.
24101 (symtab_node::iterate_direct_aliases): New function.
24103 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24106 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
24108 (write_ts_type_common_tree_pointers): Do not stream fields not set
24109 for incomplete types; do not stream duplicated fields for variants;
24110 sanity check that variant and type match.
24111 (write_ts_type_non_common_tree_pointers): Likewise.
24112 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
24113 TYPE_SIZE whether type is complete.
24114 (lto_input_ts_type_common_tree_pointers): Do same changes as in
24115 write_ts_type_common_tree_pointers
24116 (lto_input_ts_type_non_common_tree_pointers): Likewise.
24118 2014-06-30 Joseph Myers <joseph@codesourcery.com>
24120 * var-tracking.c (add_stores): Return instead of asserting if old
24121 and new values for conditional store are the same.
24123 2014-06-30 Richard Henderson <rth@redhat.com>
24127 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
24128 the cfg if there were any changes.
24129 * passes.def: Revert move of peephole2 after reorder_blocks;
24130 move duplicate_computed_gotos before peephole2.
24132 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
24134 * except.c (emit_note_eh_region_end): New helper function.
24135 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
24136 emit EH_REGION_END note.
24137 * jump.c (cleanup_barriers): Do not split a call and its
24138 corresponding CALL_ARG_LOCATION note.
24140 2014-06-30 Jeff Law <law@redhat.com>
24142 PR tree-optimization/61607
24143 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
24144 deeper into the SSA_NAME_VALUE chain.
24146 2014-06-30 Marek Polacek <polacek@redhat.com>
24148 * convert.c (convert_to_integer): Don't instrument conversions if the
24149 function has no_sanitize_undefined attribute.
24150 * ubsan.c: Don't run the ubsan pass if the function has
24151 no_sanitize_undefined attribute.
24153 2014-06-30 Jakub Jelinek <jakub@redhat.com>
24155 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
24156 -fsanitize=undefined suboptions.
24158 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
24160 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
24161 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
24162 against bigendian and adjust indices.
24164 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
24166 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
24168 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
24171 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
24172 Add alternative; make early clobber. Adjust both split patterns
24173 to use operand 0 as the working register.
24175 2014-06-30 Jakub Jelinek <jakub@redhat.com>
24177 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
24178 as ira_object_id_map might be NULL, or 1.
24180 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24182 * loop-invariant.c (get_inv_cost): Handle register class.
24183 (gain_for_invariant): Check the register pressure of the inv
24184 and its overlapped register class, other than all.
24186 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
24188 * doc/invoke.texi (Optimize Options): Fix descriptions of
24189 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
24191 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
24193 * doc/extend.texi (Function Attributes): Update 'naked' attribute
24196 2014-06-29 Tobias Grosser <tobias@grosser.es>
24199 * graphite-isl-ast-to-gimple.c: Add missing guards.
24201 2014-06-29 Roman Gareev <gareevroman@gmail.com>
24203 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
24204 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
24205 * flag-types.h: Add new enum fgraphite_generator.
24206 * graphite-isl-ast-to-gimple.c: New.
24207 * graphite-isl-ast-to-gimple.h: New.
24208 * graphite.c (graphite_transform_loops): Add choice of Graphite
24209 code generator, which depends on flag_graphite_code_gen.
24211 2014-06-29 Roman Gareev <gareevroman@gmail.com>
24213 * graphite-dependences.c (subtract_commutative_associative_deps):
24214 Add NULL checking of the following variables: must_raw_no_source,
24215 may_raw_no_source, must_war_no_source, may_war_no_source,
24216 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
24217 must_war, may_war, must_waw, may_waw.
24219 2014-06-29 Roman Gareev <gareevroman@gmail.com>
24221 * graphite-clast-to-gimple.c: gloog is renamed to
24222 graphite_regenerate_ast_cloog. gloog_error is renamed to
24223 graphite_regenerate_error.
24224 * graphite-clast-to-gimple.h: The definition of the struct
24225 bb_pbb_def is moved to graphite-htab.h.
24226 Add inclusion of the hash-table.h.
24227 * graphite-htab.h: The declaration of the function gloog is moved
24228 to graphite-clast-to-gimple.h and renamed to
24229 graphite_regenerate_ast_cloog.
24230 * graphite.c (graphite_transform_loops): gloog is renamed
24231 to graphite_regenerate_ast_cloog.
24233 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24235 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
24237 (write_ts_type_common_tree_pointers): Do not stream fields not set
24238 for incomplete types; do not stream duplicated fields for variants;
24239 sanity check that variant and type match.
24240 (write_ts_type_non_common_tree_pointers): Likewise.
24241 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
24242 TYPE_SIZE whether type is complete.
24243 (lto_input_ts_type_common_tree_pointers): Do same changes as in
24244 write_ts_type_common_tree_pointers
24245 (lto_input_ts_type_non_common_tree_pointers): Likewise.
24247 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24249 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
24251 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24253 * tree-inline.c (remap_type_1): Do not duplicate fields
24254 that are shared in between type and its main variant.
24256 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24258 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
24260 (ipa_set_ancestor_jf) Likewise.
24261 (check_stmt_for_type_change): Check that we work on main variant.
24262 (detect_type_change): Look into main variant.
24263 (compute_known_type_jump_func): Check that main variant has BINFO.
24265 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24267 * ipa-devirt.c (set_type_binfo): New function.
24268 (add_type_duplicate): Use it.
24269 (get_odr_type): Sanity check that binfos points to main variants.
24270 (get_class_context): Be sure the context's outer_type is main variant.
24271 (contains_type_p): Walk main variant.
24272 (get_polymorphic_call_info_for_decl): Set outer_type to be
24274 (get_polymorphic_call_info): Likewise.
24275 (possible_polymorphic_call_targets): Sanity check that we operate
24278 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
24280 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
24282 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24284 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
24285 accidental change due to wide-int branch merge.
24287 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24289 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
24290 compressed debug support.
24291 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
24292 * configure: Regenerate.
24293 * config.in: Regenerate.
24294 * common.opt (compressed_debug_sections): New enum.
24295 (gz, gz=): New options.
24296 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
24297 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
24298 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
24299 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
24300 LINK_COMPRESS_DEBUG_SPEC.
24301 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
24302 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
24303 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
24304 (Debugging Options): Document -gz[=type].
24306 2014-06-27 Martin Jambor <mjambor@suse.cz>
24309 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
24310 args_to_skip, use those from node instead. Copy args_to_skip and
24311 combined_args_to_skip from node to the new thunk.
24312 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
24313 (cgraph_create_virtual_clone): Moved computation of
24314 combined_args_to_skip...
24315 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
24317 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
24319 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
24320 redundant diagnostic machinary.
24322 2014-06-27 Richard Biener <rguenther@suse.de>
24324 * tree-ssa-math-opts.c (bswap_replace): Fix
24325 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
24327 2014-06-27 Martin Liska <mliska@suse.cz>
24329 * gimple.h (gimple_location_safe): New function introduced.
24330 * cgraphunit.c (walk_polymorphic_call_targets): Usage
24331 of gimple_location_safe replaces gimple_location.
24332 (gimple_fold_call): Likewise.
24333 * ipa-devirt.c (ipa_devirt): Likewise.
24334 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
24335 * ipa.c (walk_polymorphic_call_targets): Likewise.
24336 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
24338 2014-06-27 Jakub Jelinek <jakub@redhat.com>
24340 PR tree-optimization/57233
24341 PR tree-optimization/61299
24342 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
24344 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
24345 would be lowered to scalar shifts, check if corresponding
24346 shifts and vector BIT_IOR_EXPR are supported and don't lower
24347 or lower just to narrower vector type in that case.
24348 * expmed.c (expand_shift_1): Fix up handling of vector
24349 shifts and rotates.
24351 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
24354 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
24356 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
24358 * doc/invoke.texi (-fsemantic-interposition): Document.
24359 * common.opt (fsemantic-interposition): New flag.
24360 * varasm.c (decl_replaceable_p): Use it.
24362 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24365 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
24366 extraction other than index 3.
24368 2014-06-26 Teresa Johnson <tejohnson@google.com>
24370 * doc/invoke.texi: Fix typo.
24371 * dumpfile.c: Add support for documented -fdump-* options
24372 optimized/missed/note/optall.
24374 2014-06-26 Martin Jambor <mjambor@suse.cz>
24376 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
24377 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
24378 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
24379 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
24380 * opts.c (default_options_optimization): Set
24381 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
24382 * doc/invoke.texi (allow-load-data-races)
24383 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
24384 (allow-store-data-races): Document the new default.
24386 2014-06-26 Martin Jambor <mjambor@suse.cz>
24388 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
24389 renamed to ipa_impossible_devirt_target. Fix typo.
24390 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
24391 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
24392 ipa_impossible_devirt_target.
24394 2014-06-26 Richard Biener <rguenther@suse.de>
24396 PR tree-optimization/61607
24397 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
24398 explaining why we restrict copies on loop depth.
24399 * tree-ssa-dom.c (cprop_operand): Remove restriction on
24401 (record_equivalences_from_phis): Instead add it here.
24403 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
24405 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
24406 (LTO_WRAPPER_OBJS): New variable.
24407 (lto-wrapper$(exeext)): Use it.
24408 * collect2.c: Include "collect-utils.h".
24409 (verbose, debug): Remove variables.
24410 (at_file_supplied): No longer static.
24411 (tool_name): New variable.
24412 (do_wait, fork_execute, maybe_unlink): Don't declare.
24413 (tool_cleanup): No longer static.
24414 (notice): Remove function.
24415 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
24416 fork_execute calls.
24417 (collect_wait, do_wait, collect_execute): Remove functions.
24418 (maybe_unlink): No longer static.
24419 * collect2.h (verbose, debug): Don't declare.
24420 (at_file_supplied): Declare.
24421 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
24423 (collect_execute): Replace with implementation from collect2, plus a
24424 new arg use_atfile. All callers changed.
24425 (collect_wait): Replace with implementation from collect2.
24426 (maybe_unlink_file): Remove function.
24427 (fork_execute): Replace with implementation from collect2, plus a
24428 new arg use_atfile. All callers changed.
24429 (do_wait): Add call to utils_cleanup to the error path.
24430 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
24431 (tool_cleanup): Adjust declarations.
24432 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
24433 * tlink.c: Include "collect-utils.h".
24434 (tlink_execute): New arg use_atfile. All callers changed.
24435 (tlink_init, tlink_execute): Remove declarations.
24437 * collect-utils.c (save_temps): New variable.
24438 (do_wait): Use it instead of debug. Use fatal_error.
24439 * collect-utils.h (save_temps): Declare.
24440 * collect2.c (verbose): Rename from vflag. All uses changed.
24441 (tool_cleanup): New function, copied from collect_atexit.
24442 (collect_atexit, handler): Just call it.
24443 * collect2.h (verbose): Declaration renamed from vflag.
24444 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
24447 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
24448 (lto-wrapper$(exeext)): Link with collect-utils.o.
24449 * collect-utils.c: New file.
24450 * collect-utils.h: New file.
24451 * lto-wrapper.c: Include "collect-utils.h".
24452 (args_name): Delete variable.
24453 (tool_name): New variable.
24454 (tool_cleanup): New function.
24455 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
24456 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
24457 (fork_execute): Remove functions.
24459 2014-06-26 Nick Clifton <nickc@redhat.com>
24461 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
24463 * doc/extend.texi (Function Attributes): Fix typo in description
24464 of RX vector attribute.
24466 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
24468 * config.gcc (supported_defaults): Error when passing either
24469 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
24471 2014-06-26 Richard Biener <rguenther@suse.de>
24473 * tree-ssa-dom.c (cprop_operand): Remove restriction on
24474 propagating volatile pointers.
24476 2014-06-26 Richard Biener <rguenther@suse.de>
24478 PR tree-optimization/61607
24479 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
24480 loop if we redirected its latch edge.
24481 (thread_block_1): Do not cancel loops prematurely.
24483 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
24485 * toplev.c (backend_init_target): Move init_emit_regs and
24487 (backend_init) ... here; skip ira_init_once and backend_init_target.
24488 (target_reinit) ... and here; clear
24489 this_target_rtl->lang_dependent_initialized.
24490 (lang_dependent_init_target): Clear
24491 this_target_rtl->lang_dependent_initialized;
24492 break out rtl initialization to ...
24493 (initialize_rtl): ... here; call also backend_init_target
24495 * toplev.h (initialize_rtl): New function.
24496 * function.c: Include toplev.h
24497 (init_function_start): Call initialize_rtl.
24498 * rtl.h (target_rtl): Add target_specific_initialized,
24499 lang_dependent_initialized.
24501 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
24502 Jakub Jelinek <jakub@redhat.com>
24504 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
24506 2014-06-25 Tom de Vries <tom@codesourcery.com>
24508 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
24510 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
24512 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
24513 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
24514 Issue a strict overflow warning if appropriate.
24516 2014-06-25 Martin Liska <mliska@suse.cz>
24518 IPA REF refactoring
24519 * Makefile.in: Removed header file (ipa-ref-inline.h).
24520 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
24522 (cgraph_speculative_call_info): Likewise.
24523 (cgraph_for_node_thunks_and_aliases): Likewise.
24524 (cgraph_for_node_and_aliases): Likewise.
24525 (verify_cgraph_node): Likewise.
24526 * cgraph.h: Batch of IPA REF functions become member functions of
24527 symtab_node: add_reference, maybe_add_reference, clone_references,
24528 clone_referring, clone_reference, find_reference,
24529 remove_stmt_references, remove_all_references,
24530 remove_all_referring, dump_references, dump_referring,
24531 has_alias_p, iterate_reference, iterate_referring.
24532 * cgraphbuild.c (record_reference): New IPA REF function used.
24533 (record_type_list): Likewise.
24534 (record_eh_tables): Likewise.
24535 (mark_address): Likewise.
24536 (mark_load): Likewise.
24537 (mark_store): Likewise.
24538 (pass_build_cgraph_edges): Likewise.
24539 (rebuild_cgraph_edge): Likewise.
24540 (cgraph_rebuild_references): Likewise.
24541 (pass_remove_cgraph_callee_edges): Likewise.
24542 * cgraphclones.c (cgraph_clone_node): Likewise.
24543 (cgraph_create_virtual_clone): Likewise.
24544 (cgraph_materialize_clone): Likewise.
24545 (cgraph_materialize_all_clones): Likewise.
24546 * cgraphunit.c (cgraph_reset_node): Likewise.
24547 (cgraph_reset_node): Likewise.
24548 (analyze_function): Likewise.
24549 (assemble_thunks_and_aliases): Likewise.
24550 (expand_function): Likewise.
24551 * ipa-comdats.c (propagate_comdat_group): Likewise.
24552 (enqueue_references): Likewise.
24553 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
24554 (create_specialized_node): Likewise.
24555 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
24556 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
24557 * ipa-inline.c (reset_edge_caches): Likewise.
24558 (update_caller_keys): Likewise.
24559 (execute): Likewise.
24560 * ipa-prop.c (remove_described_reference): Likewise.
24561 (propagate_controlled_uses): Likewise.
24562 (ipa_edge_duplication_hook): Likewise.
24563 (ipa_modify_call_arguments): Likewise.
24564 * ipa-pure-const.c (propagate_pure_const): Likewise.
24565 * ipa-ref-inline.h: Header file removed, functions moved
24566 to symtab_node class.
24567 * ipa-ref.c (remove_reference): New class member function.
24568 (cannot_lead_to_return): New class member function.
24569 (referring_ref_list): Likewise.
24570 (referred_ref_list): Likewise.
24571 Rest of functions moved to symtab_node class.
24572 * ipa-ref.h: New member functions remove_reference,
24573 cannot_lead_to_return, referring_ref_list, referred_ref_list added
24575 ipa_ref_list class has new member functions: first_reference,
24576 first_referring, clear, nreferences.
24577 * ipa-reference.c (analyze_function): New IPA REF function used.
24578 (write_node_summary_p): Likewise.
24579 (ipa_reference_write_optimization_summary): Likewise.
24580 * ipa-split.c (split_function): Likewise.
24581 * ipa-utils.c (ipa_reverse_postorder): Likewise.
24582 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
24583 (function_and_variable_visibility): Likewise.
24584 * ipa.c (has_addr_references_p): Likewise.
24585 (process_references): Argument type changed.
24586 (symtab_remove_unreachable_nodes): New IPA REF function used.
24587 (process_references): Likewise.
24588 (set_writeonly_bit): Likewise.
24589 * lto-cgraph.c: Implementation of new symtab_node member functions
24590 that uses new IPA REF functions.
24591 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
24593 * lto-streamer-out.c (output_symbol_p): Likewise.
24594 * lto-streamer.h (referenced_from_this_partition_p): Argument type
24596 * symtab.c: Implementation of new IPA REF API.
24597 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
24598 (ipa_tm_create_version): Likewise.
24599 (ipa_tm_execute): Likewise.
24600 * tree-emutls.c (gen_emutls_addr): Likewise.
24601 * tree-inline.c (copy_bb): Likewise.
24602 (delete_unreachable_blocks_update_callgraph): Likewise.
24603 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
24604 (varpool_for_node_and_aliases): Likewise.
24606 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
24608 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
24610 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
24613 * fold-const.c (fold_checksum_tree): Use a hash_table of const
24614 tree_node * instead of tree_node *.
24616 (print_fold_checksum): Likewise.
24617 (fold_check_failed): Likewise.
24618 (debug_fold_checksum): Likewise.
24619 (fold_build1_stat_loc): Likewise.
24620 (fold_build2_stat_loc): Likewise.
24621 (fold_build3_stat_loc): Likewise.
24622 (fold_build_call_array_loc): Likewise.
24624 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
24626 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
24627 implementation with call to...
24628 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
24630 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
24633 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
24635 PR tree-optimization/57742
24636 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
24637 after replacing the statement.
24639 2014-06-25 Nick Clifton <nickc@redhat.com>
24641 * config/v850/v850.c (GHS_default_section_names): Change to const
24643 (GHS_current_section_names): Likewise.
24644 (v850_insert_attributes): Do not build strings, just assign the
24645 names directly. Change the type of 'chosen_section' to const
24647 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
24648 directly to the array entry.
24649 * config/v850/v850.h (GHS_default_section_names): Change to const
24651 (GHS_current_section_names): Likewise.
24653 2014-06-25 Jakub Jelinek <jakub@redhat.com>
24655 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
24656 (LANG_HOOKS_DECLS): Add it.
24657 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
24659 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
24660 * langhooks.h (struct lang_hooks_for_decls): Add
24661 omp_clause_linear_ctor hook.
24662 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
24663 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
24664 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
24665 combined simd loop use omp_clause_linear_ctor hook.
24667 2014-06-24 Cong Hou <congh@google.com>
24669 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
24670 pattern recognition.
24671 (type_conversion_p): PROMOTION is true if it's a type promotion
24672 conversion, and false otherwise. Return true if the given expression
24673 is a type conversion one.
24674 * tree-vectorizer.h: Adjust the number of patterns.
24675 * tree.def: Add SAD_EXPR.
24676 * optabs.def: Add sad_optab.
24677 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
24678 * expr.c (expand_expr_real_2): Likewise.
24679 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
24680 * gimple.c (get_gimple_rhs_num_ops): Likewise.
24681 * optabs.c (optab_for_tree_code): Likewise.
24682 * tree-cfg.c (estimate_operator_cost): Likewise.
24683 * tree-ssa-operands.c (get_expr_operands): Likewise.
24684 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
24685 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
24686 * doc/generic.texi: Add document for SAD_EXPR.
24687 * doc/md.texi: Add document for ssad and usad.
24689 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24691 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
24692 qualification in cast.
24694 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
24696 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
24697 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
24698 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
24699 (tree_function_decl): ... here.
24700 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
24701 streaming of vindex to ...
24702 (write_ts_function_decl_tree_pointers): ... here.
24703 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
24704 Do not stream DECL_VINDEX.
24705 (lto_input_ts_function_decl_tree_pointers): Stream it here.
24707 2014-06-24 Catherine Moore <clm@codesourcery.com>
24708 Sandra Loosemore <sandra@codesourcery.com>
24710 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
24711 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
24712 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
24714 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
24716 * doc/invoke.texi (Warning Options): Remove duplicated
24717 -Wmaybe-uninitialized.
24719 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
24721 PR tree-optimization/57742
24722 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
24723 (handle_builtin_malloc, handle_builtin_memset): New functions.
24724 (strlen_optimize_stmt): Call them.
24725 * passes.def: Move strlen after loop+dom but before vrp.
24727 2014-06-24 Jakub Jelinek <jakub@redhat.com>
24730 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
24731 model family 6 CPU with has_longmode never use a CPU without
24734 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
24737 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
24740 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24742 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
24743 * dominance.c (iterate_fix_dominators): Use hash_map instead of
24745 * hash-map.h: New file.
24746 * ipa-comdats.c: Use hash_map instead of pointer_map.
24748 * lto-section-out.c: Adjust.
24749 * lto-streamer.h: Replace pointer_map with hash_map.
24750 * symtab.c (verify_symtab): Likewise.
24751 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
24752 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
24753 * tree-streamer.h: Likewise.
24754 * tree-streamer.c: Adjust.
24755 * pointer-set.h: Remove pointer_map.
24757 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24759 * hash-table.h: Add a template arg to choose between storing values
24760 and storing pointers to values, and then provide partial
24761 specializations for both.
24762 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
24763 should store, not the type values should point to.
24764 * tree-into-ssa.c (var_info_hasher): Likewise.
24765 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
24766 * tree-complex.c: Adjust.
24767 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
24768 table instead of int_tree_map *.
24769 * tree-parloops.c: Adjust.
24770 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
24771 type is being stored.
24772 * tree-vectorizer.c: Adjust.
24774 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
24776 * hash-table.h: Remove a layer of indirection from hash_table so that
24777 it contains the hash table's data instead of a pointer to the data.
24778 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
24779 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
24780 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
24781 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
24782 fold-const.c, gcse.c, ggc-common.c,
24783 gimple-ssa-strength-reduction.c, gimplify.c,
24784 graphite-clast-to-gimple.c, graphite-dependences.c,
24785 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
24786 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
24787 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
24788 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
24789 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
24790 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
24791 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
24792 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
24793 tree-ssa-live.c, tree-ssa-loop-im.c,
24794 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
24795 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
24796 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
24797 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
24798 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
24799 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
24800 vtable-verify.c, vtable-verify.h: Adjust.
24802 2014-06-24 Richard Biener <rguenther@suse.de>
24804 PR tree-optimization/61572
24805 * tree-ssa-sink.c (statement_sink_location): Do not sink
24806 loads from hard registers.
24808 2014-06-24 Jakub Jelinek <jakub@redhat.com>
24810 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
24811 not mentioned in clauses use private clause if the iterator is
24812 declared in #pragma omp for simd, and when adding lastprivate
24813 instead, add it to the outer #pragma omp for too. Diagnose
24814 if the variable is private in outer context. For simd collapse > 1
24815 loops, replace all iterators with temporaries.
24816 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
24817 same even in collapse > 1 loops.
24819 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
24820 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
24822 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
24823 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
24825 (gimplify_adjust_omp_clauses): Likewise.
24826 * omp-low.c (lower_rec_simd_input_clauses,
24827 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
24828 safelen the same as safelen(1).
24829 * tree-nested.c (convert_nonlocal_omp_clauses,
24830 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
24831 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
24832 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
24833 Fixup handling of GIMPLE_OMP_TARGET.
24834 (convert_tramp_reference_stmt, convert_gimple_call): Handle
24837 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
24839 PR tree-optimization/61554
24840 * tree-ssa-propagate.c: Include "bitmap.h".
24841 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
24842 properly update constructor/destructor.
24843 (substitute_and_fold_dom_walker::before_dom_children):
24844 Remove call to gimple_purge_dead_eh_edges, add bb->index to
24845 need_eh_cleaup instead.
24846 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
24849 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
24851 * varpool.c (dump_varpool_node): Dump used_by_single_function.
24852 * tree-pass.h (make_pass_ipa_single_use): New pass.
24853 * cgraph.h (used_by_single_function): New flag.
24854 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
24856 * passes.def (pass_ipa_single_use): Scedule.
24857 * ipa.c (BOTTOM): New macro.
24858 (meet): New function
24859 (propagate_single_user): New function.
24860 (ipa_single_use): New function.
24861 (pass_data_ipa_single_use): New pass.
24862 (pass_ipa_single_use): New pass.
24863 (pass_ipa_single_use::gate): New gate.
24864 (make_pass_ipa_single_use): New function.
24866 2014-06-23 Kai Tietz <ktietz@redhat.com>
24869 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
24870 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
24872 2014-06-23 Richard Biener <rguenther@suse.de>
24874 * tree-ssa-loop.c (gate_loop): New function.
24875 (pass_tree_loop::gate): Call it.
24876 (pass_data_tree_no_loop, pass_tree_no_loop,
24877 make_pass_tree_no_loop): New.
24878 * tree-vectorizer.c: Include tree-scalar-evolution.c
24879 (pass_slp_vectorize::execute): Initialize loops and SCEV if
24881 (pass_slp_vectorize::clone): New method.
24882 * timevar.def (TV_TREE_NOLOOP): New.
24883 * tree-pass.h (make_pass_tree_no_loop): Declare.
24884 * passes.def (pass_tree_no_loop): New pass group with
24887 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
24890 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
24891 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
24893 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
24895 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
24896 "yes" where needed.
24898 2014-06-23 Alan Modra <amodra@gmail.com>
24901 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
24902 to zero on debug statements.
24904 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
24907 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
24908 Ignore third operand if present by marking qualifier_internal.
24910 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
24912 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
24914 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
24915 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
24916 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
24917 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
24918 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
24919 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
24920 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
24921 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
24922 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
24923 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
24924 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
24925 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
24926 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
24927 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
24928 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
24929 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
24930 logic in GCC vector extensions
24932 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
24933 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
24934 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
24935 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
24936 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
24937 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
24938 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
24939 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
24940 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
24941 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
24943 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
24945 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
24948 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
24949 (vget_low_s64): Use __GET_LOW macro.
24950 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
24951 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
24952 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
24953 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
24954 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
24956 (vcombine_s64): Use GCC vector extensions; remove cast.
24957 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
24958 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
24959 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
24960 Fix type signature; remove cast.
24962 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
24965 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
24967 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
24969 (BUILTIN_VD1): New.
24970 (BUILTIN_VD_RE): Remove.
24971 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
24972 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
24973 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
24974 variant but not df.
24975 (vreinterpretv1df*, vreinterpret*v1df): New.
24976 (vreinterpretdf*, vreinterpret*df): Remove.
24977 * config/aarch64/aarch64-simd.md (aarch64_create,
24978 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
24979 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
24981 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
24982 (vcreate_f64): Remove cast, use v1df builtin.
24983 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
24984 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
24985 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
24986 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
24987 vmov_n_f64, vst1_f64): Use gcc vector extensions.
24988 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
24989 add range check using __builtin_aarch64_im_lane_boundsi.
24990 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
24991 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
24992 type signature, use gcc vector extensions.
24993 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
24994 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
24995 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
24996 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
24997 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
24998 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
24999 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
25000 vreinterpret_u64_f64): Use v1df builtin not df.
25002 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
25004 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
25007 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
25009 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
25012 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25014 * loop-invariant.c (pre_check_invariant_p): New function.
25015 (find_invariant_insn): Call pre_check_invariant_p.
25017 2014-06-22 Richard Henderson <rth@redhat.com>
25020 * compare-elim.c (struct comparison): Add eh_note.
25021 (find_comparison_dom_walker::before_dom_children): Don't eliminate
25022 a redundant comparison in a different EH region. Purge EH edges if
25025 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25027 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
25028 (var_shift): Use it.
25029 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
25030 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
25031 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
25032 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
25033 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
25034 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
25035 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
25036 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
25037 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
25038 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
25039 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
25040 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
25041 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
25042 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
25043 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
25044 *rotldi3_internal15be): Use the new attribute. Merge register and
25045 integer alternatives.
25047 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25049 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
25050 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
25051 split, *ashrdi3_internal3 and split): Delete, merge into...
25052 (ashr<mode>3): New expander.
25053 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
25054 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
25056 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25058 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
25059 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
25060 *rotldi3_internal3 and split): Delete, merge into...
25061 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
25062 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
25063 Use "rotlw" extended mnemonic.
25065 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25067 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
25068 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
25069 and split, *ashldi3_internal3 and split): Delete, merge into...
25070 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
25071 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
25073 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25075 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
25076 (lshrsi3, two anonymous define_insns and define_splits,
25077 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
25078 *lshrdi3_internal3 and split): Delete, merge into...
25079 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
25080 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
25082 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
25084 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
25085 Remove "O" alternative.
25087 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
25089 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
25090 (mips_move_from_gpr_cost): Likewise.
25091 (mips_register_move_cost): Update accordingly.
25092 (mips_secondary_reload_class): Remove name of in_p.
25094 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
25097 * config/i386/i386.md (x86_64_shrd, x86_shrd,
25098 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
25100 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
25102 * config/nios2/nios2.c: Include "builtins.h".
25104 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
25106 * cgraph.h (tls_model_names): New variable.
25107 * print-tree.c (print_node): Simplify.
25108 * varpool.c (tls_model_names): New variable.
25109 (dump_varpool_node): Output tls model.
25111 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
25113 * ipa-visibility.c (function_and_variable_visibility): Disable
25114 temporarily local aliases for some targets.
25116 2014-06-20 Marek Polacek <polacek@redhat.com>
25118 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
25119 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
25120 into SANITIZE_UNDEFINED.
25121 * doc/invoke.texi: Describe -fsanitize=bounds.
25122 * gimplify.c (gimplify_call_expr): Add gimplification of internal
25123 functions created in the FEs.
25124 * internal-fn.c: Move "internal-fn.h" after "tree.h".
25125 (expand_UBSAN_BOUNDS): New function.
25126 * internal-fn.def (UBSAN_BOUNDS): New internal function.
25127 * internal-fn.h: Don't define internal functions here.
25128 * opts.c (common_handle_option): Add -fsanitize=bounds.
25129 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
25130 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
25131 * tree-core.h: Define internal functions here.
25132 (struct tree_base): Add ifn field.
25133 * tree-pretty-print.c: Include "internal-fn.h".
25134 (dump_generic_node): Handle functions without CALL_EXPR_FN.
25135 * tree.c (get_callee_fndecl): Likewise.
25136 (build_call_expr_internal_loc): New function.
25137 * tree.def (CALL_EXPR): Update description.
25138 * tree.h (CALL_EXPR_IFN): Define.
25139 (build_call_expr_internal_loc): Declare.
25140 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
25142 (ubsan_type_descriptor): Change bool parameter to enum
25143 ubsan_print_style. Adjust the code. Add handling of
25145 (ubsan_expand_bounds_ifn): New function.
25146 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
25147 (ubsan_build_overflow_builtin): Likewise.
25148 (instrument_bool_enum_load): Likewise.
25149 (ubsan_instrument_float_cast): Likewise.
25150 * ubsan.h (enum ubsan_print_style): New enum.
25151 (ubsan_expand_bounds_ifn): Declare.
25152 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
25154 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
25156 * config/rs6000/rs6000.md: Append `DONE' to preparation
25157 statements of `bswap' pattern splitters.
25159 2014-06-20 Tom de Vries <tom@codesourcery.com>
25161 * target.def (call_fusage_contains_non_callee_clobbers): Update
25163 * doc/tm.texi: Regenerate.
25165 2014-06-20 Yury Gribov <y.gribov@samsung.com>
25166 Max Ostapenko <m.ostapenko@partner.samsung.com>
25169 * asan.c (instrument_strlen_call): Fixed instrumentation of
25172 2014-06-20 Martin Jambor <mjambor@suse.cz>
25175 * ipa-prop.c (impossible_devirt_target): New function.
25176 (try_make_edge_direct_virtual_call): Use it, also instead of
25179 2014-06-20 Yury Gribov <y.gribov@samsung.com>
25180 Max Ostapenko <m.ostapenko@partner.samsung.com>
25183 * asan.c (build_check_stmt): Add condition.
25185 2014-06-20 Martin Jambor <mjambor@suse.cz>
25188 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
25191 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25193 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
25195 (VCONQ): Make comment more helpful.
25197 * config/aarch64/aarch64-simd.md
25198 (aarch64_sqdmulh_lane<mode>):
25199 Use VCOND for operands 2. Update lane checking and flipping logic.
25200 (aarch64_sqrdmulh_lane<mode>): Likewise.
25201 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
25202 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
25203 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
25204 attribute of operand 3 to VCOND.
25205 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
25206 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
25207 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
25208 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
25209 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
25210 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
25212 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
25213 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
25214 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
25215 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
25216 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
25217 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
25218 operand to VCOND. Update lane flipping and bounds checking logic.
25219 (aarch64_sqdmlal2_lane<mode>): Likewise.
25220 (aarch64_sqdmlsl_lane<mode>): Likewise.
25221 (aarch64_sqdmull_lane<mode>): Likewise.
25222 (aarch64_sqdmull2_lane<mode>): Likewise.
25223 (aarch64_sqdmlal_laneq<mode>):
25224 Replace VCON usage with VCONQ.
25225 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
25226 (aarch64_sqdmlal2_laneq<mode>): Emit
25227 aarch64_sqdmlal2_laneq<mode>_internal insn.
25228 Replace VCON with VCONQ.
25229 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
25230 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
25231 (aarch64_sqdmull_laneq<mode>): Emit
25232 aarch64_sqdmull_laneq<mode>_internal insn.
25233 Replace VCON with VCONQ.
25234 (aarch64_sqdmull2_laneq<mode>): Emit
25235 aarch64_sqdmull2_laneq<mode>_internal insn.
25236 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
25237 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
25238 of 3rd argument to int16x4_t.
25239 (vqdmlalh_lane_s16): Likewise.
25240 (vqdmlslh_lane_s16): Likewise.
25241 (vqdmull_high_lane_s16): Likewise.
25242 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
25243 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
25244 (vqdmlsl_lane_s16): Likewise.
25245 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
25246 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
25247 (vqdmlals_lane_s32): Likewise.
25248 (vqdmlsls_lane_s32): Likewise.
25249 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
25250 (vqdmulls_lane_s32): Likewise.
25251 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
25252 (vqdmlsl_lane_s32): Likewise.
25253 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
25254 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
25255 (vqrdmulhh_lane_s16): Likewise.
25256 (vqdmlsl_high_lane_s16): Likewise.
25257 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
25258 (vqdmlsl_high_lane_s32): Likewise.
25259 (vqrdmulhs_lane_s32): Likewise.
25261 2014-06-20 Tom de Vries <tom@codesourcery.com>
25263 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
25264 get_call_reg_set_usage.
25266 2014-06-20 Tom de Vries <tom@codesourcery.com>
25268 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
25269 it contains all call_used_regs.
25271 2014-06-20 Tom de Vries <tom@codesourcery.com>
25273 * final.c (collect_fn_hard_reg_usage): Add and use variable
25274 function_used_regs.
25276 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
25278 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
25279 (set_init_priority, get_init_priority, set_fini_priority,
25280 get_fini_priority): New methods.
25281 * tree.c (init_priority_for_decl): Remove.
25282 (init_ttree): Do not initialize init priority.
25283 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
25284 (decl_priority_info): Remove.
25285 (decl_init_priority_insert): Rewrite.
25286 (decl_fini_priority_insert): Rewrite.
25287 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
25288 tree_priority_map_marked_p): Remove.
25289 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
25290 * lto-streamer-out.c (hash_tree): Do not hash priorities.
25291 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
25292 not output priorities.
25293 (pack_ts_function_decl_value_fields): Likewise.
25294 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
25295 not input priorities.
25296 (unpack_ts_function_decl_value_fields): Likewise.
25297 * symtab.c (symbol_priority_map): Declare.
25298 (init_priority_hash): Declare.
25299 (symtab_unregister_node): Unregister from priority hash, too.
25300 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
25302 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
25303 (symbol_priority_info): New function.
25304 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
25306 * tree-core.h (tree_priority_map): Remove.
25308 2014-06-20 Jakub Jelinek <jakub@redhat.com>
25310 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
25311 0xff to uint64_t before shifting it up.
25313 2014-06-20 Julian Brown <julian@codesourcery.com>
25314 Chung-Lin Tang <cltang@codesourcery.com>
25316 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
25317 TARGET_THUMB1_ONLY. Add comments.
25319 2014-06-19 Tom de Vries <tom@codesourcery.com>
25321 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
25322 return type to void.
25323 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
25325 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25327 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
25328 as "move", from depends_on.
25330 2014-06-19 Terry Guo <terry.guo@arm.com>
25332 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
25335 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
25337 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
25339 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
25341 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
25344 * config/sh/sh.c (prepare_move_operands): Don't process TLS
25345 addresses here if reload in progress or completed.
25347 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
25349 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
25350 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
25351 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
25352 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
25353 (mips_register_priority): New function that implements the target
25354 hook TARGET_REGISTER_PRIORITY.
25355 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
25356 (mips_lra_p): Likewise for TARGET_LRA_P.
25357 (TARGET_REGISTER_PRIORITY): Define macro.
25358 (TARGET_SPILL_CLASS): Likewise.
25359 (TARGET_LRA_P): Likewise.
25360 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
25362 (REG_CLASS_NAMES): Likewise.
25363 (REG_CLASS_CONTENTS): Likewise.
25364 (BASE_REG_CLASS): Use M16_SP_REGS.
25365 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
25366 New set attribute to enable alternatives depending on the register
25368 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
25369 (*lea64): Disable pattern for MIPS16.
25370 * config/mips/mips.opt (mlra): New option.
25372 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
25374 * lra-constraints.c (base_to_reg): New function.
25375 (process_address): Use new function.
25377 2014-06-18 Tom de Vries <tom@codesourcery.com>
25379 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
25380 * config/aarch64/aarch64.c
25381 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
25382 (aarch64_emit_call_insn): New function.
25383 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
25385 * config/aarch64/aarch64.md (define_expand "call_internal")
25386 (define_expand "call_value_internal", define_expand "sibcall_internal")
25387 (define_expand "sibcall_value_internal"): New.
25388 (define_expand "call", define_expand "call_value")
25389 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
25390 expand variant and aarch64_emit_call_insn.
25392 2014-06-18 Radovan Obradovic <robradovic@mips.com>
25393 Tom de Vries <tom@codesourcery.com>
25395 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
25396 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
25398 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
25399 clobbers to CALL_INSN_FUNCTION_USAGE.
25400 (define_expand "sibcall_internal")
25401 (define_expand "sibcall_value_internal"): New.
25402 (define_expand "call", define_expand "call_value"): Add argument to
25403 arm_emit_call_insn.
25404 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
25405 (define_expand "sibcall_value"): Use sibcall_value_internal and
25406 arm_emit_call_insn.
25408 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25410 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
25412 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25414 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
25417 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25419 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
25420 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
25421 annotations. Fix DWARF information.
25423 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25425 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
25426 __udivmoddi4, and fixups for negative operands.
25428 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25430 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
25432 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25434 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
25437 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25439 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
25442 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25444 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
25445 describing register usage on function entry and exit.
25447 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25449 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
25450 (__aeabi_ldivmod): Fix whitespace.
25452 2014-06-18 Andreas Schwab <schwab@suse.de>
25454 * doc/md.texi (Standard Names): Use @itemx for grouped items.
25455 Remove blank line after @item.
25457 2014-06-18 Richard Henderson <rth@redhat.com>
25460 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
25462 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
25464 * config/arm/arm.c (neon_vector_mem_operand): Allow register
25465 POST_MODIFY for neon loads and stores.
25466 (arm_print_operand): Output post-index register for neon loads and
25469 2014-06-18 Richard Biener <rguenther@suse.de>
25471 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
25473 2014-06-18 Richard Biener <rguenther@suse.de>
25475 * tree-pass.h (make_pass_dce_loop): Remove.
25476 * passes.def: Replace pass_dce_loop with pass_dce.
25477 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
25478 changed free niter estimates and reset the scev cache.
25479 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
25480 make_pass_dce_loop): Remove.
25481 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
25482 (fini_copy_prop): Return whether something changed. Always
25483 let substitute_and_fold perform DCE and free niter estimates
25484 and reset the scev cache if so.
25485 (execute_copy_prop): If sth changed schedule cleanup-cfg.
25486 (pass_data_copy_prop): Do not unconditionally schedule
25487 cleanup-cfg or update-ssa.
25489 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
25491 PR tree-optimization/61518
25492 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
25493 reduction var is used in reduction stmt or phi-function only.
25495 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25497 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
25499 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
25501 PR tree-optimization/61517
25502 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
25503 whose rhs's first tree is the source expression instead of the
25505 (find_bswap_or_nop): Likewise.
25506 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
25507 gimple stmt whose rhs's first tree is the source. In the memory source
25508 case, move the stmt to be replaced close to one of the original load to
25509 avoid the problem of a store between the load and the stmt's original
25511 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
25514 2014-06-18 Andreas Schwab <schwab@suse.de>
25516 PR rtl-optimization/54555
25517 * postreload.c (move2add_use_add2_insn): Substitute
25518 STRICT_LOW_PART only if it is cheaper.
25520 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
25522 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
25523 Do not use unspec as call operand. Use memory_operand instead of
25524 memory_nox32_operand and add "m" operand constraint. Disable
25525 pattern for TARGET_X32.
25526 (*sibcall_pop_memory): Ditto.
25527 (*sibcall_value_memory): Ditto.
25528 (*sibcall_value_pop_memory): Ditto.
25529 (sibcall peepholes): Merge SImode and DImode patterns using
25530 W mode iterator. Use memory_operand instead of memory_nox32_operand.
25531 Disable pattern for TARGET_X32. Check if eliminated register is
25532 really dead after call insn. Generate call RTX without unspec operand.
25533 (sibcall_value peepholes): Ditto.
25534 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
25535 instead of memory_nox32_operand. Check if eliminated register is
25536 really dead after call insn. Generate call RTX without unspec operand.
25537 (sibcall_value_pop peepholes): Ditto.
25538 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
25540 2014-06-18 Terry Guo <terry.guo@arm.com>
25543 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
25546 2014-06-18 Olivier Hainque <hainque@adacore.com>
25548 * tree-core.h (tree_block): Add an "end_locus" field, allowing
25549 memorization of the end of block source location.
25550 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
25551 * gimplify.c (gimplify_bind_expr): Propagate the block start and
25552 end source location info we have on the block entry/exit code we
25555 2014-06-18 Richard Biener <rguenther@suse.de>
25557 * common.opt (fssa-phiopt): New option.
25558 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
25560 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
25561 * doc/invoke.texi (-fssa-phiopt): Document.
25563 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25565 * genattrtab.c (n_bypassed): New variable.
25566 (process_bypasses): Initialise n_bypassed.
25567 Count number of bypassed reservations.
25568 (make_automaton_attrs): Allocate space for bypassed reservations
25569 rather than number of bypasses.
25571 2014-06-18 Richard Biener <rguenther@suse.de>
25573 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
25574 we propagated anything.
25575 (substitute_and_fold_dom_walker::before_dom_children): Something
25576 changed if we propagated into PHI arguments.
25577 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
25580 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
25582 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
25584 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
25585 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
25586 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
25587 Introduces alternative way of loads group permutaions.
25588 (vect_transform_grouped_load): Try alternative way of permutations.
25590 2014-06-18 Jakub Jelinek <jakub@redhat.com>
25592 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
25593 changed in ORT_TARGET region, don't jump to do_outer.
25594 (struct gimplify_adjust_omp_clauses_data): New type.
25595 (gimplify_adjust_omp_clauses_1): Adjust for data being
25596 a struct gimplify_adjust_omp_clauses_data pointer instead
25597 of tree *. Pass pre_p as a new argument to
25598 lang_hooks.decls.omp_finish_clause hook.
25599 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
25600 splay_tree_foreach to pass both list_p and pre_p.
25601 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
25602 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
25603 gimplify_adjust_omp_clauses callers.
25604 * langhooks.c (lhd_omp_finish_clause): New function.
25605 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
25606 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
25607 * langhooks.h (struct lang_hooks_for_decls): Add a new
25608 gimple_seq * argument to omp_finish_clause hook.
25609 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
25610 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
25611 (scan_omp_parallel, lower_omp_for): When adding
25612 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
25613 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
25614 * tree-nested.c (convert_nonlocal_omp_clauses,
25615 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
25616 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
25618 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
25620 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
25621 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
25623 2014-06-17 Xinliang David Li <davidxl@google.com>
25625 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
25626 * passes.c (pass_init_dump_file): Do not set initialize
25627 flag to false unconditionally.
25629 2014-06-17 Richard Biener <rguenther@suse.de>
25631 * genopinit.c (main): Use vec<>::qsort method.
25632 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
25634 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
25636 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
25638 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
25639 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
25640 (mips_move_to_gpr_cost): Remove ST_REGS case.
25641 (mips_move_from_gpr_cost): Likewise.
25642 (mips_register_move_cost): Likewise.
25643 (mips_secondary_reload_class): Likewise.
25645 2014-06-17 Richard Biener <rguenther@suse.de>
25647 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
25648 (pass_all_optimizations): Move 3rd copy-prop pass from after
25649 fre to before ifcombine/phiopt.
25651 2014-06-17 Richard Biener <rguenther@suse.de>
25653 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
25654 and allow all blocks to be forwarders.
25656 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
25659 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
25660 variable 'size'; calculate 'size' right in the front; use
25661 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
25662 pcum->aapcs_stack_words.
25664 2014-06-17 Nick Clifton <nickc@redhat.com>
25666 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
25667 (umulhi3, mulsidi3, umulsidi3): Likewise.
25669 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
25671 PR middle-end/61508
25672 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
25673 check for section name.
25675 2014-06-17 Richard Biener <rguenther@suse.de>
25677 * tree-ssa-propagate.c: Include domwalk.h.
25678 (substitute_and_fold): Outline main worker into a domwalker ...
25679 (substitute_and_fold_dom_walker::before_dom_children): ... here.
25680 Schedule stmts we can fully propagate for removal. Remove
25682 (substitute_and_fold): Apply a dominator walk to perform
25683 substitution. Process stmts scheduled for removal here.
25685 2014-06-17 Richard Biener <rguenther@suse.de>
25687 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
25688 of PHI node moving.
25690 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
25692 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
25693 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
25694 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
25695 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
25696 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
25698 (get_fpscr) : Likewise.
25700 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
25702 PR rtl-optimization/61325
25703 * lra-constraints.c (valid_address_p): Add forward declaration.
25704 (simplify_operand_subreg): Check address validity before and after
25705 alter_reg of memory subreg.
25707 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
25709 * config/i386/i386.c (decide_alg): Correctly handle
25710 maximum size of stringop algorithm.
25712 2014-06-16 Yury Gribov <y.gribov@samsung.com>
25714 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
25716 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
25718 PR rtl-optimization/61522
25719 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
25721 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
25724 * symtab.c (symtab_node::reset_section): New method.
25725 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
25727 * cgraph.h (reset_section): Declare.
25728 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
25729 do not consider comdat locals.
25730 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
25732 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
25733 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
25734 reset sections of symbols dragged out of the comdats.
25735 (function_and_variable_visibility): Reset sections of
25738 2014-06-16 Richard Biener <rguenther@suse.de>
25740 PR tree-optimization/61482
25741 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
25742 [-INF(OVF), +INF(OVF)] range.
25744 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
25746 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
25747 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
25748 handling 32-bit multiplication.
25750 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
25752 PR middle-end/61430
25753 * lra-lives.c (process_bb_lives): Skip creating copy during
25754 insn scan when src/dest has constrained to same regno.
25756 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
25758 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
25759 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
25761 2014-06-16 Yury Gribov <y.gribov@samsung.com>
25763 * asan.c (check_func): New function.
25764 (maybe_create_ssa_name): Likewise.
25765 (build_check_stmt_with_calls): Likewise.
25766 (use_calls_p): Likewise.
25767 (report_error_func): Change interface.
25768 (build_check_stmt): Allow non-integer lengths; add support
25770 (asan_instrument): Likewise.
25771 (instrument_mem_region_access): Moved code to build_check_stmt.
25772 (instrument_derefs): Likewise.
25773 (instrument_strlen_call): Likewise.
25774 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
25775 * doc/invoke.texi: Describe new parameter.
25776 * params.def: Define new parameter.
25777 * params.h: Likewise.
25778 * sanitizer.def: Describe new builtins.
25780 2014-06-16 Richard Biener <rguenther@suse.de>
25782 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
25783 Make all defs available at the end.
25784 (eliminate): If we remove a PHI node schedule cfg-cleanup.
25786 2014-06-18 Jakub Jelinek <jakub@redhat.com>
25789 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
25791 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
25794 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
25795 initialization. Replace remaining use of uid.
25797 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
25799 * c-family/c-common.c (handle_tls_model_attribute): Use
25800 set_decl_tls_model.
25801 * c-family/c-common.c (handle_tls_model_attribute): Use
25802 set_decl_tls_model.
25803 * cgraph.h (struct varpool_node): Add tls_model.
25804 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
25805 * tree.h (DECL_TLS_MODEL): Update.
25806 (DECL_THREAD_LOCAL_P): Check that variable is static.
25807 (decl_tls_model): Declare.
25808 (set_decl_tls_model): Declare.
25809 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
25810 set symbol prorperties.
25811 (get_emutls_init_templ_addr): Cleanup.
25812 (new_emutls_decl): Update.
25813 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
25814 (lto_input_varpool_node): Likewise.
25815 * lto-streamer-out.c (hash_tree): Likewise.
25816 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
25817 not stream DECL_TLS_MODEL.
25818 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
25819 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
25821 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25823 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
25825 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25827 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
25828 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
25830 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
25831 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
25832 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
25833 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
25834 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
25835 (df_get_artificial_defs, df_get_artificial_uses)
25836 (df_single_def, df_single_use): Update accordingly.
25837 (df_refs_chain_dump): Take the first element in a linked list as
25838 parameter, rather than a pointer to an array of pointers.
25839 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
25840 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
25841 (df_chain_create_bb_process_use): Likewise.
25842 (df_md_bb_local_compute_process_def): Likewise.
25843 * fwprop.c (process_defs, process_uses): Likewise.
25844 (register_active_defs, update_uses): Likewise.
25845 (forward_propagate_asm): Update for new df_ref linking.
25846 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
25847 (df_null_ref_rec, df_null_mw_rec): Likewise.
25848 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
25850 (df_scan_free_bb_info): Remove check for null artificial_defs.
25851 (df_install_ref_incremental): Adjust for new df_ref linking.
25852 Use a single-element insertion rather than a full sort.
25853 (df_ref_chain_delete_du_chain): Take the first element
25854 in a linked list as parameter, rather than a pointer to an array of
25856 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
25857 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
25858 (df_insn_info_delete): Remove check for null defs and call to
25859 df_scan_free_mws_vec.
25860 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
25861 null rather than df_null_*_rec.
25862 (df_insn_rescan_debug_internal): Likewise, and update null
25863 checks in the same way. Remove check for null defs.
25864 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
25865 Move a single element rather doing a full sort.
25866 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
25868 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
25869 Initialize df_ref and df_mw_hardreg lists to null rather than
25871 (df_ref_compare): Take df_refs as parameter, transferring the
25872 old interface to...
25873 (df_ref_ptr_compare): ...this new function.
25874 (df_sort_and_compress_refs): Update accordingly.
25875 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
25876 old interface to...
25877 (df_mw_ptr_compare): ...this new function.
25878 (df_sort_and_compress_mws): Update accordingly.
25879 (df_install_refs, df_install_mws): Return a linked list rather than
25880 an array of pointers.
25881 (df_refs_add_to_chains): Assert that old lists are empty rather
25883 (df_insn_refs_verify): Don't handle null defs speciailly.
25884 * web.c (union_match_dups): Update for new df_ref linking.
25886 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25888 * df.h (df_ref_create, df_ref_remove): Delete.
25889 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
25890 (df_ref_remove): Likewise.
25892 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25894 * df.h (df_single_def, df_single_use): New functions.
25895 * ira.c (find_moveable_pseudos): Use them.
25897 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25899 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
25900 * df-problems.c (df_note_bb_compute): Use it.
25901 * regstat.c (regstat_bb_compute_ri): Likewise.
25903 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25905 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
25906 * cse.c (cse_extended_basic_block): Use them.
25907 * dce.c (mark_artificial_use): Likewise.
25908 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
25909 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
25910 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
25911 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
25912 (df_simulate_initialize_backwards): Likewise.
25913 (df_simulate_finalize_backwards): Likewise.
25914 (df_simulate_initialize_forwards): Likewise.
25915 (df_md_simulate_artificial_defs_at_top): Likewise.
25916 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
25917 * regrename.c (init_rename_info): Likewise.
25918 * regstat.c (regstat_bb_compute_ri): Likewise.
25919 (regstat_bb_compute_calls_crossed): Likewise.
25921 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
25923 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
25924 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
25925 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
25926 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
25927 * combine.c (create_log_links): Likewise.
25928 * compare-elim.c (find_flags_uses_in_insn): Likewise.
25929 (try_eliminate_compare): Likewise.
25930 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
25931 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
25932 (remove_reg_equal_equiv_notes_for_defs): Likewise.
25933 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
25934 (word_dce_process_block, dce_process_block): Likewise.
25935 * ddg.c (def_has_ccmode_p): Likewise.
25936 * df-core.c (df_bb_regno_first_def_find): Likewise.
25937 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
25938 * df-problems.c (df_rd_simulate_one_insn): Likewise.
25939 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
25940 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
25941 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
25942 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
25943 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
25944 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
25945 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
25946 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
25947 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
25948 * fwprop.c (local_ref_killed_between_p): Likewise.
25949 (all_uses_available_at, free_load_extend): Likewise.
25950 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
25951 * hw-doloop.c (scan_loop): Likewise.
25952 * ifcvt.c (dead_or_predicable): Likewise.
25953 * init-regs.c (initialize_uninitialized_regs): Likewise.
25954 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
25955 (process_bb_node_lives): Likewise.
25956 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
25957 (find_moveable_pseudos): Likewise.
25958 * loop-invariant.c (check_dependencies, record_uses): Likewise.
25959 * recog.c (peep2_find_free_register): Likewise.
25960 * ree.c (get_defs): Likewise.
25961 * regstat.c (regstat_bb_compute_ri): Likewise.
25962 (regstat_bb_compute_calls_crossed): Likewise.
25963 * sched-deps.c (find_inc, find_mem): Likewise.
25964 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
25965 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
25966 * shrink-wrap.c (requires_stack_frame_p): Likewise.
25967 (prepare_shrink_wrap): Likewise.
25968 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
25969 * web.c (union_defs, pass_web::execute): Likewise.
25970 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
25971 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
25973 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
25975 * lra-assign.c (assign_by_spills): Add code to assign vector regs
25976 to inheritance pseudos.
25977 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
25979 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
25982 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
25983 (BU_MISC_2): Rename to ...
25984 (BU_LDBL128_2): ... this.
25985 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
25986 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
25987 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
25988 RS6000_BTM_LDBL128.
25989 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
25990 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
25991 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
25992 (unpacktf_1): Likewise.
25993 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
25994 (__builtin_longdouble_dw1): Likewise.
25995 * doc/sourcebuild.texi (longdouble128): Document.
25997 2014-06-13 Jeff Law <law@redhat.com>
25999 PR rtl-optimization/61094
26000 PR rtl-optimization/61446
26001 * ree.c (combine_reaching_defs): Get the mode for the copy from
26002 the extension insn rather than the defining insn.
26004 2014-06-13 Dehao Chen <dehao@google.com>
26006 * dwarf2out.c (add_linkage_name): Emit more linkage name.
26008 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
26010 * doc/install.texi (--enable-linker-plugin-configure-flags)
26011 (--enable-linker-plugin-flags): Document new flags.
26013 2014-06-13 Martin Jambor <mjambor@suse.cz>
26016 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
26017 cache_token if returning early.
26019 2014-06-13 Nick Clifton <nickc@redhat.com>
26021 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
26022 requested alignment is active.
26023 (LABEL_ALIGN): Likewise.
26024 (LOOP_ALIGN): Likewise.
26026 2014-06-13 Richard Biener <rguenther@suse.de>
26028 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
26029 Rewrite to propagate the VN result into all uses where
26030 possible and to remove stmts becoming dead because of that.
26031 (eliminate): Generalize stmt removal handling, remove in
26032 reverse dominator order to support proper debug stmt
26033 generation. Update stmts before removing stmts.
26034 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
26036 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
26038 PR tree-optimization/61375
26039 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
26040 symbolic number cannot be represented in an uint64_t.
26041 (find_bswap_or_nop_1): Likewise.
26043 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
26045 * symtab.c (symtab_node::reset_section): New method.
26046 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
26048 * cgraph.h (reset_section): Declare.
26049 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
26050 do not consider comdat locals.
26051 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
26053 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
26054 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
26055 reset sections of symbols dragged out of the comdats.
26056 (function_and_variable_visibility): Reset sections of
26059 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
26061 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
26062 to use symtab and decl_binds_to_current_def_p
26063 * tree-vectorizer.c (increase_alignment): Increase alignment
26064 of alias target, too.
26066 2014-06-12 Jakub Jelinek <jakub@redhat.com>
26068 PR middle-end/61486
26069 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
26070 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
26071 if outer combined construct is distribute.
26072 (gimplify_omp_for): For OMP_DISTRIBUTE set
26073 gimplify_omp_ctxp->distribute.
26074 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
26075 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
26076 mapping into decl map.
26078 2014-06-12 Jason Merrill <jason@redhat.com>
26080 * common.opt (fabi-version): Change default to 0.
26082 2014-06-12 Jason Merrill <jason@redhat.com>
26084 * toplev.c (process_options): Reject -fabi-version=1.
26086 2014-06-12 Jeff Law <law@redhat.com>
26088 PR tree-optimization/61009
26089 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
26090 value when we stop processing a block due to problematic PHIs.
26092 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
26094 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
26095 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
26096 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
26097 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
26098 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
26099 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
26100 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
26101 are not in the spec.
26103 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
26106 * config/aarch64/aarch64-modes.def: Add V1DFmode.
26107 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
26110 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
26112 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
26114 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
26117 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
26118 loading from address spaces.
26120 2014-06-12 Martin Liska <mliska@suse.cz>
26123 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
26124 statement is reachable.
26126 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
26128 * symtab.c (section_hash): New hash.
26129 (symtab_unregister_node): Clear section before freeing.
26130 (hash_section_hash_entry): New haser.
26131 (eq_sections): New function.
26132 (symtab_node::set_section_for_node): New method.
26133 (set_section_1): Update.
26134 (symtab_node::set_section): Take string instead of tree as parameter.
26135 (symtab_resolve_alias): Update.
26136 * cgraph.h (section_hash_entry_d): New structure.
26137 (section_hash_entry): New typedef.
26138 (cgraph_node): Change comdat_group_ to x_comdat_group,
26139 change section_ to x_section and turn into section_hash_entry;
26140 update accestors; put set_section_for_node offline.
26141 * tree.c (decl_section_name): Turn into string.
26142 (set_decl_section_name): Change parameter to be string.
26143 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
26144 * sdbout.c (sdbout_one_type): Update.
26145 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
26146 * varasm.c (IN_NAMED_SECTION, get_named_section,
26147 resolve_unique_section, hot_function_section, get_named_text_section,
26148 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
26149 make_decl_rtl, default_unique_section): Update.
26150 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
26151 (c6x_elf_unique_section): Update.
26152 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
26153 * config/pa/pa.c (pa_function_section): Update.
26154 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
26155 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
26156 * config/arc/arc.c (arc_in_small_data_p): Update.
26157 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
26158 * config/mcore/mcore.c (mcore_unique_section): Update.
26159 * config/mips/mips.c (mips16_build_function_stub): Update.
26160 (mips16_build_call_stub): Update.
26161 (mips_function_rodata_section): Update.
26162 (mips_in_small_data_p): Update.
26163 * config/score/score.c (score_in_small_data_p): Update.
26164 * config/rx/rx.c (rx_in_small_data): Update.
26165 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
26166 (rs6000_xcoff_asm_named_section): Update.
26167 (rs6000_xcoff_unique_section): Update.
26168 * config/frv/frv.c (frv_string_begins_with): Update.
26169 (frv_in_small_data_p): Update.
26170 * config/v850/v850.c (v850_encode_data_area): Update.
26171 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
26172 (bfin_handle_l1_data_attribute): Update.
26173 (bfin_handle_l2_attribute): Update.
26174 * config/mep/mep.c (mep_unique_section): Update.
26175 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
26177 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
26178 (h8300_handle_tiny_data_attribute): Update.
26179 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
26180 (m32r_in_small_data_p): Update.
26181 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
26182 * config/i386/i386.c (ix86_in_large_data_p): Update.
26183 * config/i386/winnt.c (i386_pe_unique_section): Update.
26184 * config/darwin.c (darwin_function_section): Update.
26185 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
26186 * tree-emutls.c (get_emutls_init_templ_addr): Update.
26187 (new_emutls_decl): Update.
26188 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
26189 input_varpool_node): Update.
26190 (ead_string_cst): Turn to ...
26191 (read_string): ... this one.
26192 * dwarf2out.c (secname_for_decl): Update.
26193 * asan.c (asan_protect_global): Update.
26195 2014-06-11 DJ Delorie <dj@redhat.com>
26197 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
26199 * config/rx/rx.c (rx_option_override): Likewise.
26200 (rx_align_for_label): Likewise.
26202 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
26204 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
26206 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
26209 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26211 * common.md: New file.
26212 * doc/md.texi: Update description of generic, machine-independent
26214 * config/s390/constraints.md (e): Delete.
26215 * Makefile.in (md_file): Include common.md.
26216 * config/m32c/t-m32c (md_file): Likewise.
26217 * genpreds.c (general_mem): New array.
26218 (generic_constraint_letters): Remove constraints now defined by
26220 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
26221 Allow the first character to be '<' or '>' as well.
26222 * genoutput.c (general_mem): New array.
26223 (indep_constraints): Remove constraints now defined by common.md.
26224 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
26225 Remove special handling of 'm'.
26226 * ira-costs.c (record_reg_classes): Remove special handling of
26227 constraints now defined by common.md.
26228 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
26229 * ira-lives.c (single_reg_class): Likewise.
26230 (ira_implicitly_set_insn_hard_regs): Likewise.
26231 * lra-constraints.c (reg_class_from_constraints): Likewise.
26232 (process_alt_operands, process_address, curr_insn_transform): Likewise.
26233 * postreload.c (reload_cse_simplify_operands): Likewise.
26234 * reload.c (push_secondary_reload, scratch_reload_class)
26235 (find_reloads, alternative_allows_const_pool_ref): Likewise.
26236 * reload1.c (maybe_fix_stack_asms): Likewise.
26237 * targhooks.c (default_secondary_reload): Likewise.
26238 * stmt.c (parse_output_constraint): Likewise.
26239 * recog.c (preprocess_constraints): Likewise.
26240 (constrain_operands, peep2_find_free_register): Likewise.
26241 (asm_operand_ok): Likewise, but add a comment saying why 'o'
26242 must be handled specially.
26244 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26246 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
26247 * genpreds.c (have_const_dbl_constraints): Delete.
26248 (add_constraint): Don't set it.
26249 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
26250 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
26251 constraints using the lookup_constraint logic.
26252 * ira-lives.c (single_reg_class): Likewise.
26253 * ira.c (ira_setup_alts): Likewise.
26254 * lra-constraints.c (process_alt_operands): Likewise.
26255 * recog.c (asm_operand_ok, constrain_operands): Likewise.
26256 * reload.c (find_reloads): Likewise.
26258 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26260 * genpreds.c (const_int_start, const_int_end): New variables.
26261 (choose_enum_order): Output CONST_INT constraints before memory
26263 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
26265 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
26266 * ira.c (ira_setup_alts): Likewise.
26267 * lra-constraints.c (process_alt_operands): Likewise.
26268 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
26269 * reload.c (find_reloads): Likewise.
26271 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26273 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
26274 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
26275 * recog.c (preprocess_constraints): Update accordingly.
26277 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26279 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
26280 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
26281 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
26282 * genpreds.c (print_type_tree): New function.
26283 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
26284 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
26285 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
26286 Write out enum constraint_type and get_constraint_type.
26287 * lra-constraints.c (satisfies_memory_constraint_p): Take a
26288 constraint_num rather than a constraint string.
26289 (satisfies_address_constraint_p): Likewise.
26290 (reg_class_from_constraints): Avoid old constraint macros.
26291 (process_alt_operands, process_address_1): Likewise.
26292 (curr_insn_transform): Likewise.
26293 * ira-costs.c (record_reg_classes): Likewise.
26294 (record_operand_costs): Likewise.
26295 * ira-lives.c (single_reg_class): Likewise.
26296 (ira_implicitly_set_insn_hard_regs): Likewise.
26297 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
26298 * postreload.c (reload_cse_simplify_operands): Likewise.
26299 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
26300 (constrain_operands, peep2_find_free_register): Likewise.
26301 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
26302 (find_reloads, alternative_allows_const_pool_ref): Likewise.
26303 * reload1.c (maybe_fix_stack_asms): Likewise.
26304 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
26305 * targhooks.c (default_secondary_reload): Likewise.
26306 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
26307 to EXTRA_CONSTRAINT_STR.
26308 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
26310 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26312 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
26313 (write_constraint_satisfied_p_array): ...this new function.
26314 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
26316 (write_insn_preds_c): Update accordingly.
26318 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26320 * genpreds.c (write_lookup_constraint): Rename to...
26321 (write_lookup_constraint_1): ...this.
26322 (write_lookup_constraint_array): New function.
26323 (write_tm_preds_h): Define lookup_constraint as an inline function
26324 that uses write_lookup_constraint_array where possible.
26325 (write_insn_preds_c): Update for the changes above.
26327 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
26329 * doc/md.texi (regclass_for_constraint): Rename to...
26330 (reg_class_for_constraint): ...this.
26331 * genpreds.c (num_constraints, enum_order, register_start)
26332 (register_end, satisfied_start, memory_start, memory_end)
26333 (address_start, address_end): New variables.
26334 (add_constraint): Count the number of constraints.
26335 (choose_enum_order): New function.
26336 (write_enum_constraint_num): Iterate over enum_order.
26337 (write_regclass_for_constraint): Rename to...
26338 (write_reg_class_for_constraint_1): ...this and update output
26340 (write_constraint_satisfied_p): Rename to...
26341 (write_constraint_satisfied_p_1): ...this and update output
26342 accordingly. Do nothing if all extra constraints are register
26344 (write_insn_extra_memory_constraint): Delete.
26345 (write_insn_extra_address_constraint): Delete.
26346 (write_range_function): New function.
26347 (write_tm_preds_h): Define constraint_satisfied_p and
26348 reg_class_for_constraint as inline functions that do a range check
26349 before calling the out-of-line function. Use write_range_function
26350 to implement insn_extra_{register,memory,address}_constraint,
26351 the first of which is new.
26352 (write_insn_preds_c): Update after above changes to write_* functions.
26353 (main): Call choose_enum_order.
26355 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
26357 PR tree-optimization/61306
26358 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
26359 expression instead of its size.
26360 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
26361 false to prevent optimization when the result is unpredictable due to
26362 arithmetic right shift of signed type with highest byte is set.
26363 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
26364 (init_symbolic_number): Likewise.
26365 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
26366 when the result is unpredictable due to sign extension.
26368 2014-06-11 Terry Guo <terry.guo@arm.com>
26370 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
26371 (*thumb1_addsi3): Ditto.
26372 (*thumb_subdi3): Ditto.
26373 (thumb1_subsi3_insn): Ditto.
26374 (*thumb_mulsi3): Ditto.
26375 (*thumb_mulsi3_v6): Ditto.
26376 (*thumb1_andsi3_insn): Ditto.
26377 (thumb1_bicsi3): Ditto.
26378 (*thumb1_iorsi3_insn): Ditto.
26379 (*thumb1_xorsi3_insn): Ditto.
26380 (*thumb1_ashlsi3): Ditto.
26381 (*thumb1_ashrsi3): Ditto.
26382 (*thumb1_lshrsi3): Ditto.
26383 (*thumb1_rotrsi3): Ditto.
26384 (*thumb1_negdi2): Ditto.
26385 (*thumb1_negsi2): Ditto.
26386 (*thumb1_abssi2): Ditto.
26387 (*thumb1_neg_abssi2): Ditto.
26388 (*thumb1_one_cmplsi2): Ditto.
26389 (*thumb1_zero_extendhisi2): Ditto.
26390 (*thumb1_zero_extendqisi2): Ditto.
26391 (*thumb1_zero_extendqisi2_v6): Ditto.
26392 (thumb1_extendhisi2): Ditto.
26393 (thumb1_extendqisi2): Ditto.
26394 (*thumb1_movdi_insn): Ditto.
26395 (*thumb1_movsi_insn): Ditto.
26396 (*thumb1_movhi_insn): Ditto.
26397 (thumb_movhi_clobber): Ditto.
26398 (*thumb1_movqi_insn): Ditto.
26399 (*thumb1_movhf): Ditto.
26400 (*thumb1_movsf_insn): Ditto.
26401 (*thumb_movdf_insn): Ditto.
26402 (movmem12b): Ditto.
26404 (cbranchqi4): Ditto.
26405 (cbranchsi4_insn): Ditto.
26406 (cbranchsi4_scratch): Ditto.
26407 (*negated_cbranchsi4): Ditto.
26408 (*tbit_cbranch): Ditto.
26409 (*tlobits_cbranch): Ditto.
26410 (*tstsi3_cbranch): Ditto.
26411 (*cbranchne_decr1): Ditto.
26412 (*addsi3_cbranch): Ditto.
26413 (*addsi3_cbranch_scratch): Ditto.
26414 (*thumb_cmpdi_zero): Ditto.
26415 (cstoresi_eq0_thumb1): Ditto.
26416 (cstoresi_ne0_thumb1): Ditto.
26417 (*cstoresi_eq0_thumb1_insn): Ditto.
26418 (*cstoresi_ne0_thumb1_insn): Ditto.
26419 (cstoresi_nltu_thumb1): Ditto.
26420 (cstoresi_ltu_thumb1): Ditto.
26421 (thumb1_addsi3_addgeu): Ditto.
26422 (*thumb_jump): Ditto.
26423 (*call_reg_thumb1_v5): Ditto.
26424 (*call_reg_thumb1): Ditto.
26425 (*call_value_reg_thumb1_v5): Ditto.
26426 (*call_value_reg_thumb1): Ditto.
26427 (*call_insn): Ditto.
26428 (*call_value_insn): Ditto.
26429 (thumb1_casesi_internal_pic): Ditto.
26430 (thumb1_casesi_dispatch): Ditto.
26431 (*thumb1_indirect_jump): Ditto.
26432 (prologue_thumb1_interwork): Ditto.
26433 (*epilogue_insns): Ditto.
26434 (consttable_1): Ditto.
26435 (consttable_2): Ditto.
26436 (tablejump): Ditto.
26437 (*thumb1_tablejump): Ditto.
26438 (thumb_eh_return): Ditto.
26439 (define_peephole2): Two of them are thumb1 only and got moved into
26440 new file thumb1.md.
26441 (define_split): Six of them are thumb1 only and got moved into new
26443 * config/arm/thumb1.md: New file comprised of above thumb1 only
26446 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26448 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
26449 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
26451 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
26452 (aarch64_crc_builtin_datum): New struct.
26453 (aarch64_crc_builtin_data): New.
26454 (aarch64_init_crc32_builtins): New function.
26455 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
26456 (aarch64_crc32_expand_builtin): New.
26457 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
26458 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
26459 __ARM_FEATURE_CRC32 when appropriate.
26460 (TARGET_CRC32): Define.
26461 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
26462 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
26463 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
26464 (aarch64_<crc_variant>): New pattern.
26465 * config/aarch64/arm_acle.h: New file.
26466 * config/aarch64/iterators.md (CRC): New int iterator.
26467 (crc_variant, crc_mode): New int attributes.
26468 * doc/aarch64-acle-intrinsics.texi: New file.
26469 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
26470 Include aarch64-acle-intrinsics.texi.
26472 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
26474 * tree-vect-data-refs.c (vect_grouped_store_supported): New
26475 check for stores group of length 3.
26476 (vect_permute_store_chain): New permutations for stores group of
26478 * tree-vect-stmts.c (vect_model_store_cost): Change cost
26479 of vec_perm_shuffle for the new permutations.
26481 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
26483 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
26484 table rewriting temporarily on targets not supporting ONE_ONLY.
26486 2014-06-11 Richard Biener <rguenther@suse.de>
26488 PR middle-end/61437
26490 2014-06-04 Richard Biener <rguenther@suse.de>
26492 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
26493 TREE_PUBLIC and DECL_EXTERNAL decls.
26495 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
26497 * varasm.c (set_implicit_section): New function.
26498 (resolve_unique_section): Use it to set implicit section
26500 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
26501 (default_function_section): Likewise.
26502 (decl_binds_to_current_def_p): Constify argument.
26503 * varasm.h (decl_binds_to_current_def_p): Update prototype.
26504 * asan.c (asan_protect_global): Use
26505 symtab_get_node (decl)->implicit_section.
26506 * symtab.c (dump_symtab_base): Dump implicit sections.
26507 (verify_symtab_base): Verify sanity of sectoins and comdats.
26508 (symtab_resolve_alias): Alias share the section of its target.
26509 (set_section_1): New function.
26510 (symtab_node::set_section): Move here, recurse to aliases.
26511 (verify_symtab): Check for duplicated symtab lists.
26512 * tree-core.h (implicit_section_name_p): Remove.
26513 * tree-vect-data-refs.c: Include varasm.h.
26514 (vect_can_force_dr_alignment_p): Fix conditional on when
26515 decl bints to current definition; use
26516 symtab_get_node (decl)->implicit_section.
26517 * cgraph.c (cgraph_make_node_local_1): Fix section set.
26518 * cgraph.h (struct symtab_node): Add implicit_section.
26519 (set_section): Rename to ...
26520 (set_section_for_node): ... this one.
26521 (set_section): Declare.
26522 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
26523 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
26524 input_overwrite_node, input_varpool_node): Stream implicit_section.
26525 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
26526 removal; it will fail in LTO.
26528 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26530 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
26531 Change second alternative type to f_mcr.
26532 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
26533 and 12th alternatives' types to f_mcr and f_mrc.
26534 (*movdi_aarch64): Same for 12th and 13th alternatives.
26535 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
26536 (aarch64_movtilow_tilow): Change type to fmov.
26538 2014-06-10 Jiong Wang <jiong.wang@arm.com>
26540 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
26541 (aarch64_save_or_restore_callee_save_registers): Fix layout.
26543 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26545 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
26547 (aarch64_sqrdmulh_lane<mode>): Likewise.
26548 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
26549 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
26550 (aarch64_sqdmulh_laneq<mode>): New expander.
26551 (aarch64_sqrdmulh_laneq<mode>): Likewise.
26552 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
26553 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
26554 (aarch64_sqdmulh_lane<mode>): New expander.
26555 (aarch64_sqrdmulh_lane<mode>): Likewise.
26556 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
26557 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
26558 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
26559 (aarch64_sqdmlal_laneq<mode>): Likewise.
26560 (aarch64_sqdmlsl_lane<mode>): Likewise.
26561 (aarch64_sqdmlsl_laneq<mode>): Likewise.
26562 (aarch64_sqdmlal2_lane<mode>): Likewise.
26563 (aarch64_sqdmlal2_laneq<mode>): Likewise.
26564 (aarch64_sqdmlsl2_lane<mode>): Likewise.
26565 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
26566 (aarch64_sqdmull_lane<mode>): Likewise.
26567 (aarch64_sqdmull_laneq<mode>): Likewise.
26568 (aarch64_sqdmull2_lane<mode>): Likewise.
26569 (aarch64_sqdmull2_laneq<mode>): Likewise.
26571 2014-06-10 Richard Biener <rguenther@suse.de>
26573 PR tree-optimization/61438
26574 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
26575 (eliminate_dom_walker::before_dom_children): Only try to inhibit
26576 insertion of IVs if running PRE.
26577 (eliminate): Adjust.
26578 (pass_pre::execute): Likewise.
26579 (pass_fre::execute): Likewise.
26581 2014-06-10 Richard Biener <rguenther@suse.de>
26583 PR middle-end/61456
26584 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
26585 Do not use the main variant for the type comparison.
26586 (ncr_compar): Likewise.
26587 (nonoverlapping_component_refs_p): Likewise.
26589 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
26591 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
26592 REG_CFA_RESTORE mode.
26594 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
26596 * config/i386/i386.c (expand_vec_perm_pblendv): New.
26597 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
26598 expand_vec_perm_pblendv.
26600 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26602 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
26604 Simplify description of __crc32d and __crc32cd intrinsics.
26605 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
26608 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
26611 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
26612 * config.in: Regenerate.
26613 * configure: Likewise.
26615 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
26617 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
26619 (intersect_static_var_sets): Remove.
26620 (propagate): Do not prune local statics.
26622 2014-06-10 Jakub Jelinek <jakub@redhat.com>
26625 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
26626 Set lastprivate_firstprivate even if omp_private_outer_ref
26627 langhook returns true.
26628 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
26629 langhook, call unshare_expr on new_var and call
26630 build_outer_var_ref to get the last argument.
26632 2014-06-10 Marek Polacek <polacek@redhat.com>
26635 * doc/extend.texi: Add cindex for transparent_union.
26637 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
26639 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
26640 init_symbolic_number ().
26642 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
26644 PR middle-end/61141
26645 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
26646 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
26647 (verify_rtl_sharing): Likewise.
26649 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
26652 * tree.c (build_qualified_type): Use a canonical type for
26655 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26657 * config/arm/arm-modes.def: Remove XFmode.
26659 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
26662 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
26663 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
26664 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
26665 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
26666 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
26667 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
26668 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
26669 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
26670 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
26672 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
26674 * tree-core.h (tree_decl_with_vis): Remove section_name.
26676 2014-06-09 Kito Cheng <kito@0xlab.org>
26678 * ira.c (ira): Don't call init_caller_save if LRA enabled
26679 since LRA use its own infrastructure to handle that.
26681 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26683 * symtab.c (dump_symtab_base): Update dumping.
26684 (symtab_make_decl_local): Clear only DECL_COMDAT.
26685 * tree-vect-data-refs.c (Check that variable is static before
26686 tampering with sections.
26687 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
26688 (cgraph_create_virtual_clone): Likewise.
26689 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
26690 (decl_section_name, set_decl_section_name): New accessors.
26691 (find_decls_types_r): Do not walk section name
26692 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
26693 (decl_comdat_group, decl_comdat_group_id): Constify.
26694 (decl_section_name, set_decl_section_name): Update.
26695 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
26696 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
26697 (cgraph_make_node_local_1): Clear section and comdat group.
26698 * cgraph.h (set_comdat_group): Sanity check.
26699 (get_section, set_section): New.
26700 * ipa-comdats.c (ipa_comdats): Use get_section.
26701 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
26702 * lto-streamer-out.c: Do not follow section names.
26703 * c-family/c-common.c (handle_section_attribute): Update.
26704 * lto-cgraph.c (lto_output_node): Output section.
26705 (lto_output_varpool_node): Likewise.
26706 (read_comdat_group): Rename to ...
26707 (read_identifier): ... this one.
26708 (read_string_cst): New function.
26709 (input_node, input_varpool_node): Input section names.
26710 * tree-emutls.c (get_emutls_init_templ_addr): Update.
26711 (new_emutls_decl): Update.
26712 (secname_for_decl): Check section names only of static vars.
26713 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
26714 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
26715 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
26716 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
26717 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
26718 * config/mcore/mcore.c (mcore_unique_section): Likewise.
26719 * config/mips/mips.c (mips16_build_function_stub): Likewise.
26720 * config/v850/v850.c (v850_insert_attributes): Likewise.
26721 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
26723 (h8300_handle_tiny_data_attribute): Likewise.
26724 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
26725 (bfin_handle_l2_attribute): Likewise.
26727 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26729 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
26730 remove static initializer.
26732 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26734 * varasm.c (use_blocks_for_decl_p): Check symbol table
26735 instead of alias attribute.
26736 (place_block_symbol): Recurse on aliases.
26738 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26740 * ipa-visibility.c: Include varasm.h
26741 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
26743 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
26745 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
26746 outputting aliases.
26748 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
26750 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
26751 from test_insn into GGC space escape via SET_SRC.
26753 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
26755 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
26756 call statement, if any.
26757 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
26758 statements, if any. Tidy up.
26760 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
26763 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
26764 iterators, VSX_D that handles 64-bit types, and VSX_LE that
26765 handles swapping the two 64-bit double words on little endian
26766 systems. Include V1TImode and optionally TImode in VSX_LE so that
26767 these types are properly swapped. Change all of the insns and
26768 splits that do the 64-bit swaps to use VSX_LE.
26769 (vsx_le_perm_load_<mode>): Likewise.
26770 (vsx_le_perm_store_<mode>): Likewise.
26771 (splitters for little endian memory operations): Likewise.
26772 (vsx_xxpermdi2_le_<mode>): Likewise.
26773 (vsx_lxvd2x2_le_<mode>): Likewise.
26774 (vsx_stxvd2x2_le_<mode>): Likewise.
26776 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
26779 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
26780 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
26781 and corresponding splitters. Zero extend general register
26782 or memory input operand to XMM temporary. Enable for
26783 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
26784 (floatunssi<mode>2): Update expander predicate.
26786 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
26788 PR rtl-optimization/61325
26789 * lra-constraints.c (process_address_1): Check scale equal to one
26790 to prevent transformation: base + scale * index => base + new_reg.
26792 2014-06-06 Richard Biener <rguenther@suse.de>
26794 PR tree-optimization/59299
26795 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
26797 (nearest_common_dominator_of_uses): Likewise.
26798 (statement_sink_location): Adjust. Support sinking loads.
26800 2014-06-06 Martin Jambor <mjambor@suse.cz>
26802 * ipa-prop.c (get_place_in_agg_contents_list): New function.
26803 (build_agg_jump_func_from_list): Likewise.
26804 (determine_known_aggregate_parts): Renamed to
26805 determine_locally_known_aggregate_parts. Moved some functionality
26806 to the two functions above, removed bound checks.
26808 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
26810 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
26811 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
26812 (aarch64_progress_pointer): Likewise.
26813 (aarch64_copy_one_part_and_move_pointers): Likewise.
26814 (aarch64_expand_movmen): Likewise.
26815 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
26816 * config/aarch64/aarch64.md (movmem<mode>): New.
26818 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
26820 * targhooks.c (default_add_stmt_cost): Call target specific
26821 hook instead of default one.
26823 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
26825 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
26826 endianness instead of host endianness.
26827 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
26830 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
26833 * function.c (instantiate_decls): Process the saved static chain.
26834 (expand_function_start): If not optimizing, save the static chain
26836 * tree-nested.c (convert_all_function_calls): Always create the static
26837 chain for nested functions if not optimizing.
26839 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
26841 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
26843 2014-06-06 Richard Biener <rguenther@suse.de>
26845 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
26846 (construct_init_block): Likewise.
26847 (construct_exit_block): Likewise.
26848 (pass_expand::execute): Likewise.
26849 * graphite.c (graphite_transforms): Replace check for current_loops
26850 with a check for > 1 loops.
26851 (pass_graphite_transforms::execute): Adjust.
26852 * ipa-split.c (split_function): Remove check for current_loops.
26853 * omp-low.c (expand_parallel_call): Likewise.
26854 (expand_omp_for_init_counts): Likewise.
26855 (extract_omp_for_update_vars): Likewise.
26856 (expand_omp_for_generic): Likewise.
26857 (expand_omp_sections): Likewise.
26858 (expand_omp_target): Likewise.
26859 * tracer.c (tail_duplicate): Likewise.
26860 (pass_tracer::execute): Likewise.
26861 * trans-mem.c (expand_transaction): Likewise.
26862 * tree-complex.c (expand_complex_div_wide): Likewise.
26863 * tree-eh.c (lower_resx): Likewise.
26864 (cleanup_empty_eh_merge_phis): Likewise.
26865 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
26866 current_loops with a check for > 1 loops.
26867 (pass_predcom::execute): Adjust.
26868 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
26869 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
26870 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
26871 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
26872 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
26873 * tree-switch-conversion.c (process_switch): Likewise.
26874 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
26875 * tree-vrp.c (vrp_visit_phi_node): Likewise.
26876 (execute_vrp): Likewise.
26877 * ubsan.c (ubsan_expand_null_ifn): Likewise.
26879 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
26881 * rtl.h (insn_location): Declare.
26882 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
26883 with UNKNOWN_LOCATION.
26884 * emit-rtl.c (insn_location): New function.
26885 * final.c (notice_source_line): Check that the instruction has a
26886 location before retrieving it and use insn_location.
26887 * modulo-sched.c (loop_single_full_bb_p): Likewise.
26888 * print-rtl.c (print_rtx): Likewise.
26890 2014-06-06 Richard Biener <rguenther@suse.de>
26892 * passes.def: Move 2nd VRP pass before phi-only-cprop.
26894 2014-06-06 Christian Bruel <christian.bruel@st.com>
26896 PR tree-optimization/43934
26897 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
26900 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
26902 * ira-lives.c (single_reg_class): Add missing break. Explicitly
26903 return NO_REGS for extra address and memory constraints. Handle
26904 operands that match (or are equivalent to something that matches)
26905 extra constant constraints. Ignore other non-register operands.
26907 2014-06-06 Alan Modra <amodra@gmail.com>
26910 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
26911 * doc/tm.texi: Regenerate.
26912 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
26913 Use throughout in place of REG_PARM_STACK_SPACE.
26914 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
26915 "incoming" param. Pass to rs6000_function_parms_need_stack.
26916 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
26917 prototype_p when incoming. Use function decl when incoming
26918 to handle K&R style functions.
26919 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
26920 (INCOMING_REG_PARM_STACK_SPACE): Define.
26922 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26925 * cfgexpand.c (expand_debug_expr): Use address space of nested
26926 TREE_TYPE for ADDR_EXPR and MEM_REF.
26928 2014-06-05 Jeff Law <law@redhat.com>
26930 PR tree-optimization/61289
26931 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
26932 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
26933 looking for those which match LHS. All callers changed.
26934 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
26935 parameters and code which manipulated them. All callers changed.
26936 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
26937 and DST_MAP parameters. Simplify invalidation code by just calling
26938 invalidate_equivalences. All callers changed.
26939 (thread_across_edge): Simplify now that we don't need to maintain
26940 the map of equivalences to invalidate.
26942 2014-06-05 Kai Tietz <ktietz@redhat.com>
26943 Richard Henderson <rth@redhat.com>
26946 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
26947 checking for !TARGET_X32.
26948 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
26949 (sibcall_intern): New define_insn, plus required peepholes.
26950 (sibcall_pop_intern): Likewise.
26951 (sibcall_value_intern): Likewise.
26952 (sibcall_value_pop_intern): Likewise.
26954 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
26956 * tree-inline.c (tree_function_versioning): Check DF info existence
26957 before accessing it.
26959 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26961 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
26963 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
26964 aarch64_frame hard_fp_offset and frame_size.
26965 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
26966 frame_size; remove original_frame_size.
26967 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
26968 (aarch64_initial_elimination_offset): Remove frame_size and
26969 offset. Use aarch64_frame frame_size.
26971 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26972 Jiong Wang <jiong.wang@arm.com>
26973 Renlin <renlin.li@arm.com>
26975 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
26976 initialization of R30 offset. Update offset. Iterate core
26977 regisers upto X30. Remove X29, X30 specific code.
26979 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26980 Jiong Wang <jiong.wang@arm.com>
26982 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
26983 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
26984 (aarch64_register_saved_on_entry): Adjust test.
26986 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
26988 * config/aarch64/aarch64.h (machine_function): Move
26989 saved_varargs_size from here...
26990 (aarch64_frame): ... to here.
26992 * config/aarch64/aarch64.c (aarch64_expand_prologue)
26993 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
26994 (aarch64_initial_elimination_offset)
26995 (aarch64_setup_incoming_varargs): Adjust location of
26996 saved_varargs_size.
26998 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
27000 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
27003 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
27004 Prachi Godbole <Prachi.Godbole@imgtec.com>
27006 * config/mips/mips-cpus.def: Add definition for p5600. Updated
27007 mips32r5 entry to use PROCESSOR_P5600.
27008 * config/mips/mips-tables.opt: Regenerate.
27009 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
27010 * config/mips/mips.c (mips_fmadd_bypass): New function.
27011 (mips_rtx_cost_data): Add costs for p5600.
27012 (mips_issue_rate): Add support for p5600.
27013 (mips_multipass_dfa_lookahead): Likewise.
27014 * config/mips/mips.h (TUNE_P5600): New define.
27015 (TUNE_MACC_CHAINS): Add TUNE_P5600.
27016 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
27017 * config/mips/mips.md: Include p5600.md.
27018 (processor): Add p5600.
27019 * config/mips/p5600.md: New file.
27021 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
27023 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
27024 * config/i386/predicates.md (palignr_operand): New.
27025 Indicates if permutation is suitable for palignr instruction.
27027 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
27029 PR tree-optimization/61319
27030 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
27031 stmt belongs to loop.
27033 2014-06-05 Richard Biener <rguenther@suse.de>
27035 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
27036 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
27037 (lookup_tmp_var): Adjust.
27038 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
27040 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27042 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
27044 2014-06-05 Marek Polacek <polacek@redhat.com>
27047 * doc/invoke.texi: Document -Wlogical-not-parentheses.
27049 2014-06-04 Tom de Vries <tom@codesourcery.com>
27051 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
27054 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
27056 PR tree-optimization/61385
27057 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
27059 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
27061 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
27062 changed to use fatal_error.
27063 (main): Ensure lto_wrapper_cleanup is run atexit.
27065 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27067 * lra-constraints.c (valid_address_p): Move earlier in file.
27068 (address_eliminator): New structure.
27069 (satisfies_memory_constraint_p): New function.
27070 (satisfies_address_constraint_p): Likewise.
27071 (process_alt_operands, process_address, curr_insn_transform): Use them.
27073 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27075 * lra-int.h (lra_static_insn_data): Make operand_alternative a
27077 (target_lra_int, default_target_lra_int, this_target_lra_int)
27078 (op_alt_data): Delete.
27079 * lra.h (lra_init): Delete.
27080 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
27081 (init_insn_code_data_once): Remove op_alt_data handling.
27082 (finish_insn_code_data_once): Likewise.
27083 (init_op_alt_data): Delete.
27084 (get_static_insn_data): Initialize operand_alternative to null.
27085 (free_insn_recog_data): Cast operand_alternative before freeing it.
27086 (setup_operand_alternative): Take the operand_alternative as
27087 parameter and assume it isn't already cached in the static
27089 (lra_set_insn_recog_data): Update accordingly.
27090 (lra_init): Delete.
27091 * ira.c (ira_init): Don't call lra_init.
27092 * target-globals.h (this_target_lra_int): Declare.
27093 (target_globals): Remove lra_int.
27094 (restore_target_globals): Update accordingly.
27095 * target-globals.c: Don't include lra-int.h.
27096 (default_target_globals, save_target_globals): Remove lra_int.
27098 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27100 * recog.h (operand_alternative): Convert reg_class, reject,
27101 matched and matches into bitfields.
27102 (preprocess_constraints): New overload.
27103 (preprocess_insn_constraints): New function.
27104 (preprocess_constraints): Take the insn as parameter.
27105 (recog_op_alt): Change into a pointer.
27106 (target_recog): Add x_op_alt.
27107 * recog.c (asm_op_alt): New variable.
27108 (recog_op_alt): Change into a pointer.
27109 (preprocess_constraints): New overload, replacing the old function
27110 definition with one that doesn't use global state.
27111 (preprocess_insn_constraints): New function.
27112 (preprocess_constraints): Use them. Take the insn as parameter.
27113 Use asm_op_alt for asms.
27114 (recog_init): Free existing x_op_alt entries.
27115 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
27117 (make_early_clobber_and_input_conflicts): Likewise.
27118 (process_bb_node_lives): Pass the insn to process_constraints.
27119 * reg-stack.c (check_asm_stack_operands): Likewise.
27120 (subst_asm_stack_regs): Likewise.
27121 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
27122 * regrename.c (build_def_use): Likewise.
27123 * sched-deps.c (sched_analyze_insn): Likewise.
27124 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
27125 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
27126 (note_invalid_constants): Likewise.
27127 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
27128 (ix86_legitimate_combined_insn): Make operand_alternative pointer
27131 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27133 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
27134 * ira-lives.c (check_and_make_def_conflict): Check for disabled
27136 (make_early_clobber_and_input_conflicts): Likewise.
27137 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
27139 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27141 * recog.h (alternative_class): New function.
27142 (which_op_alt): Return a const recog_op_alt.
27143 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
27144 (subst_asm_stack_regs): Likewise.
27145 * config/arm/arm.c (note_invalid_constants): Likewise.
27146 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
27147 the operand_alternative; use alternative class instead.
27148 * sel-sched.c (get_reg_class): Likewise.
27149 * regrename.c (build_def_use): Likewise.
27150 (hide_operands, restore_operands, record_out_operands): Update type
27153 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
27155 * recog.h (recog_op_alt): Convert to a flat array.
27156 (which_op_alt): New function.
27157 * recog.c (recog_op_alt): Convert to a flat array.
27158 (preprocess_constraints): Update accordingly, grouping all
27159 operands of the same alternative together, rather than the
27161 * ira-lives.c (check_and_make_def_conflict): Likewise.
27162 (make_early_clobber_and_input_conflicts): Likewise.
27163 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
27164 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
27165 (subst_asm_stack_regs): Likewise.
27166 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
27167 * regrename.c (hide_operands, record_out_operands): Likewise.
27168 (build_def_use): Likewise.
27169 * sel-sched.c (get_reg_class): Likewise.
27170 * config/arm/arm.c (note_invalid_constants): Likewise.
27172 2014-06-04 Jason Merrill <jason@redhat.com>
27176 * gimplify.c (gimplify_arg): Non-static.
27177 * gimplify.h: Declare it.
27179 2014-06-04 Richard Biener <rguenther@suse.de>
27181 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
27182 TREE_PUBLIC and DECL_EXTERNAL decls.
27184 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
27186 * regcprop.c (copyprop_hardreg_forward_1): Account for
27187 HARD_REGNO_CALL_PART_CLOBBERED.
27189 2014-06-04 Richard Biener <rguenther@suse.de>
27191 * configure.ac: Check whether the underlying type of int64_t
27192 is long or long long.
27193 * configure: Regenerate.
27194 * config.in: Likewise.
27195 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
27196 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
27198 2014-06-04 Richard Biener <rguenther@suse.de>
27200 PR tree-optimization/60098
27201 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
27203 (dse_optimize_stmt): Simplify, now that we found a kill
27206 2014-06-04 Richard Biener <rguenther@suse.de>
27208 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
27209 of accesses with non-invariant address.
27211 2014-06-04 Martin Liska <mliska@suse.cz>
27213 * cgraph.h (cgraph_make_wrapper): New function introduced.
27214 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
27215 * ipa-inline.h (inline_analyze_function): The function is global.
27216 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
27218 2014-06-04 Martin Liska <mliska@suse.cz>
27220 * tree.h (private_lookup_attribute_starting): New function.
27221 (lookup_attribute_starting): Likewise.
27222 * tree.c (private_lookup_attribute_starting): Likewise.
27224 2014-06-04 Martin Liska <mliska@suse.cz>
27226 * cgraph.h (expand_thunk): New argument added.
27227 (address_taken_from_non_vtable_p): New global function.
27228 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
27229 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
27230 * cgraphunit.c (analyze_function): Likewise.
27231 (assemble_thunks_and_aliases): Argument added to call.
27232 (expand_thunk): New argument forces to produce GIMPLE thunk.
27234 2014-06-04 Martin Liska <mliska@suse.cz>
27236 * coverage.h (coverage_compute_cfg_checksum): Argument added.
27237 * coverage.c (coverage_compute_cfg_checksum): Likewise.
27238 * profile.c (branch_prob): Likewise.
27240 2014-06-04 Martin Jambor <mjambor@suse.cz>
27243 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
27244 handler for switch on an ipa_ref_use enum.
27245 * ipa-reference.c (analyze_function): Likewise.
27247 2014-06-04 Kai Tietz <ktietz@redhat.com>
27249 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
27250 from old call-instruction.
27252 2014-06-04 Bin Cheng <bin.cheng@arm.com>
27254 * config/aarch64/aarch64.c (aarch64_classify_address)
27255 (aarch64_legitimize_reload_address): Support full addressing modes
27257 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
27258 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
27260 2014-06-03 Andrew Pinski <apinski@cavium.com>
27262 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
27265 2014-06-03 Andrew Pinski <apinski@cavium.com>
27267 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
27268 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
27270 2014-06-03 Kai Tietz <ktietz@redhat.com>
27272 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
27275 2014-06-03 Dehao Chen <dehao@google.com>
27277 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
27280 2014-06-03 Marek Polacek <polacek@redhat.com>
27283 * doc/invoke.texi: Document -Wswitch-bool.
27284 * function.c (stack_protect_epilogue): Cast controlling expression of
27286 * gengtype.c (walk_type): Generate switch expression with its
27287 controlling expression cast to int.
27289 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
27291 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
27293 * config/avr/avr-tables.opt: Regenerate.
27294 * config/avr/t-multilib: Regenerate.
27295 * doc/avr-mmcu.texi: Regenerate.
27297 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
27298 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
27300 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
27301 (ata6617c, ata664251): Add new avr35 devices.
27302 (ata6612c): Add new avr4 device.
27303 (ata6613c, ata6614q): Add new avr5 devices.
27304 * config/avr/avr-tables.opt: Regenerate.
27305 * config/avr/t-multilib: Regenerate.
27306 * doc/avr-mmcu.texi: Regenerate.
27308 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27310 * gcc/config/aarch64/aarch64-builtins.c
27311 (aarch64_types_binop_ssu_qualifiers): New static data.
27312 (TYPES_BINOP_SSU): Define.
27313 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
27314 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
27315 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
27316 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
27317 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
27318 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
27319 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
27320 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
27321 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
27322 suffix to builtin function name, remove cast.
27323 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
27324 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
27325 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
27327 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27329 * gcc/config/aarch64/aarch64-builtins.c
27330 (aarch64_types_binop_uus_qualifiers,
27331 aarch64_types_shift_to_unsigned_qualifiers,
27332 aarch64_types_unsigned_shiftacc_qualifiers): Define.
27333 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
27334 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
27335 sqshlu_n, uqshl_n): Update qualifiers.
27336 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
27337 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
27338 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
27339 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
27340 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
27341 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
27342 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
27343 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
27344 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
27345 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
27346 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
27347 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
27348 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
27349 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
27350 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
27351 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
27352 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
27353 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
27354 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
27355 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
27356 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
27357 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
27358 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
27359 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
27360 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
27361 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
27362 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
27364 2014-06-03 Teresa Johnson <tejohnson@google.com>
27366 * tree-sra.c (modify_function): Record caller nodes after rebuild.
27368 2014-06-02 Jason Merrill <jason@redhat.com>
27371 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
27373 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27375 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
27378 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
27380 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
27382 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
27383 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
27384 * config/aarch64/iterators.md (REVERSE): New iterator.
27385 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
27386 (rev_op): New int_attribute.
27387 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
27388 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
27389 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
27390 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
27391 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
27392 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
27393 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
27394 Replace temporary __asm__ with __builtin_shuffle.
27396 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
27398 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
27400 * config/mips/mips-tables.opt: Regenerate.
27401 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
27402 to use mips_isa_rev rather than ISA_MIPS32R2.
27403 * config/mips/mips.h (ISA_MIPS32R3): New define.
27404 (ISA_MIPS32R5): New define.
27405 (ISA_MIPS64R3): New define.
27406 (ISA_MIPS64R5): New define.
27407 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
27408 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
27409 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
27411 (MIPS_ISA_SYNCI_SPEC): Likewise.
27412 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
27413 (LINK_SPEC): Added mips32r3 and mips32r5.
27414 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
27415 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
27416 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
27417 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
27418 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
27419 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
27420 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
27422 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
27424 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
27426 * config/mips/mips.opt (mxpa): New option.
27427 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
27430 2014-06-03 Martin Jambor <mjambor@suse.cz>
27433 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
27436 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
27438 PR tree-optimization/61328
27439 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
27440 initialization from find_bswap_or_nop_1.
27441 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
27442 in source_expr2 before using the size value the function sets. Also
27443 make use of init_symbolic_number () in both the old place and
27444 find_bswap_or_nop_load () to avoid reading uninitialized memory when
27445 doing recursion in the GIMPLE_BINARY_RHS case.
27447 2014-06-03 Richard Biener <rguenther@suse.de>
27449 PR tree-optimization/61383
27450 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
27453 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
27455 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
27456 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
27457 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
27458 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
27460 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
27461 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
27462 * system.h: ...here and make it unconditional.
27463 * target.def (conditional_register_usage): Mention
27464 define_register_constraint instead of old-style constraint macros.
27465 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
27466 * doc/tm.texi: Regenerate.
27467 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
27468 protected by !USE_MD_CONSTRAINTS.
27469 * config/frv/frv.md: Remove quote from old version of documentation.
27470 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
27471 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
27472 CONST_DOUBLE_OK_FOR_LETTER.
27473 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
27475 2014-06-02 Andrew Pinski <apinski@cavium.com>
27477 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
27478 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
27479 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
27480 file whose name depends on -mabi= and -mbig-endian.
27481 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
27482 Handle LP64 better and handle ilp32 too.
27483 (MULTILIB_OPTIONS): Delete.
27484 (MULTILIB_DIRNAMES): Delete.
27486 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
27488 * expr.h: Remove prototypes of functions defined in builtins.c.
27489 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
27490 Remove prototypes of functions defined in builtins.c.
27491 * builtins.h: Update prototype list to include all exported functions.
27492 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
27493 no_c99_libc_has_function): Move to targhooks.c
27494 (build_string_literal, build_call_expr_loc_array,
27495 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
27497 (expand_builtin_object_size, fold_builtin_object_size): Make static.
27498 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
27499 no_c99_libc_has_function): Relocate from builtins.c.
27500 * tree.c: Include builtins.h.
27501 (build_call_expr_loc_array, build_call_expr_loc_vec,
27502 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
27504 * fold-const.h (fold_fma): Move prototype to builtins.h.
27505 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
27506 * asan.c: Include builtins.h.
27507 * cfgexpand.c: Likewise.
27508 * convert.c: Likewise.
27509 * emit-rtl.c: Likewise.
27510 * except.c: Likewise.
27511 * expr.c: Likewise.
27512 * fold-const.c: Likewise.
27513 * gimple-fold.c: Likewise.
27514 * gimple-ssa-strength-reduction.c: Likewise.
27515 * gimplify.c: Likewise.
27516 * ipa-inline.c: Likewise.
27517 * ipa-prop.c: Likewise.
27518 * lto-streamer-out.c: Likewise.
27519 * stmt.c: Likewise.
27520 * tree-inline.c: Likewise.
27521 * tree-object-size.c: Likewise.
27522 * tree-sra.c: Likewise.
27523 * tree-ssa-ccp.c: Likewise.
27524 * tree-ssa-forwprop.c: Likewise.
27525 * tree-ssa-loop-ivcanon.c: Likewise.
27526 * tree-ssa-loop-ivopts.c: Likewise.
27527 * tree-ssa-math-opts.c: Likewise.
27528 * tree-ssa-reassoc.c: Likewise.
27529 * tree-ssa-threadedge.c: Likewise.
27530 * tree-streamer-in.c: Likewise.
27531 * tree-vect-data-refs.c: Likewise.
27532 * tree-vect-patterns.c: Likewise.
27533 * tree-vect-stmts.c: Likewise.
27534 * config/aarch64/aarch64.c: Likewise.
27535 * config/alpha/alpha.c: Likewise.
27536 * config/arc/arc.c: Likewise.
27537 * config/arm/arm.c: Likewise.
27538 * config/avr/avr.c: Likewise.
27539 * config/bfin/bfin.c: Likewise.
27540 * config/c6x/c6x.c: Likewise.
27541 * config/cr16/cr16.c: Likewise.
27542 * config/cris/cris.c: Likewise.
27543 * config/epiphany/epiphany.c: Likewise.
27544 * config/fr30/fr30.c: Likewise.
27545 * config/frv/frv.c: Likewise.
27546 * config/h8300/h8300.c: Likewise.
27547 * config/i386/i386.c: Likewise.
27548 * config/i386/winnt.c: Likewise.
27549 * config/ia64/ia64.c: Likewise.
27550 * config/iq2000/iq2000.c: Likewise.
27551 * config/lm32/lm32.c: Likewise.
27552 * config/m32c/m32c.c: Likewise.
27553 * config/m32r/m32r.c: Likewise.
27554 * config/m68k/m68k.c: Likewise.
27555 * config/mcore/mcore.c: Likewise.
27556 * config/mep/mep.c: Likewise.
27557 * config/microblaze/microblaze.c: Likewise.
27558 * config/mips/mips.c: Likewise.
27559 * config/mmix/mmix.c: Likewise.
27560 * config/mn10300/mn10300.c: Likewise.
27561 * config/moxie/moxie.c: Likewise.
27562 * config/msp430/msp430.c: Likewise.
27563 * config/nds32/nds32.c: Likewise.
27564 * config/pa/pa.c: Likewise.
27565 * config/pdp11/pdp11.c: Likewise.
27566 * config/picochip/picochip.c: Likewise.
27567 * config/rl78/rl78.c: Likewise.
27568 * config/rs6000/rs6000.c: Likewise.
27569 * config/rx/rx.c: Likewise.
27570 * config/s390/s390.c: Likewise.
27571 * config/score/score.c: Likewise.
27572 * config/sh/sh.c: Likewise.
27573 * config/sparc/sparc.c: Likewise.
27574 * config/spu/spu.c: Likewise.
27575 * config/stormy16/stormy16.c: Likewise.
27576 * config/tilegx/tilegx.c: Likewise.
27577 * config/tilepro/tilepro.c: Likewise.
27578 * config/v850/v850.c: Likewise.
27579 * config/vax/vax.c: Likewise.
27580 * config/xtensa/xtensa.c: Likewise.
27582 2014-06-02 Jeff Law <law@redhat.com>
27584 PR rtl-optimization/61094
27585 * ree.c (combine_reaching_defs): Do not reextend an insn if it
27586 was marked as do_no_reextend. If a copy is needed to eliminate
27587 an extension, then mark it as do_not_reextend.
27589 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
27591 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
27593 2014-06-02 Richard Henderson <rth@redhat.com>
27596 * config/alpha/alpha.c (print_operand_address): Allow symbolic
27597 addresses inside asms. Use output_operand_lossage instead of
27600 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
27603 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
27604 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
27606 2014-06-02 Tom de Vries <tom@codesourcery.com>
27608 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
27609 case that x has VOIDmode.
27611 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
27613 * varasm.c (copy_constant): Delete function.
27614 (build_constant_desc): Don't call it.
27616 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27619 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
27620 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
27621 with immediate_operand.
27623 2014-06-02 Andreas Schwab <schwab@suse.de>
27625 * config/ia64/ia64.c
27626 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
27627 pending_data_specs first.
27629 2014-06-02 Richard Biener <rguenther@suse.de>
27631 PR tree-optimization/61378
27632 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
27633 valueized_anything.
27635 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
27637 * config/i386/constraints.md (Bw): Rename from 'w'.
27638 (Bz): Rename from 'z'.
27639 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
27641 2014-06-01 Kai Tietz <ktietz@redhat.com>
27644 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
27645 * config/i386/i386.md (sibcall_insn_operand): Use Bs
27646 instead of m constraint.
27648 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
27650 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
27651 a separate alternative where the scratch operand 2 is marked as
27654 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
27656 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
27657 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
27658 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
27659 and __builtins_arm_get_fpscr.
27660 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
27661 __builtins_arm_get_fpscr.
27662 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
27663 __builtins_arm_ldfpscr.
27664 (arm_atomic_assign_expand_fenv): New function.
27665 * config/arm/vfp.md (set_fpscr): New pattern.
27666 (get_fpscr) : Likewise.
27667 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
27669 * doc/extend.texi (AARCH64 Built-in Functions) : Document
27670 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
27672 2014-05-30 Jakub Jelinek <jakub@redhat.com>
27674 * asan.c (report_error_func): Add SLOW_P argument, use
27675 BUILT_IN_ASAN_*_N if set.
27676 (build_check_stmt): Likewise.
27677 (instrument_derefs): If T has insufficient alignment,
27678 force same handling as for odd sizes.
27680 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
27681 BUILT_IN_ASAN_REPORT_STORE_N): New.
27682 * asan.c (struct asan_mem_ref): Change access_size type to
27684 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
27685 update_mem_ref_hash_table): Likewise.
27686 (asan_mem_ref_hasher::hash): Hash in a HWI.
27687 (report_error_func): Change size_in_bytes argument to HWI.
27688 Use *_N builtins if size_in_bytes is larger than 16 or not power of
27690 (build_shadow_mem_access): New function.
27691 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
27692 Handle size_in_bytes not power of two or larger than 16.
27693 (instrument_derefs): Don't give up if size_in_bytes is not
27694 power of two or is larger than 16.
27696 2014-05-30 Kai Tietz <ktietz@redhat.com>
27699 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
27700 for sibling-tail-calls.
27701 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
27703 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
27704 (sibcall_insn_operand): Add check for sibcall_memory_operand.
27706 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
27708 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
27709 * config/avr/avr-tables.opt: Regenerate.
27710 * config/avr/t-multilib: Regenerate.
27711 * doc/avr-mmcu.texi: Regenerate.
27713 2014-05-30 Ian Lance Taylor <iant@google.com>
27715 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
27718 2014-05-30 Tom de Vries <tom@codesourcery.com>
27720 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
27723 2014-05-30 Tom de Vries <tom@codesourcery.com>
27725 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
27726 * lra.c (initialize_lra_reg_info_element): Add init of
27727 actual_call_used_reg_set field.
27728 (lra): Call lra_create_live_ranges before lra_inheritance for
27730 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
27732 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
27733 instead of call_used_reg_set for -fuse-caller-save.
27734 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
27736 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27738 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
27740 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
27742 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
27744 * ira.c (ira_get_dup_out_num): Check for output operands at
27745 the start of the loop. Handle cases where an included alternative
27746 follows an excluded one.
27748 2014-05-29 Mike Stump <mikestump@comcast.net>
27751 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
27752 post ld passes when lto is used.
27754 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
27756 PR rtl-optimization/61325
27757 * lra-constraints.c (process_address): Rename to process_address_1.
27758 (process_address): New function.
27760 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
27762 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
27763 TYPES_BINOPV): New static data.
27764 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
27766 * config/aarch64/aarch64-simd.md (aarch64_ext,
27767 aarch64_im_lane_boundsi): New patterns.
27768 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
27770 (aarch64_evpc_ext): New function.
27772 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
27774 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
27775 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
27776 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
27777 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
27778 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
27780 2014-05-29 Tom de Vries <tom@codesourcery.com>
27782 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
27784 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
27785 Richard Sandiford <rdsandiford@googlemail.com>
27787 * arm/iterators.md (shiftable_ops): New code iterator.
27788 (t2_binop0, arith_shift_insn): New code attributes.
27789 * arm/predicates.md (shift_nomul_operator): New predicate.
27790 * arm/arm.md (insn_enabled): Delete.
27791 (enabled): Remove insn_enabled test.
27792 (*arith_shiftsi): Delete. Replace with ...
27793 (*<arith_shift_insn>_multsi): ... new pattern.
27794 (*<arith_shift_insn>_shiftsi): ... new pattern.
27795 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
27797 2014-05-29 Radovan Obradovic <robradovic@mips.com>
27798 Tom de Vries <tom@codesourcery.com>
27800 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
27801 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
27803 (mips_split_call): Use POST_CALL_TMP_REG.
27804 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
27806 2014-05-29 Tom de Vries <tom@codesourcery.com>
27808 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
27809 with #ifdef STACK_REGS.
27811 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
27813 * varasm.c (get_variable_section): Walk aliases.
27814 (place_block_symbol): Walk aliases.
27816 2014-05-28 Tom de Vries <tom@codesourcery.com>
27819 2014-05-28 Tom de Vries <tom@codesourcery.com>
27821 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
27822 * lra.c (initialize_lra_reg_info_element): Add init of
27823 actual_call_used_reg_set field.
27824 (lra): Call lra_create_live_ranges before lra_inheritance for
27826 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
27828 * lra-constraints.c (need_for_call_save_p): Use
27829 actual_call_used_reg_set instead of call_used_reg_set for
27831 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
27833 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
27835 * doc/md.texi: Document that the % constraint character must
27836 be at the beginning of the string.
27837 * genoutput.c (validate_insn_alternatives): Check that '=',
27838 '+' and '%' only appear at the beginning of a constraint.
27839 * ira.c (commutative_constraint_p): Delete.
27840 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
27841 at the start of the string.
27842 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
27844 * config/arm/neon.md (bicdi3_neon): Likewise.
27845 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
27846 (slt_si, sltu_si): Likewise.
27847 * config/vax/vax.md (sbcdi3): Likewise.
27848 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
27849 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
27850 (mul64): Move '%' to beginning of constraint.
27851 * config/arm/arm.md (*xordi3_insn): Likewise.
27852 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
27853 (xorsi3): Likewise.
27855 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
27857 * doc/md.texi: Document the restrictions on the "enabled" attribute.
27859 2014-05-28 Jason Merrill <jason@redhat.com>
27862 * cgraph.h (symtab_node::get_comdat_group_id): New.
27863 * cgraphunit.c (analyze_functions): Call it.
27864 * symtab.c (dump_symtab_node): Likewise.
27865 * tree.c (decl_comdat_group_id): New.
27866 * tree.h: Declare it.
27867 * lto-streamer-out.c (write_symbol): Use it.
27868 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
27870 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
27872 PR bootstrap/PR61146
27873 * wide-int.cc: Do not include longlong.h when compiling with clang.
27875 2014-05-28 Richard Biener <rguenther@suse.de>
27877 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
27878 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
27879 (vrp_visit_assignment_or_call): Print less vertical space.
27880 (vrp_visit_stmt): Likewise.
27881 (vrp_visit_phi_node): Likewise. For a PHI argument with
27882 VR_VARYING range consider recording it as copy.
27884 2014-05-28 Richard Biener <rguenther@suse.de>
27887 2014-05-28 Richard Biener <rguenther@suse.de>
27889 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
27891 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
27893 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
27894 sufficiently aligned and an offset is used at the same time.
27895 (expand_expr_real_1): Likewise.
27897 2014-05-28 Richard Biener <rguenther@suse.de>
27899 PR middle-end/61045
27900 * fold-const.c (fold_comparison): When folding
27901 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
27902 the sign of the remaining constant operand stays the same.
27904 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
27906 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
27907 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
27908 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
27910 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
27911 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
27912 (m32bit-doubles) Likewise.
27913 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
27914 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
27917 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27919 * configure.ac ($gcc_cv_ld_clearcap): New test.
27920 * configure: Regenerate.
27921 * config.in: Regenerate.
27922 * config/sol2.opt (mclear-hwcap): New option.
27923 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
27924 * config/sol2-clearcap.map: Moved here from
27925 testsuite/gcc.target/i386/clearcap.map.
27926 * config/sol2-clearcapv2.map: Move here from
27927 gcc.target/i386/clearcapv2.map.
27928 * config/t-sol2 (install): Depend on install-clearcap-map.
27929 (install-clearcap-map): New target.
27930 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
27933 2014-05-28 Richard Biener <rguenther@suse.de>
27935 * hwint.h (*_HALF_WIDE_INT*): Move to ...
27936 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
27937 ... here and remove the rest.
27938 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
27940 2014-05-28 Richard Biener <rguenther@suse.de>
27942 PR tree-optimization/61335
27943 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
27944 new range fails, drop to varying.
27946 2014-05-28 Olivier Hainque <hainque@adacore.com>
27948 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
27949 (CPP_SPEC): Add entry for -mcpu=8548.
27950 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
27951 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
27953 2014-05-28 Tom de Vries <tom@codesourcery.com>
27955 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
27956 * lra.c (initialize_lra_reg_info_element): Add init of
27957 actual_call_used_reg_set field.
27958 (lra): Call lra_create_live_ranges before lra_inheritance for
27960 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
27962 * lra-constraints.c (need_for_call_save_p): Use
27963 actual_call_used_reg_set instead of call_used_reg_set for
27965 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
27967 2014-05-28 Radovan Obradovic <robradovic@mips.com>
27968 Tom de Vries <tom@codesourcery.com>
27970 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
27972 (@item -fuse-caller-save): New item.
27974 2014-05-28 Radovan Obradovic <robradovic@mips.com>
27975 Tom de Vries <tom@codesourcery.com>
27977 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
27978 OPT_fuse_caller_save.
27980 2014-05-28 Radovan Obradovic <robradovic@mips.com>
27981 Tom de Vries <tom@codesourcery.com>
27983 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
27984 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
27985 get_call_reg_set_usage.
27986 * resource.c (mark_set_resources, mark_target_live_regs): Use
27987 get_call_reg_set_usage.
27988 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
27990 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
27991 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
27992 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
27993 * ira-build.c (ira_create_allocno): Init
27994 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
27995 (create_cap_allocno, propagate_allocno_info)
27996 (propagate_some_info_from_allocno)
27997 (copy_info_to_removed_store_destinations): Handle
27998 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
27999 * ira-costs.c (ira_tune_allocno_costs): Use
28000 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
28002 2014-05-28 Radovan Obradovic <robradovic@mips.com>
28003 Tom de Vries <tom@codesourcery.com>
28005 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
28006 and function_used_regs_valid fields.
28007 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
28008 find_all_hard_reg_sets.
28009 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
28010 (get_call_reg_set_usage): New function.
28011 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
28012 * regs.h (get_call_reg_set_usage): Declare.
28014 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
28017 * config/dbx.h (License): Add Runtime Library Exception.
28018 * config/newlib-stdint.h (License): Same.
28019 * config/rtems.h (License): Same
28020 * config/initfini-array.h (License): Same
28021 * config/v850/v850.h (License): Same.
28022 * config/v850/v850-opts.h (License): Same
28023 * config/v850/rtems.h (License): Same.
28025 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
28028 * doc/extend.texi (Local Labels): Note that label differences are
28029 not supported for AVR.
28031 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
28032 Olivier Hainque <hainque@adacore.com>
28034 * rtl.h (set_for_reg_notes): Declare.
28035 * emit-rtl.c (set_for_reg_notes): New function.
28036 (set_unique_reg_note): Use it.
28037 * optabs.c (add_equal_note): Likewise
28039 2014-05-27 Andrew Pinski <apinski@cavium.com>
28041 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
28042 Use <w> for the register in assembly template.
28043 (stack_protect_test): Use the mode of operands[0] for the result.
28044 (stack_protect_test_<mode>): Use <w> for the register
28045 in assembly template.
28047 2014-05-27 DJ Delorie <dj@redhat.com>
28049 * config/rx/rx.c (add_vector_labels): New.
28050 (rx_output_function_prologue): Call it.
28051 (rx_handle_func_attribute): Don't require empty arguments.
28052 (rx_handle_vector_attribute): New.
28053 (rx_attribute_table): Add "vector" attribute.
28054 * doc/extend.texi (interrupt, vector): Document new/changed
28055 RX-specific attributes.
28057 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
28059 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
28061 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
28062 predicate to detect a negative quotient.
28064 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
28066 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
28067 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
28068 Add X - Y CMP 0 to X CMP Y transformation.
28069 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
28071 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
28073 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
28076 2014-05-27 Steve Ellcey <sellcey@mips.com>
28078 * config/mips/mips.c: Add include of cgraph.h.
28080 2014-05-27 Richard Biener <rguenther@suse.de>
28082 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
28084 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
28087 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
28088 * config/arm/arm-cores.def (License): Same.
28089 * config/arm/arm-opts.h (License): Same.
28090 * config/arm/aout.h (License): Same.
28091 * config/arm/bpabi.h (License): Same.
28092 * config/arm/elf.h (License): Same.
28093 * config/arm/linux-elf.h (License): Same.
28094 * config/arm/linux-gas.h (License): Same.
28095 * config/arm/netbsd-elf.h (License): Same.
28096 * config/arm/uclinux-eabi.h (License): Same.
28097 * config/arm/uclinux-elf.h (License): Same.
28098 * config/arm/vxworks.h (License): Same.
28100 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28102 * config/arm/neon.md (neon_bswap<mode>): New pattern.
28103 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
28104 (arm_init_neon_builtins): Handle NEON_BSWAP.
28105 Define required type nodes.
28106 (arm_expand_neon_builtin): Handle NEON_BSWAP.
28107 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
28108 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
28109 * config/arm/iterators.md (VDQHSD): New mode iterator.
28111 2014-05-27 Richard Biener <rguenther@suse.de>
28113 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
28114 Try using literal operands when comparing value-ranges failed.
28116 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
28118 * ira.c (commutative_operand): Adjust for change to recog_data.
28119 [Missing from previous commit.]
28121 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
28123 * system.h (TEST_BIT): New macro.
28124 * recog.h (alternative_mask): New type.
28125 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
28126 (recog_data_d): Replace alternative_enabled_p array with
28127 enabled_alternatives.
28128 (target_recog): New structure.
28129 (default_target_recog, this_target_recog): Declare.
28130 (get_enabled_alternatives, recog_init): Likewise.
28131 * recog.c (default_target_recog, this_target_recog): New variables.
28132 (get_enabled_alternatives): New function.
28133 (extract_insn): Use it.
28134 (recog_init): New function.
28135 (preprocess_constraints, constrain_operands): Adjust for change to
28137 * postreload.c (reload_cse_simplify_operands): Likewise.
28138 * reload.c (find_reloads): Likewise.
28139 * ira-costs.c (record_reg_classes): Likewise.
28140 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
28141 all alternatives after a disabled one would be skipped.
28142 (ira_implicitly_set_insn_hard_regs): Likewise.
28143 * ira.c (ira_setup_alts): Adjust for change to recog_data.
28144 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
28145 with enabled_alternatives.
28146 * lra.c (free_insn_recog_data): Update accordingly.
28147 (lra_update_insn_recog_data): Likewise.
28148 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
28149 * lra-constraints.c (process_alt_operands): Likewise. Handle
28150 only_alternative as part of the enabled mask.
28151 * target-globals.h (this_target_recog): Declare.
28152 (target_globals): Add a recog field.
28153 (restore_target_globals): Restore this_target_recog.
28154 * target-globals.c: Include recog.h.
28155 (default_target_globals): Initialize recog field.
28156 (save_target_globals): Likewise.
28157 * reginfo.c (reinit_regs): Call recog_init.
28158 * toplev.c (backend_init_target): Likewise.
28160 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
28162 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
28163 rather than any named insn's code.
28165 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
28168 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
28169 * config/arm/arm-cores.def (License): Same.
28171 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
28173 * tree.h (decl_comdat_group): Declare.
28174 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
28175 * tree.c (decl_comdat_group): Here.
28177 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
28179 PR rtl-optimization/61222
28180 * combine.c (simplify_shift_const_1): When moving a PLUS outside
28181 the shift, truncate the PLUS operand to the result mode.
28183 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
28186 * config/i386/i386.c (ix86_rtx_costs)
28187 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
28190 2014-05-26 Martin Jambor <mjambor@suse.cz>
28192 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
28195 2014-05-26 Richard Biener <rguenther@suse.de>
28197 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
28198 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
28199 Provide specializations.
28200 (wi::int_traits <HOST_WIDE_INT>,
28201 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
28203 2014-05-26 Alan Modra <amodra@gmail.com>
28206 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
28207 params and return a bool. Remove dead code. Update comment.
28208 Assert we have a const_int source. Remove bogus code from
28209 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
28210 handling of constants > 2G and reg_equal note, from..
28211 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
28212 return value. Update comment. If we can, use a new pseudo
28213 for intermediate calculations.
28214 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
28216 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
28217 call to rs6000_emit_set_const in splitter.
28218 (movdi_internal64+2, +3): Likewise.
28220 2014-05-26 Richard Biener <rguenther@suse.de>
28222 * system.h: Define __STDC_FORMAT_MACROS before
28223 including inttypes.h.
28224 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
28225 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
28226 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
28227 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
28228 HOST_WIDEST_INT_C): Remove.
28229 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
28230 if C99 inttypes.h is not available.
28231 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
28232 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
28233 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
28234 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
28235 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
28236 (struct output_info): Likewise.
28237 (print_statistics): Adjust.
28238 (dump_bitmap_statistics): Likewise.
28239 * bt-load.c (migrate_btr_defs): Print with PRId64.
28240 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
28241 (MAX_SAFE_MULTIPLIER): Adjust.
28242 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
28243 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
28244 dump_cgraph_node): Likewise.
28245 * final.c (dump_basic_block_info): Likewise.
28246 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
28247 * gcov.c (format_gcov): Likewise.
28248 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
28250 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
28251 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
28252 (inline_small_functions, dump_overall_stats, dump_inline_stats):
28253 Use PRId64 for dumping.
28254 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
28255 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
28256 (add_allocno_hard_regs): Adjust.
28257 * loop-doloop.c (doloop_modify): Print using PRId64.
28258 * loop-iv.c (inverse): Compute in uint64_t.
28259 (determine_max_iter, iv_number_of_iterations): Likewise.
28260 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
28261 Print using PRId64.
28262 * lto-streamer-out.c (write_symbol): Use uint64_t.
28263 * mcf.c (CAP_INFINITY): Use int64_t maximum.
28264 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
28265 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
28266 * modulo-sched.c (const_iteration_count): Use int64_t.
28267 (sms_schedule): Dump using PRId64.
28268 * predict.c (dump_prediction): Likewise.
28269 * pretty-print.h (pp_widest_integer): Remove.
28270 * profile.c (get_working_sets, is_edge_inconsistent,
28271 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
28272 * tree-pretty-print.c (pp_double_int): Remove case handling
28273 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
28274 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
28276 (pass_optimize_bswap::execute): Remove restriction on hosts.
28277 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
28278 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
28279 * tree.c (widest_int_cst_value): Remove.
28280 * tree.h (widest_int_cst_value): Likewise.
28281 * value-prof.c (dump_histogram_value): Print using PRId64.
28282 * gengtype.c (main): Also inject int64_t.
28283 * ggc-page.c (struct max_alignment): Use int64_t.
28284 * alloc-pool.c (struct allocation_object_def): Likewise.
28285 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
28287 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
28288 * doc/tm.texi: Regenerated.
28289 * gengtype-lex.l (IWORD): Handle [u]int64_t.
28290 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
28291 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
28292 mmix_output_register_setting): Use [u]int64_t in prototypes.
28293 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
28294 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
28295 mmix_output_octa, mmix_output_shifted_value): Adjust.
28296 (mmix_intval): Adjust. Remove unreachable case.
28297 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
28299 2014-05-26 Richard Biener <rguenther@suse.de>
28301 * configure.ac: Drop __int64 type check. Insist that we
28302 found uint64_t and int64_t.
28303 * hwint.h (HOST_BITS_PER___INT64): Remove.
28304 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
28305 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
28306 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
28307 (HOST_WIDEST_FAST_INT): Remove __int64 case.
28308 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
28309 for dst_q_src_df_rms_cdt.
28310 * configure: Regenerate.
28311 * config.in: Likewise.
28313 2014-05-26 Michael Tautschnig <mt@debian.org>
28316 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
28317 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
28319 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28321 PR rtl-optimization/61278
28322 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
28324 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
28326 PR rtl-optimization/61220
28327 Part of PR rtl-optimization/61225
28328 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
28329 insn; skip split_edge for a block with only one successor.
28331 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28333 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
28336 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28338 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
28339 (update_vtable_references): New function.
28340 (function_and_variable_visibility): Rewrite also vtable initializers.
28341 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
28343 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28345 * ggc.h (ggc_grow): New function.
28346 * ggc-none.c (ggc_grow): New function.
28347 * ggc-page.c (ggc_grow): Likewise.
28349 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28351 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
28352 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
28353 comdat_can_be_unshared_p, cgraph_externally_visible_p,
28354 varpool_externally_visible_p, can_replace_by_local_alias,
28355 update_visibility_by_resolution_info, function_and_variable_visibility,
28356 pass_data_ipa_function_and_variable_visibility,
28357 make_pass_ipa_function_and_variable_visibility,
28358 whole_program_function_and_variable_visibility,
28359 pass_data_ipa_whole_program_visibility,
28360 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
28361 * cgraph.h (cgraph_local_node_p): Declare.
28362 * ipa-visibility.c: New file.
28363 * Makefile.in (OBJS): Add ipa-visiblity.o
28365 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28367 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
28368 that var decl is available.
28370 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28372 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
28373 symtab_node pointer.
28374 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
28375 (find_decls_types_r): Do not walk COMDAT_GROUP.
28376 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
28377 * varasm.c (make_decl_one_only): Use set_comdat_group;
28378 create node if needed.
28379 * ipa-inline-transform.c (save_inline_function_body): Update
28380 way we decl->symtab mapping.
28381 * symtab.c (symtab_hash, hash_node, eq_node
28382 symtab_insert_node_to_hashtable): Remove.
28383 (symtab_register_node): Update.
28384 (symtab_unregister_node): Update.
28385 (symtab_get_node): Reimplement as inline function.
28386 (symtab_add_to_same_comdat_group): Update.
28387 (symtab_dissolve_same_comdat_group_list): Update.
28388 (dump_symtab_base): Update.
28389 (verify_symtab_base): Update.
28390 (symtab_make_decl_local): Update.
28391 (fixup_same_cpp_alias_visibility): Update.
28392 (symtab_nonoverwritable_alias): Update.
28393 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
28394 * ipa.c (update_visibility_by_resolution_info): UPdate.
28395 * bb-reorder.c: Include cgraph.h
28396 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
28397 with comdat groups.
28398 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
28399 * cgraph.c (cgraph_get_create_node): Update.
28400 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
28402 (symtab_get_node): Make inline.
28403 (symtab_insert_node_to_hashtable): Remove.
28404 (symtab_can_be_discarded): Update.
28405 (decl_comdat_group): New function.
28406 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
28408 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
28410 (read_comdat_group): New function.
28411 (input_node, input_varpool_node): Use it.
28412 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
28414 * mips.c (mips_start_unique_function): Likewise.
28415 (ix86_code_end): Likewise.
28416 (rs6000_code_end): Likweise.
28417 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
28419 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28421 * gengtype-state.c (fatal_reading_state): Bring offline.
28422 * optabs.c (widening_optab_handler): Bring offline.
28423 * optabs.h (widening_optab_handler): Likewise.
28424 * final.c (get_attr_length_1): Likewise.
28426 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
28428 * sched-int.h (sd_iterator_cond): Manually tail recurse.
28430 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28432 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
28433 (ppc440-compare): Include shift with dot.
28434 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
28435 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
28437 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
28439 (e6500_sfx2): Include it.
28440 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
28441 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
28442 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
28443 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
28444 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
28445 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
28446 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
28447 *lshiftrt_internal1le, *lshiftrt_internal1be,
28448 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
28449 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
28450 *rotldi3_internal10le, *rotldi3_internal10be,
28451 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
28452 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
28453 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
28454 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
28455 define_insns): Use type "shift" in the appropriate alternatives.
28457 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28459 * config/rs6000/rs6000.md (type): Add "logical". Delete
28461 (dot): Adjust comment.
28462 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
28463 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
28464 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
28465 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
28466 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
28467 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
28468 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
28469 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
28471 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
28472 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
28473 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
28474 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
28475 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
28476 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
28477 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
28478 * config/rs6000/8540.md (ppc8540_su): Adjust.
28479 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
28480 cell-cmp-microcoded): Adjust.
28481 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
28482 * config/rs6000/e500mc.md (e500mc_su): Adjust.
28483 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
28484 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
28485 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
28486 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
28487 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
28488 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
28489 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
28491 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
28492 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
28493 Adjust. Adjust comment.
28494 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
28495 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
28497 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28499 * config/rs6000/rs6000.md (type): Add "add".
28500 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
28501 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
28502 define_insns): Use it.
28503 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
28505 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
28506 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
28507 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
28508 * config/rs6000/601.md (ppc601-integer): Adjust.
28509 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
28510 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
28511 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
28512 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
28513 * config/rs6000/8540.md (ppc8540_su): Adjust.
28514 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
28515 cell-cmp-microcoded): Adjust.
28516 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
28517 * config/rs6000/e500mc.md (e500mc_su): Adjust.
28518 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
28519 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
28520 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
28521 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
28522 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
28523 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
28524 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
28526 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
28527 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
28528 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
28529 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
28531 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28533 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
28534 "delayed_compare", "var_delayed_compare".
28535 (var_shift): New attribute.
28536 (cell_micro): Adjust.
28537 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
28538 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
28539 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
28540 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
28541 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
28542 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
28543 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
28544 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
28545 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
28546 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
28547 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
28548 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
28549 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
28550 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
28551 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
28552 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
28553 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
28554 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
28555 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
28556 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
28557 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
28558 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
28559 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
28560 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
28561 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
28563 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
28564 * config/rs6000/440.md (ppc440-integer): Adjust.
28565 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
28566 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
28567 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
28568 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
28569 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
28570 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
28571 * config/rs6000/8540.md (ppc8540_su): Adjust.
28572 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
28573 cell-cmp-microcoded): Adjust.
28574 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
28575 * config/rs6000/e500mc.md (e500mc_su): Adjust.
28576 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
28577 e500mc64_delayed): Adjust.
28578 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
28579 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
28580 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
28581 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
28582 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
28583 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
28584 power6-delayed-compare, power6-var-delayed-compare): Adjust.
28585 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
28586 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
28588 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
28589 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
28591 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28593 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
28594 (bits): New mode_attr.
28595 (idiv_ldiv): Delete mode_attr.
28596 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
28597 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
28598 rs6000_adjust_priority, is_nonpipeline_insn,
28599 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
28601 * config/rs6000/40x.md (ppc403-idiv): Adjust.
28602 * config/rs6000/440.md (ppc440-idiv): Adjust.
28603 * config/rs6000/476.md (ppc476-idiv): Adjust.
28604 * config/rs6000/601.md (ppc601-idiv): Adjust.
28605 * config/rs6000/603.md (ppc603-idiv): Adjust.
28606 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
28607 ppc620-ldiv): Adjust.
28608 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
28609 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
28610 * config/rs6000/8540.md (ppc8540_divide): Adjust.
28611 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
28612 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
28613 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
28614 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
28615 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
28616 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
28617 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
28618 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
28619 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
28620 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
28621 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
28622 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
28623 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
28624 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
28625 * config/rs6000/titan.md (titan_fxu_div): Adjust.
28627 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28629 * config/rs6000/rs6000.md (type): Delete "insert_word",
28630 "insert_dword". Add "insert".
28631 (size): Update comment.
28632 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
28633 insn_must_be_first_in_group): Adjust.
28634 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
28635 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
28636 *insvsi_internal6, insvdi_internal): Adjust.
28638 * config/rs6000/40x.md (ppc403-integer): Adjust.
28639 * config/rs6000/440.md (ppc440-integer): Adjust.
28640 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
28641 * config/rs6000/601.md (ppc601-integer): Adjust.
28642 * config/rs6000/603.md (ppc603-integer): Adjust.
28643 * config/rs6000/6xx.md (ppc604-integer): Adjust.
28644 * config/rs6000/7450.md (ppc7450-integer): Adjust.
28645 * config/rs6000/7xx.md (ppc750-integer): Adjust.
28646 * config/rs6000/8540.md (ppc8540_su): Adjust.
28647 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
28648 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
28649 * config/rs6000/e500mc.md (e500mc_su): Adjust.
28650 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
28651 * config/rs6000/e5500.md (e5500_sfx): Adjust.
28652 * config/rs6000/e6500.md (e6500_sfx): Adjust.
28653 * config/rs6000/mpc.md (mpccore-integer): Adjust.
28654 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
28655 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
28656 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
28657 * config/rs6000/power7.md (power7-integer): Adjust.
28658 * config/rs6000/power8.md (power8-1cyc): Adjust.
28659 * config/rs6000/rs64.md (rs64a-integer): Adjust.
28660 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
28662 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28664 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
28665 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
28666 (size): New attribute.
28667 (dot): New attribute.
28668 (cell_micro): Adjust.
28669 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
28670 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
28671 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
28672 umuldi3_highpart): Adjust.
28673 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
28674 rs6000_adjust_priority, is_nonpipeline_insn,
28675 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
28677 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
28678 ppc405-imul3): Adjust.
28679 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
28680 * config/rs6000/476.md (ppc476-imul): Adjust.
28681 * config/rs6000/601.md (ppc601-imul): Adjust.
28682 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
28683 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
28684 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
28685 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
28686 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
28688 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
28689 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
28690 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
28691 cell-imul): Adjust.
28692 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
28693 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
28694 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
28695 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
28696 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
28697 * config/rs6000/mpc.md (mpccore-imul): Adjust.
28698 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
28699 power4-lmul, power4-imul, power4-imul3): Adjust.
28700 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
28701 power5-lmul, power5-imul, power5-imul3): Adjust.
28702 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
28703 power6-lmul, power6-imul, power6-imul3): Adjust.
28704 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
28705 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
28707 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
28708 rs64a-lmul): Adjust.
28709 * config/rs6000/titan.md (titan_imul): Adjust.
28711 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28713 * config/rs6000/rs6000.md (type): Add new value "halfmul".
28714 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
28715 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
28716 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
28717 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
28718 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
28719 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
28720 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
28721 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
28722 * config/rs6000/titan.md: Delete nonsensical comment.
28723 (titan_imul): Add type imul3.
28724 (titan_mulhw): Remove type imul3; add type halfmul.
28726 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
28728 * config/rs6000/rs6000.md (type): Reorder, reformat.
28730 2014-05-23 Martin Jambor <mjambor@suse.cz>
28732 PR tree-optimization/53787
28733 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
28734 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
28735 analysis_done, update all uses.
28736 * ipa-prop.c: Include domwalk.h
28737 (param_analysis_info): Removed.
28738 (param_aa_status): New type.
28739 (ipa_bb_info): Likewise.
28740 (func_body_info): Likewise.
28741 (ipa_get_bb_info): New function.
28742 (aa_overwalked): Likewise.
28743 (find_dominating_aa_status): Likewise.
28744 (parm_bb_aa_status_for_bb): Likewise.
28745 (parm_preserved_before_stmt_p): Changed to use new param AA info.
28746 (load_from_unmodified_param): Accept func_body_info as a parameter
28747 instead of parms_ainfo.
28748 (parm_ref_data_preserved_p): Changed to use new param AA info.
28749 (parm_ref_data_pass_through_p): Likewise.
28750 (ipa_load_from_parm_agg_1): Likewise. Update callers.
28751 (compute_complex_assign_jump_func): Changed to use new param AA info.
28752 (compute_complex_ancestor_jump_func): Likewise.
28753 (ipa_compute_jump_functions_for_edge): Likewise.
28754 (ipa_compute_jump_functions): Removed.
28755 (ipa_compute_jump_functions_for_bb): New function.
28756 (ipa_analyze_indirect_call_uses): Likewise, moved variable
28758 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
28759 and info, moved variable declarations down.
28760 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
28762 (ipa_analyze_stmt_uses): Likewise.
28763 (ipa_analyze_params_uses): Removed.
28764 (ipa_analyze_params_uses_in_bb): New function.
28765 (ipa_analyze_controlled_uses): Likewise.
28766 (free_ipa_bb_info): Likewise.
28767 (analysis_dom_walker): New class.
28768 (ipa_analyze_node): Handle node-specific forbidden analysis,
28769 initialize and free func_body_info, use dominator walker.
28770 (ipcp_modif_dom_walker): New class.
28771 (ipcp_transform_function): Create and free func_body_info, use
28772 ipcp_modif_dom_walker, moved a lot of functionality there.
28774 2014-05-23 Marek Polacek <polacek@redhat.com>
28775 Jakub Jelinek <jakub@redhat.com>
28777 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
28778 * gcc.c (sanitize_spec_function): Likewise.
28779 * convert.c (convert_to_integer): Include "ubsan.h". Add
28780 floating-point to integer instrumentation.
28781 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
28782 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
28783 SANITIZE_NONDEFAULT.
28784 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
28785 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
28786 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
28787 * ubsan.c: Include "realmpfr.h" and "dfp.h".
28788 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
28789 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
28790 float/double/long double.
28791 (ubsan_instrument_float_cast): New function.
28792 * ubsan.h (ubsan_instrument_float_cast): Declare.
28794 2014-05-23 Jiong Wang <jiong.wang@arm.com>
28796 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
28798 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
28799 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
28800 Adjust for tailcalling through registers.
28801 * config/aarch64/aarch64.h (enum reg_class): New caller save
28803 (REG_CLASS_NAMES): Likewise.
28804 (REG_CLASS_CONTENTS): Likewise.
28805 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
28806 Allow tailcalling without decls.
28808 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
28810 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
28811 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
28813 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
28814 gsi, and variables v_* to v*.
28816 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
28818 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
28820 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
28822 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
28823 * omp-low.c: Update accordingly.
28825 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
28826 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
28827 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
28828 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
28829 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
28830 GF_OMP_TARGET_KIND_UPDATE.
28832 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
28833 Explicitly enumerate the expected region types.
28835 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
28838 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
28839 documentation; the old documentation didn't clearly state the
28840 constraints on the contents of the pointed-to storage.
28842 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28844 Fix bootstrap error on ia64
28845 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
28846 Return default value.
28848 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
28850 PR tree-optimization/54733
28851 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
28853 (find_bswap_or_nop_load): New.
28854 (find_bswap_1): Renamed to ...
28855 (find_bswap_or_nop_1): This. Also add support for memory source.
28856 (find_bswap): Renamed to ...
28857 (find_bswap_or_nop): This. Also add support for memory source and
28858 detection of bitwise operations equivalent to load in target
28860 (execute_optimize_bswap): Likewise. Also move its leading comment back
28861 in place and split statement transformation into ...
28862 (bswap_replace): This.
28864 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
28866 PR rtl-optimization/61215
28867 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
28868 simplify_gen_subreg until final substitution.
28870 2014-05-23 Alan Modra <amodra@gmail.com>
28873 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
28874 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
28875 Use "Y" constraint rather than "m".
28877 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
28879 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
28881 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
28882 New function declaration.
28883 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
28884 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
28885 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
28886 (aarch64_init_builtins) : Initialize builtins
28887 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
28888 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
28889 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
28890 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
28891 and __builtins_aarch64_set_fpsr.
28892 (aarch64_atomic_assign_expand_fenv): New function.
28893 * config/aarch64/aarch64.md (set_fpcr): New pattern.
28894 (get_fpcr) : Likewise.
28895 (set_fpsr) : Likewise.
28896 (get_fpsr) : Likewise.
28897 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
28898 and UNSPECV_SET_FPSR.
28899 * doc/extend.texi (AARCH64 Built-in Functions) : Document
28900 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
28901 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
28903 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
28905 PR rtl-optimization/60969
28906 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
28907 constraints. Set up mem cost for NO_REGS case.
28909 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
28911 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
28913 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
28915 * config/darwin.c: Include "lto-section-names.h".
28916 (LTO_SEGMENT_NAME): Don't define.
28917 * config/i386/winnt.c: Include "lto-section-names.h".
28918 * lto-streamer.c: Include "lto-section-names.h".
28919 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
28920 * lto-wrapper.c: Include "lto-section-names.h".
28921 (LTO_SECTION_NAME_PREFIX): Don't define.
28922 * lto-section-names.h: New file.
28923 * cgraphunit.c: Include "lto-section-names.h".
28925 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
28927 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
28929 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
28932 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
28934 2014-05-22 Nick Clifton <nickc@redhat.com>
28936 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
28938 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
28940 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
28941 -> (T)A transformation to integer types.
28943 2014-05-22 Teresa Johnson <tejohnson@google.com>
28945 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
28946 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
28947 (gcov_rewrite): Use gcov_nonruntime_assert.
28948 (gcov_open): Ditto.
28949 (gcov_write_words): Ditto.
28950 (gcov_write_length): Ditto.
28951 (gcov_read_words): Use gcov_nonruntime_assert, and remove
28952 gcc_assert from IN_LIBGCOV code.
28953 (gcov_read_summary): Use gcov_error to flag profile corruption.
28954 (gcov_sync): Use gcov_nonruntime_assert.
28955 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
28956 (gcov_histo_index): Use gcov_nonruntime_assert.
28957 (static void gcov_histogram_merge): Ditto.
28958 (compute_working_sets): Ditto.
28959 * gcov-io.h (gcov_nonruntime_assert): Define.
28960 (gcov_error): Define for !IN_LIBGCOV
28962 2014-05-22 Richard Biener <rguenther@suse.de>
28964 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28965 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
28966 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
28967 and deallocation site.
28968 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
28969 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
28970 passing through the incoming points-to set.
28971 (handle_lhs_call): Use flags argument instead of recomputing it.
28972 (find_func_aliases_for_call): Call handle_lhs_call with proper
28975 2014-05-22 Jakub Jelinek <jakub@redhat.com>
28977 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
28978 all padding bits in REAL_VALUE_TYPE are cleared.
28980 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
28982 Cleanup and improve multipass_dfa_lookahead_guard
28983 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
28984 (core2i7_first_cycle_multipass_begin,)
28985 (core2i7_first_cycle_multipass_issue,)
28986 (core2i7_first_cycle_multipass_backtrack): Update signature.
28987 * config/ia64/ia64.c
28988 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
28989 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
28990 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
28992 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
28993 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
28995 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
28997 * doc/tm.texi: Regenerate.
28999 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
29000 * haifa-sched.c (ready_try): Make signed to allow negative values.
29001 (rebug_ready_list_1): Update.
29002 (choose_ready): Simplify.
29003 (sched_extend_ready_list): Update.
29005 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
29007 Remove IA64 speculation tweaking flags
29008 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
29009 speculation tuning flags.
29010 (msched-prefer-non-data-spec-insns,)
29011 (msched-prefer-non-control-spec-insns): Obsolete options.
29012 * haifa-sched.c (choose_ready): Remove handling of
29013 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
29014 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
29015 and PREFER_NON_DATA_SPEC.
29016 * sel-sched.c (process_spec_exprs): Remove handling of
29017 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
29019 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
29021 Improve scheduling debug output
29022 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
29023 (advance_one_cycle): Update.
29024 (schedule_insn, queue_to_ready): Add debug printouts.
29025 (debug_ready_list_1): New static function.
29026 (debug_ready_list): Update.
29027 (max_issue): Add debug printouts.
29028 (dump_insn_stream): New static function.
29029 (schedule_block): Use it. Also better indent printouts.
29031 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
29033 Fix sched_insn debug counter
29034 * haifa-sched.c (schedule_insn): Update.
29035 (struct haifa_saved_data): Add nonscheduled_insns_begin.
29036 (save_backtrack_point, restore_backtrack_point): Update.
29037 (first_nonscheduled_insn): New static function.
29038 (queue_to_ready, choose_ready): Use it.
29039 (schedule_block): Init nonscheduled_insns_begin.
29040 (sched_emit_insn): Update.
29043 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
29045 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
29047 (aarch64_secondary_reload) : LikeWise.
29048 (aarch64_class_max_nregs) : Remove CORE_REGS.
29049 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
29050 (REG_CLASS_NAMES) : Likewise.
29051 (REG_CLASS_CONTENTS) : LikeWise.
29052 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
29054 2014-05-21 Guozhi Wei <carrot@google.com>
29057 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
29059 (vqdmulhq_n_s16): Likewise.
29061 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
29063 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
29065 2014-05-21 Marek Polacek <polacek@redhat.com>
29068 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
29070 2014-05-21 Martin Jambor <mjambor@suse.cz>
29072 * doc/invoke.texi (Optimize Options): Document parameters
29073 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
29074 ipa-cp-array-index-hint-bonus.
29076 2014-05-21 Mark Wielaard <mjw@redhat.com>
29079 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
29080 version >= 3 or not strict DWARF.
29081 * langhooks.h (struct lang_hooks_for_types): Add
29082 enum_underlying_base_type.
29083 * langhooks.c (lhd_enum_underlying_base_type): New function.
29084 * gcc/langhooks.h (struct lang_hooks_for_types): Add
29085 enum_underlying_base_type.
29086 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
29087 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
29088 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
29090 2014-05-21 Richard Biener <rguenther@suse.de>
29092 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
29094 2014-05-21 John Marino <gnugcc@marino.st>
29096 * config.gcc (*-*-dragonfly*): New target.
29097 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
29098 * configure: Regenerate.
29099 * config/dragonfly-stdint.h: New.
29100 * config/dragonfly.h: New.
29101 * config/dragonfly.opt: New.
29102 * config/i386/dragonfly.h: New.
29103 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
29105 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29107 * tree.def (VOID_CST): New.
29108 * tree-core.h (TI_VOID): New.
29109 * tree.h (void_node): New.
29110 * tree.c (tree_node_structure_for_code, tree_code_size)
29111 (iterative_hash_expr): Handle VOID_CST.
29112 (build_common_tree_nodes): Initialize void_node.
29114 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
29116 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
29118 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
29120 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
29123 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
29124 flag_reorder_blocks_and_partition.
29125 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
29127 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
29130 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
29132 (*addc_r_t): Add new insn_and_split.
29134 2014-05-21 Jakub Jelinek <jakub@redhat.com>
29136 PR middle-end/61252
29137 * omp-low.c (handle_simd_reference): New function.
29138 (lower_rec_input_clauses): Use it. Defer adding reference
29139 initialization even for reduction without placeholder if in simd,
29140 handle it properly later on.
29142 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29144 PR tree-optimization/60899
29145 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
29146 assume all static symbols will have definition wile parsing and
29147 check the do have definition later in compilation; check that
29148 variable referring symbol will be output before concluding that
29149 reference is safe; be conservative for referring local statics;
29150 be more precise about when comdat is output in other partition.
29152 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29155 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
29157 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
29158 (ipa_inline): Loop inline_to_all_callers until no more aliases
29161 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29163 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
29164 set writeonly flag only for vars actually written to.
29166 2014-05-20 Dehao Chen <dehao@google.com>
29168 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
29169 and callee count to get clone count.
29170 * tree-inline.c (expand_call_inline): Use callee count instead of bb
29171 count in copy_body.
29173 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
29175 PR rtl-optimization/61243
29176 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
29178 2014-05-20 Xinliang David Li <davidxl@google.com>
29180 * cgraphunit.c (walk_polymorphic_call_targets): Add
29181 dbgcnt and fopt-info support.
29182 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
29183 * ipa-devirt.c (ipa_devirt): Ditto.
29184 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
29185 * ipa.c (walk_polymorphic_call_targets): Ditto.
29186 * gimple-fold.c (fold_gimple_assign): Ditto.
29187 (gimple_fold_call): Ditto.
29188 * dbgcnt.def: New counter.
29190 2014-05-20 DJ Delorie <dj@redhat.com>
29192 * config/msp430/msp430.md (split): Don't allow subregs when
29193 splitting SImode adds.
29194 (andneghi): Fix subtraction logic.
29195 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
29197 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
29199 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
29201 * except.c (switch_to_exception_section, resolve_unique_section,
29202 get_named_text_section, default_function_rodata_section,
29203 align_variable, get_block_for_decl, default_section_type_flags):
29204 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
29205 * symtab.c (symtab_add_to_same_comdat_group,
29206 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
29207 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
29209 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
29210 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
29211 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
29212 (c6x_function_in_section_p): Likewise.
29213 * config/darwin.c (machopic_select_section): Likewise.
29214 * config/arm/arm.c (arm_function_in_section_p): Likewise.
29215 * config/mips/mips.c (mips_function_rodata_section): Likewise.
29216 * config/mep/mep.c (mep_select_section): LIkewise.
29217 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
29219 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
29221 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
29222 EH region of calls to pure functions that can throw an exception.
29223 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
29224 (copy_reference_ops_from_call): Also copy the EH region of the call if
29225 it can throw an exception.
29227 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29229 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
29230 nested VEC_SELECTs that are inverses of each other.
29232 2014-05-20 Richard Biener <rguenther@suse.de>
29234 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
29235 (extract_and_process_scc_for_name): not here.
29236 (cond_dom_walker::before_dom_children): Only process
29237 stmts that end the BB in interesting ways.
29238 (run_scc_vn): Mark param uses as visited.
29240 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29242 * config/arm/arm.md (arith_shiftsi): Do not predicate for
29245 2014-05-20 Nick Clifton <nickc@redhat.com>
29247 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
29248 (msp430_gimplify_va_arg_expr): New function.
29249 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
29251 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
29252 operand 0 in order to prevent confusion about the number of
29253 registers involved.
29255 2014-05-20 Richard Biener <rguenther@suse.de>
29257 PR tree-optimization/61221
29258 * tree-ssa-pre.c (el_to_update): Remove.
29259 (eliminate_dom_walker::before_dom_children): Handle released
29260 VDEFs by value-numbering them to the associated VUSE. Update
29261 stmt immediately for substituted call address.
29262 (eliminate): Remove delayed stmt updating code.
29263 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
29264 possibly late re-numbered vuses.
29265 (vn_reference_lookup_2): Adjust.
29266 (vn_reference_lookup_pieces): Likewise.
29267 (vn_reference_lookup): Likewise.
29269 2014-05-20 Richard Biener <rguenther@suse.de>
29271 * config.gcc: Remove need_64bit_hwint.
29272 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
29273 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
29275 * config.in: Regenerate.
29276 * configure: Likewise.
29278 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
29280 * doc/extend.texi: Create Label Attributes section,
29281 move all label attributes into it and reference it.
29283 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
29285 * arm.c (thumb1_reorg): When scanning backwards skip anything
29286 that's not a proper insn.
29288 2014-05-19 Richard Biener <rguenther@suse.de>
29290 PR tree-optimization/61221
29291 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
29292 Do nothing for unreachable blocks.
29293 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
29294 Improve unreachability detection.
29296 2014-05-19 Richard Biener <rguenther@suse.de>
29298 PR tree-optimization/61209
29299 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
29301 2014-05-19 Nick Clifton <nickc@redhat.com>
29303 * except.c (init_eh): Fix computation of builtin setjmp buffer
29304 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
29306 2014-05-19 Richard Biener <rguenther@suse.de>
29308 PR tree-optimization/61184
29309 * tree-vrp.c (is_negative_overflow_infinity): Use
29310 TREE_OVERFLOW_P and do that check first.
29311 (is_positive_overflow_infinity): Likewise.
29312 (is_overflow_infinity): Likewise.
29313 (vrp_operand_equal_p): Properly treat operands with
29314 differing overflow as not equal.
29316 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
29318 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
29319 shift simplification where it was intended.
29321 2014-05-19 Christian Bruel <christian.bruel@st.com>
29324 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
29326 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
29329 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
29332 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29334 * reg-notes.def (CROSSING_JUMP): Likewise.
29335 * rtl.h (rtx_def): Update comment for jump flag.
29336 (CROSSING_JUMP_P): Define.
29337 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
29338 of a REG_CROSSING_JUMP note.
29339 * cfghooks.c (tidy_fallthru_edges): Likewise.
29340 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
29341 * emit-rtl.c (try_split): Likewise.
29342 * haifa-sched.c (sched_create_recovery_edges): Likewise.
29343 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
29344 * jump.c (redirect_jump_2): Likewise.
29345 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
29346 (relax_delay_slots): Likewise.
29347 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
29348 (bbit_di): Likewise.
29349 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
29350 * config/sh/sh.md (jump_compact): Likewise.
29351 * bb-reorder.c (rotate_loop): Likewise.
29352 (pass_duplicate_computed_gotos::execute): Likewise.
29353 (add_reg_crossing_jump_notes): Rename to...
29354 (update_crossing_jump_flags): ...this.
29355 (pass_partition_blocks::execute): Update accordingly.
29357 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
29359 * tree.h: Remove extraneous template <>.
29361 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29363 * ipa.c (symtab_remove_unreachable_nodes): Remove
29364 symbol from comdat group if its body was eliminated.
29365 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
29366 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
29367 (symtab_unregister_node): ... this one.
29368 (verify_symtab_base): More strict checking of comdats.
29369 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
29371 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29373 * tree-pass.h (make_pass_ipa_comdats): New pass.
29374 * timevar.def (TV_IPA_COMDATS): New timevar.
29375 * passes.def (pass_ipa_comdats): Add.
29376 * Makefile.in (OBJS): Add ipa-comdats.o
29377 * ipa-comdats.c: New file.
29379 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29381 * ipa.c (update_visibility_by_resolution_info): New function.
29382 (function_and_variable_visibility): Use it.
29384 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
29386 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
29388 (FOR_EACH_DEFINED_SYMBOL): New macro.
29389 (varpool_first_static_initializer, varpool_next_static_initializer,
29390 varpool_first_defined_variable, varpool_next_defined_variable):
29392 (symtab_in_same_comdat_p): Correctly deal with inline functions.
29394 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29396 * ggc-page.c (ggc_handle_finalizers): Add comment.
29398 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29400 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
29401 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
29402 (ggc_internal_cleared_alloc): Likewise.
29403 * ggc-page.c (finalizer): New class.
29404 (vec_finalizer): Likewise.
29405 (globals::finalizers): New member.
29406 (globals::vec_finalizers): Likewise.
29407 (ggc_internal_alloc): Record the finalizer if any for the block being
29409 (ggc_handle_finalizers): New function.
29410 (ggc_collect): Call ggc_handle_finalizers.
29411 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
29413 (ggc_internal_cleared_alloc): Likewise.
29414 (finalize): New function.
29415 (need_finalization_p): Likewise.
29416 (ggc_alloc): Install the type's destructor as the finalizer if it
29417 might do something.
29418 (ggc_cleared_alloc): Likewise.
29419 (ggc_vec_alloc): Likewise.
29420 (ggc_cleared_vec_alloc): Likewise.
29422 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29424 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
29426 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29428 * alias.c (record_alias_subset): Adjust.
29429 * bitmap.c (bitmap_element_allocate): Likewise.
29430 (bitmap_gc_alloc_stat): Likewise.
29431 * cfg.c (init_flow): Likewise.
29432 (alloc_block): Likewise.
29433 (unchecked_make_edge): Likewise.
29434 * cfgloop.c (alloc_loop): Likewise.
29435 (flow_loops_find): Likewise.
29436 (rescan_loop_exit): Likewise.
29437 * cfgrtl.c (init_rtl_bb_info): Likewise.
29438 * cgraph.c (insert_new_cgraph_node_version): Likewise.
29439 (cgraph_allocate_node): Likewise.
29440 (cgraph_create_edge_1): Likewise.
29441 (cgraph_allocate_init_indirect_info): Likewise.
29442 * cgraphclones.c (cgraph_clone_edge): Likewise.
29443 * cgraphunit.c (add_asm_node): Likewise.
29444 (init_lowered_empty_function): Likewise.
29445 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
29446 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
29447 (alpha_use_linkage): Likewise.
29448 * config/arc/arc.c (arc_init_machine_status): Likewise.
29449 * config/arm/arm.c (arm_init_machine_status): Likewise.
29450 * config/avr/avr.c (avr_init_machine_status): Likewise.
29451 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
29452 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
29453 * config/cris/cris.c (cris_init_machine_status): Likewise.
29454 * config/darwin.c (machopic_indirection_name): Likewise.
29455 (darwin_build_constant_cfstring): Likewise.
29456 (darwin_enter_string_into_cfstring_table): Likewise.
29457 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
29458 * config/frv/frv.c (frv_init_machine_status): Likewise.
29459 * config/i386/i386.c (get_dllimport_decl): Likewise.
29460 (ix86_init_machine_status): Likewise.
29461 (assign_386_stack_local): Likewise.
29462 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
29463 (i386_pe_maybe_record_exported_symbol): Likewise.
29464 (i386_pe_record_stub): Likewise.
29465 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
29466 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
29467 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
29468 (m32c_note_pragma_address): Likewise.
29469 * config/mep/mep.c (mep_init_machine_status): Likewise.
29470 (mep_note_pragma_flag): Likewise.
29471 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
29472 (mips16_local_alias): Likewise.
29473 (mips_init_machine_status): Likewise.
29474 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
29475 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
29476 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
29477 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
29478 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
29479 * config/pa/pa.c (pa_init_machine_status): Likewise.
29480 (pa_get_deferred_plabel): Likewise.
29481 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
29482 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
29483 (rs6000_init_machine_status): Likewise.
29484 (output_toc): Likewise.
29485 * config/s390/s390.c (s390_init_machine_status): Likewise.
29486 * config/score/score.c (score_output_external): Likewise.
29487 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
29488 * config/spu/spu.c (spu_init_machine_status): Likewise.
29489 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
29490 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
29491 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
29492 * coverage.c (coverage_end_function): Likewise.
29493 * dbxout.c (dbxout_init): Likewise.
29494 * doc/gty.texi: Don't mention variable_size attribute.
29495 * dwarf2cfi.c (new_cfi): Adjust.
29496 (new_cfi_row): Likewise.
29497 (copy_cfi_row): Likewise.
29498 (create_cie_data): Likewise.
29499 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
29500 (new_loc_descr): Likewise.
29501 (find_AT_string_in_table): Likewise.
29502 (add_addr_table_entry): Likewise.
29503 (new_die): Likewise.
29504 (add_var_loc_to_decl): Likewise.
29505 (clone_die): Likewise.
29506 (clone_as_declaration): Likewise.
29507 (break_out_comdat_types): Likewise.
29508 (new_loc_list): Likewise.
29509 (add_loc_descr_to_each): Likewise.
29510 (add_location_or_const_value_attribute): Likewise.
29511 (add_linkage_name): Likewise.
29512 (lookup_filename): Likewise.
29513 (dwarf2out_var_location): Likewise.
29514 (new_line_info_table): Likewise.
29515 (dwarf2out_init): Likewise.
29516 (mem_loc_descriptor): Likewise.
29517 (loc_descriptor): Likewise.
29518 (add_const_value_attribute): Likewise.
29519 (tree_add_const_value_attribute): Likewise.
29520 (comp_dir_string): Likewise.
29521 (dwarf2out_vms_debug_main_pointer): Likewise.
29522 (string_cst_pool_decl): Likewise.
29523 * emit-rtl.c (set_mem_attrs): Likewise.
29524 (get_reg_attrs): Likewise.
29525 (start_sequence): Likewise.
29526 (init_emit): Likewise.
29527 (init_emit_regs): Likewise.
29528 * except.c (init_eh_for_function): Likewise.
29529 (gen_eh_region): Likewise.
29530 (gen_eh_region_catch): Likewise.
29531 (gen_eh_landing_pad): Likewise.
29532 (add_call_site): Likewise.
29533 * function.c (add_frame_space): Likewise.
29534 (insert_temp_slot_address): Likewise.
29535 (assign_stack_temp_for_type): Likewise.
29536 (get_hard_reg_initial_val): Likewise.
29537 (allocate_struct_function): Likewise.
29538 (prepare_function_start): Likewise.
29539 (types_used_by_var_decl_insert): Likewise.
29540 * gengtype.c (variable_size_p): Remove function.
29541 (enum alloc_quantity): Remove enum.
29542 (write_typed_alloc_def): Remove function.
29543 (write_typed_struct_alloc_def): Likewise.
29544 (write_typed_typedef_alloc_def): Likewise.
29545 (write_typed_alloc_defns): Likewise.
29547 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
29548 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
29549 * ggc.h (ggc_alloc): new function.
29550 (ggc_cleared_alloc): Likewise.
29551 (ggc_vec_alloc): Template on type of vector element, and remove
29552 element size argument.
29553 (ggc_cleared_vec_alloc): Likewise.
29554 * gimple.c (gimple_build_omp_for): Adjust.
29555 (gimple_copy): Likewise.
29556 * ipa-cp.c (get_replacement_map): Likewise.
29557 (find_aggregate_values_for_callers_subset): Likewise.
29558 (known_aggs_to_agg_replacement_list): Likewise.
29559 * ipa-devirt.c (get_odr_type): Likewise.
29560 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
29561 (read_agg_replacement_chain): Likewise.
29562 * loop-iv.c (get_simple_loop_desc): Likewise.
29563 * lto-cgraph.c (input_node_opt_summary): Likewise.
29564 * lto-section-in.c (lto_new_in_decl_state): Likewise.
29565 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
29566 (input_eh_region): Likewise.
29567 (input_eh_lp): Likewise.
29568 (input_cfg): Likewise.
29569 * optabs.c (set_optab_libfunc): Likewise.
29570 (init_tree_optimization_optabs): Likewise.
29571 (set_conv_libfunc): Likewise.
29572 * passes.c (do_per_function_toporder): Likewise.
29573 * rtl.h: Don't use variable_size gty attribute.
29574 * sese.c (if_region_set_false_region): Adjust.
29575 * stringpool.c (gt_pch_save_stringpool): Likewise.
29576 * target-globals.c (save_target_globals): Likewise.
29577 * toplev.c (general_init): Likewise.
29578 * trans-mem.c (record_tm_replacement): Likewise.
29579 (split_bb_make_tm_edge): Likewise.
29580 * tree-cfg.c (move_sese_region_to_fn): Likewise.
29581 * tree-data-ref.h (lambda_vector_new): Likewise.
29582 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
29583 * tree-iterator.c (tsi_link_before): Likewise.
29584 (tsi_link_after): Likewise.
29585 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
29586 * tree-ssa-loop-niter.c (record_estimate): Likewise.
29587 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
29588 * tree-ssa-operands.h: Don't use variable_size gty attribute.
29589 * tree-ssa.c (init_tree_ssa): Adjust.
29590 * tree-ssanames.c (set_range_info): Likewise.
29591 (get_ptr_info): Likewise.
29592 (duplicate_ssa_name_ptr_info): Likewise.
29593 (duplicate_ssa_name_range_info): Likewise.
29594 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
29595 (unpack_ts_fixed_cst_value_fields): Likewise.
29596 * tree.c (build_fixed): Likewise.
29597 (build_real): Likewise.
29598 (build_string): Likewise.
29599 (decl_priority_info): Likewise.
29600 (decl_debug_expr_insert): Likewise.
29601 (decl_value_expr_insert): Likewise.
29602 (decl_debug_args_insert): Likewise.
29603 (type_hash_add): Likewise.
29604 (build_omp_clause): Likewise.
29605 * ubsan.c (decl_for_type_insert): Likewise.
29606 * varasm.c (get_unnamed_section): Likewise.
29607 (get_noswitch_section): Likewise.
29608 (get_section): Likewise.
29609 (get_block_for_section): Likewise.
29610 (create_block_symbol): Likewise.
29611 (build_constant_desc): Likewise.
29612 (create_constant_pool): Likewise.
29613 (force_const_mem): Likewise.
29614 (record_tm_clone_pair): Likewise.
29615 * varpool.c (varpool_create_empty_node): Likewise.
29617 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
29619 * dwarf2out.c (tree_add_const_value_attribute): Call
29620 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
29621 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
29622 instead of ggc_internal_<x>alloc_stat.
29623 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
29624 (ggc_realloc): Likewise.
29625 * ggc-none.c (ggc_internal_alloc): Likewise.
29626 (ggc_internal_cleared_alloc): Likewise.
29627 * ggc-page.c: Likewise.
29628 * ggc.h (ggc_internal_alloc_stat): Likewise.
29629 (ggc_internal_alloc): Remove macro.
29630 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
29631 (ggc_internal_cleared_alloc): Remove macro.
29632 (GGC_RESIZEVEC): Adjust.
29633 (ggc_resizevar): Remove macro.
29634 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
29635 (ggc_internal_cleared_vec_alloc_stat): Likewise.
29636 (ggc_internal_vec_cleared_alloc): Remove macro.
29637 (ggc_alloc_atomic_stat): Drop _stat suffix.
29638 (ggc_alloc_atomic): Remove macro.
29639 (ggc_alloc_cleared_atomic): Remove macro.
29640 (ggc_alloc_string_stat): Drop _stat suffix.
29641 (ggc_alloc_string): Remove macro.
29642 (ggc_alloc_rtx_def_stat): Adjust.
29643 (ggc_alloc_tree_node_stat): Likewise.
29644 (ggc_alloc_cleared_tree_node_stat): Likewise.
29645 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
29646 (ggc_alloc_cleared_simd_clone_stat): Likewise.
29647 * gimple.c (gimple_build_omp_for): Likewise.
29648 (gimple_copy): Likewise.
29649 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
29650 * toplev.c (realloc_for_line_map): Adjust.
29651 * tree-data-ref.h (lambda_vector_new): Likewise.
29652 * tree-phinodes.c (allocate_phi_node): Likewise.
29653 * tree.c (grow_tree_vec_stat): Likewise.
29654 * vec.h (va_gc::reserve): Adjust.
29656 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
29658 * config/microblaze/microblaze.c (break_handler): New Declaration.
29659 (microblaze_break_function_p,microblaze_is_break_handler): New.
29660 (compute_frame_size): Use microblaze_break_function_p.
29661 Add the test of break_handler.
29662 (microblaze_function_prologue) : Add the test of variable
29663 break_handler. Check the fnname by BREAK_HANDLER_NAME.
29664 (microblaze_function_epilogue) : Add the test of break_handler.
29665 (microblaze_globalize_label) : Add the test of break_handler.
29666 Check the name by BREAK_HANDLER_NAME.
29668 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
29670 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
29671 microblaze_is_break_handler test.
29672 (call_internal1,call_value_intern): Use microblaze_break_function_p.
29673 Use SYMBOL_REF_DECL.
29675 * config/microblaze/microblaze-protos.h
29676 (microblaze_break_function_p,microblaze_is_break_handler):
29679 * doc/extend.texi (MicroBlaze break_handler Functions): Document
29680 new MicroBlaze break_handler functions.
29682 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
29684 * doc/extend.texi (Size of an asm): Move node text according
29685 to its @menu entry position.
29687 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
29689 PR tree-optimization/61140
29690 PR tree-optimization/61150
29691 PR tree-optimization/61197
29692 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
29694 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
29696 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
29698 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
29700 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
29701 __SIZEOF_INT128__ is defined.
29703 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
29705 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
29706 (rs6000_delegitimize_address): Use it.
29708 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
29710 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
29711 inplace argument. Store the new address in the original MEM when true.
29712 * emit-rtl.c (change_address_1): Likewise.
29713 (adjust_address_1, adjust_automodify_address_1, offset_address):
29714 Update accordingly.
29715 * rtl.h (plus_constant): Add an inplace argument.
29716 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
29717 when true. Avoid generating (plus X (const_int 0)).
29718 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
29719 in-place. Pass true to plus_constant.
29720 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
29722 2014-05-16 Dehao Chen <dehao@google.com>
29724 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
29726 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
29729 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
29731 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
29733 2014-05-16 Dehao Chen <dehao@google.com>
29735 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
29736 optimize_function_for_size_p.
29737 * regs.h (REG_FREQ_FROM_BB): Likewise.
29739 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
29742 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
29743 negt_reg_operand cases.
29744 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
29746 * config/sh/predicates.md (cbranch_treg_value): Simplify.
29748 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
29750 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
29753 2014-05-16 David Malcolm <dmalcolm@redhat.com>
29756 2014-04-29 David Malcolm <dmalcolm@redhat.com>
29758 * tree-cfg.c (dump_function_to_file): Dump the return type of
29759 functions, in a line to itself before the function body, mimicking
29760 the layout of a C function.
29762 2014-05-16 Dehao Chen <dehao@google.com>
29764 * cfghooks.c (make_forwarder_block): Use direct computation to
29765 get fall-through edge's count and frequency.
29767 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
29769 * config/arc/arc.c (arc_init): Fix typo in error message.
29770 * config/i386/i386.c (ix86_expand_builtin): Likewise.
29771 (split_stack_prologue_scratch_regno): Likewise.
29772 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
29773 word from error message.
29775 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
29777 * ira-costs.c: Fix typo in comment.
29779 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
29781 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
29783 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
29785 * varpool.c (dump_varpool_node): Dump write-only flag.
29786 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
29788 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
29789 write-only variables.
29790 * ipa.c (process_references): New function.
29791 (set_readonly_bit): New function.
29792 (set_writeonly_bit): New function.
29793 (clear_addressable_bit): New function.
29794 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
29795 fix handling of aliases.
29796 * cgraph.h (struct varpool_node): Add writeonly flag.
29798 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
29800 PR rtl-optimization/60969
29801 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
29802 Calculate costs for this case.
29804 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
29806 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
29807 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
29809 2014-05-16 Richard Biener <rguenther@suse.de>
29811 PR tree-optimization/61194
29812 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
29813 bool patterns ending in a COND_EXPR.
29815 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29817 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
29819 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29821 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
29822 where we were unable to cost an RTX.
29824 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29826 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
29829 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29830 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29832 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
29834 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29835 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29837 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
29838 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
29840 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29841 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29843 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
29846 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29847 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29849 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
29852 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29853 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29855 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
29856 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
29858 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29859 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29861 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
29862 rotates and shifts.
29864 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29865 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29867 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
29868 ZERO_EXTEND and SIGN_EXTEND better.
29870 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29871 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29873 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
29874 logical operations.
29876 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29877 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29879 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
29880 costs when costing loads and stores to memory.
29882 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29883 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
29885 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
29888 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29890 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
29892 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29893 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29895 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
29897 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
29899 (aarch64_rtx_mult_cost): New.
29900 (aarch64_rtx_costs): Use it, refactor as appropriate.
29902 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29903 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
29905 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
29906 emit instructions, return number of instructions which would
29908 (aarch64_add_constant): Update call to aarch64_build_constant.
29909 (aarch64_output_mi_thunk): Likewise.
29910 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
29913 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29915 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
29916 (TARGET_RTX_COSTS): Call it.
29918 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29920 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
29921 (cortexa57_vector_cost): Likewise.
29922 (cortexa57_tunings): Use them.
29924 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
29926 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
29927 (cpu_addrcost_table): Use it.
29928 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
29929 (aarch64_address_cost): Rewrite using aarch64_classify_address,
29932 2014-05-16 Richard Biener <rguenther@suse.de>
29934 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
29935 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
29936 (visit_phi): Ignore edges marked as not executable.
29937 (class cond_dom_walker): New.
29938 (cond_dom_walker::before_dom_children): Value-number
29939 control statements and mark successor edges as not
29940 executable if possible.
29941 (run_scc_vn): First walk all control statements in
29942 dominator order, marking edges as not executable.
29943 * tree-inline.c (copy_edges_for_bb): Be not confused
29944 about random edge flags.
29946 2014-05-16 Richard Biener <rguenther@suse.de>
29948 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
29950 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
29953 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
29954 (__TM_simple_begin): Use it.
29955 (__TM_begin): Likewise.
29957 2014-05-15 Martin Jambor <mjambor@suse.cz>
29960 * ipa-prop.c (update_indirect_edges_after_inlining): Check
29961 type_preserved flag when the indirect edge is polymorphic.
29963 2014-05-15 Martin Jambor <mjambor@suse.cz>
29965 PR tree-optimization/61090
29966 * tree-sra.c (sra_modify_expr): Pass the current gsi to
29967 build_ref_for_model.
29969 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29971 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
29972 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
29974 2014-05-15 Jakub Jelinek <jakub@redhat.com>
29976 PR tree-optimization/61158
29977 * fold-const.c (fold_binary_loc): If X is zero-extended and
29978 shiftc >= prec, make sure zerobits is all ones instead of
29979 invoking undefined behavior.
29981 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29983 * regcprop.h: New file.
29984 * regcprop.c (skip_debug_insn_p): New decl.
29985 (replace_oldest_value_reg): Check skip_debug_insn_p.
29986 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
29987 * shrink-wrap.c: Include regcprop.h.
29988 (prepare_shrink_wrap): Call
29989 copyprop_hardreg_forward_bb_without_debug_insn.
29991 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29993 * shrink-wrap.h: Update comment.
29994 * shrink-wrap.c: Update comment.
29995 (next_block_for_reg): Rename to live_edge_for_reg.
29996 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
29997 (move_insn_for_shrink_wrap): Split live_edge.
29998 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
30000 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
30002 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
30004 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
30005 * config/sparc/sparc.md (fptype_ut699): New attribute.
30006 (in_branch_delay): Return false if -mfix-ut699 is specified and
30007 fptype_ut699 is set to single.
30008 (truncdfsf2): Add fptype_ut699 attribute.
30009 (fix_truncdfsi2): Likewise.
30010 (floatsisf2): Change fptype attribute.
30011 (fix_truncsfsi2): Likewise.
30012 (negtf2_notv9): Delete.
30013 (negtf2_v9): Likewise.
30014 (negtf2_hq): New instruction.
30015 (negtf2): New instruction and splitter.
30016 (negdf2_notv9): Rewrite.
30017 (abstf2_notv9): Delete.
30018 (abstf2_hq_v9): Likewise.
30019 (abstf2_v9): Likewise.
30020 (abstf2_hq): New instruction.
30021 (abstf2): New instruction and splitter.
30022 (absdf2_notv9): Rewrite.
30024 2014-05-14 Cary Coutant <ccoutant@google.com>
30027 * opts.c (common_handle_option): Don't special-case "-g".
30028 (set_debug_level): Default to at least level 2 with "-g".
30030 2014-05-14 DJ Delorie <dj@redhat.com>
30032 * config/msp430/msp430.c (msp430_builtin): Add
30033 MSP430_BUILTIN_DELAY_CYCLES.
30034 (msp430_init_builtins): Register void __delay_cycles(long long).
30035 (msp430_builtin_decl): Add it.
30036 (cg_magic_constant): New.
30037 (msp430_expand_delay_cycles): New.
30038 (msp430_expand_builtin): Call it.
30039 (msp430_print_operand_raw): Change integer printing from "int" to
30041 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
30042 (delay_cycles_start): New.
30043 (delay_cycles_end): New.
30044 (delay_cycles_32): New.
30045 (delay_cycles_32x): New.
30046 (delay_cycles_16): New.
30047 (delay_cycles_16x): New.
30048 (delay_cycles_2): New.
30049 (delay_cycles_1): New.
30050 * doc/extend.texi: Document __delay_cycles().
30052 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
30054 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
30055 length attribute computation.
30057 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
30060 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
30062 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
30065 * config/sparc/sparc.md: Fix types of low and high in DI constant
30066 splitter. Use gen_int_mode in some other splitters.
30068 2014-05-14 Martin Jambor <mjambor@suse.cz>
30071 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
30073 2014-05-14 James Norris <jnorris@codesourcery.com>
30075 * omp-low.c (expand_parallel_call): Remove shadow variable.
30076 (expand_omp_taskreg): Likewise.
30078 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
30080 * common/config/i386/i386-common.c
30081 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
30082 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
30083 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
30084 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
30085 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
30086 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
30087 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
30088 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
30089 xsavecintrin.h, xsavesintrin.h.
30090 (x86_64-*-*): Ditto.
30091 * config/i386/clflushoptintrin.h: New.
30092 * config/i386/xsavecintrin.h: Ditto.
30093 * config/i386/xsavesintrin.h: Ditto.
30094 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
30095 (bit_XSAVES): Ditto.
30096 (bit_XSAVES): Ditto.
30097 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
30098 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
30100 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
30101 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
30102 OPTION_MASK_ISA_XSAVES.
30103 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
30104 -mxsavec, -mxsaves.
30105 (PTA_CLFLUSHOPT) Define.
30106 (PTA_XSAVEC): Ditto.
30107 (PTA_XSAVES): Ditto.
30108 (ix86_option_override_internal): Handle new options.
30109 (ix86_valid_target_attribute_inner_p): Ditto.
30110 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
30111 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
30112 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
30113 (bdesc_special_args): Add __builtin_ia32_xsaves,
30114 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
30115 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
30116 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
30117 (ix86_expand_builtin): Handle new builtins.
30118 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
30119 (TARGET_CLFLUSHOPT_P): Ditto.
30120 (TARGET_XSAVEC): Ditto.
30121 (TARGET_XSAVEC_P): Ditto.
30122 (TARGET_XSAVES): Ditto.
30123 (TARGET_XSAVES_P): Ditto.
30124 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
30125 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
30126 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
30128 (ANY_XRSTOR64): Ditto.
30130 (xrstor): Change into <xrstor>.
30131 (xrstor_rex64): Change into <xrstor>_rex64.
30132 (xrstor64): Change into <xrstor>64
30134 * config/i386/i386.opt (mclflushopt): New.
30137 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
30139 * doc/invoke.texi: Document new options.
30141 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
30143 PR rtl-optimization/60866
30144 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
30145 Default it to -1. Pass it down to init_simplejump_data.
30146 (init_simplejump_data): New parameter old_seqno. Pass it down
30147 to get_seqno_for_a_jump.
30148 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
30149 initializing new jump seqno as a last resort. Add comment.
30150 (sel_redirect_edge_and_branch): Save old seqno of the conditional
30151 jump and pass it down to sel_init_new_insn.
30152 (sel_redirect_edge_and_branch_force): Likewise.
30154 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
30156 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
30157 shifted values to avoid build warning.
30159 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
30161 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
30162 * cfgrtl.c (rtl_merge_blocks): Fix comment.
30163 (cfg_layout_merge_blocks): Likewise.
30164 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
30166 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
30168 PR rtl-optimization/60901
30169 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
30170 bb predecessor belongs to the same scheduling region. Adjust comment.
30172 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
30174 * doc/sourcebuild.texi: (dfp_hw): Document.
30175 (p8vector_hw): Likewise.
30176 (powerpc_eabi_ok): Likewise.
30177 (powerpc_elfv2): Likewise.
30178 (powerpc_htm_ok): Likewise.
30179 (ppc_recip_hw): Likewise.
30180 (vsx_hw): Likewise.
30182 2014-05-13 Cary Coutant <ccoutant@google.com>
30184 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
30186 2014-05-13 David Malcolm <dmalcolm@redhat.com>
30188 * gengtype-parse.c (require3): Eliminate in favor of...
30190 (require_template_declaration): Update to support optional single *
30193 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
30194 (create_user_defined_type): Handle a single level of explicit
30195 pointerness within template arguments.
30196 (struct write_types_data): Add field "kind".
30197 (filter_type_name): Handle "*" character.
30198 (write_user_func_for_structure_ptr): Require a write_types_data
30199 rather than just a prefix string, so that we can look up the kind
30200 of the wtd and use it as an index into wrote_user_func_for_ptr,
30201 ensuring that such functions are written at most once. Support
30202 subclasses by invoking the marking function of the ultimate base class.
30203 (write_user_func_for_structure_body): Require a write_types_data
30204 rather than just a prefix string, so that we can pass this to
30205 write_user_func_for_structure_ptr.
30206 (write_func_for_structure): Likewise.
30207 (ggc_wtd): Add initializer of new "kind" field.
30208 (pch_wtd): Likewise.
30210 * gengtype.h (enum write_types_kinds): New.
30211 (struct type): Add field wrote_user_func_for_ptr to the "s"
30214 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
30216 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
30217 instead of const_binop.
30218 (fold_binary_loc): Likewise.
30220 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
30222 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
30223 calculation to match get_ref_base_and_extent.
30225 2014-05-13 Catherine Moore <clm@codesourcery.com>
30226 Sandra Loosemore <sandra@codesourcery.com>
30228 * configure.ac: Fix assembly for explicit JALR relocation check.
30229 * configure: Regenerate.
30231 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30233 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
30234 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
30235 Remove associated type declarations and initialisations.
30236 (arm_expand_neon_builtin): Likewise.
30237 (neon_emit_pair_result_insn): Delete.
30238 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
30239 * config/arm/neon.md (neon_vtrn<mode>): Delete.
30240 (neon_vzip<mode>): Likewise.
30241 (neon_vuzp<mode>): Likewise.
30243 2014-05-13 Richard Biener <rguenther@suse.de>
30246 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
30247 it needs revisiting whether the call still may be tail-called.
30249 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30251 * rtl.def (SYMBOL_REF): Remove middle "0" field.
30252 * rtl.h (block_symbol): Reduce number of fields to 2.
30253 (rtx_def): Add u2.symbol_ref_flags.
30254 (SYMBOL_REF_FLAGS): Use it.
30255 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
30256 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
30257 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
30258 Lower index of SYMBOL_REF_DATA.
30259 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
30260 Print SYMBOL_REF_FLAGS at the same time.
30261 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
30263 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30265 * rtl.def (VAR_LOCATION): Remove "i" field.
30266 * rtl.h (rtx_def): Add u2.var_location_status.
30267 (PAT_VAR_LOCATION_STATUS): Use it.
30268 (gen_rtx_VAR_LOCATION): Declare.
30269 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
30270 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
30271 * var-tracking.c (emit_note_insn_var_location): Remove casts.
30273 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30275 * rtl.def (scratch): Fix outdated comment and remove "0" field.
30276 * gengtype.c (adjust_field_rtx_def): Update accordingly.
30278 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30280 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
30281 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
30282 * rtl.h (rtx_def): Add insn_uid to u2 field.
30283 (RTX_FLAG_CHECK8): Delete in favor of...
30284 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
30285 (INSN_DELETED_P): Update accordingly.
30286 (INSN_UID): Use u2.insn_uid.
30287 (INSN_CHAIN_CODE_P): Define.
30288 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
30289 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
30290 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
30291 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
30292 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
30293 indices accordingly.
30294 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
30295 Update indices for insn-chain rtxes.
30296 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
30297 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
30298 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
30299 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
30300 * combine.c (try_combine): Likewise.
30301 * ira.c (setup_prohibited_mode_move_regs): Likewise.
30303 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30305 * rtl.def (REG): Remove middle field.
30306 * rtl.h (rtx_def): Add orignal_regno to u2.
30307 (ORIGINAL_REGNO): Use it instead of field 1.
30308 (REG_ATTRS): Lower field index accordingly.
30309 * gengtype.c (adjust_field_rtx_def): Remove handling of
30310 ORIGINAL_REGNO. Move REG_ATTRS index down.
30311 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
30312 code that prints the REGNO.
30314 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30316 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
30319 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
30321 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
30323 2014-05-13 Bin Cheng <bin.cheng@arm.com>
30325 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
30326 (alloc_iv): Lower base expressions containing ADDR_EXPR.
30328 2014-05-13 Ian Bolton <ian.bolton@arm.com>
30330 * config/aarch64/aarch64-protos.h
30331 (aarch64_hard_regno_caller_save_mode): New prototype.
30332 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
30334 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
30336 2014-05-13 Christian Bruel <christian.bruel@st.com>
30338 * target.def (mode_switching): New hook vector.
30339 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
30340 (mode_exit, modepriority_to_mode): Likewise.
30341 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
30342 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
30343 * target.h: Include tm.h and hard-reg-set.h.
30344 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
30345 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
30346 * doc/tm.texi Regenerate.
30347 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
30348 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
30349 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
30350 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
30351 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
30352 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
30353 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
30354 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
30355 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
30356 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
30357 (ix86_emit_mode_set): Hookify.
30358 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
30360 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
30361 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
30362 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
30363 (epiphany_mode_priority_to_mode): Remove declaration.
30364 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
30365 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
30366 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
30368 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
30369 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
30370 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
30372 2014-05-13 Jakub Jelinek <jakub@redhat.com>
30375 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
30376 is const0_rtx, return immediately. Don't test count == 0 when
30379 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
30381 * Makefile.in: add shrink-wrap.o.
30382 * config/i386/i386.c: include "shrink-wrap.h"
30383 * function.c: Likewise.
30384 (requires_stack_frame_p, next_block_for_reg,
30385 move_insn_for_shrink_wrap, prepare_shrink_wrap,
30386 dup_block_and_redirect): Move to shrink-wrap.c
30387 (thread_prologue_and_epilogue_insns): Extract three code segments
30388 as functions in shrink-wrap.c
30389 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
30391 * shrink-wrap.c: New file.
30392 * shrink-wrap.h: New file.
30394 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
30396 * doc/extend.texi: Reflect current numbers of pragmas. Remove
30397 reference to Solaris.
30399 2014-05-12 Mike Stump <mikestump@comcast.net>
30402 * genattrtab.c (filename): Add.
30403 (convert_set_attr_alternative): Improve error message.
30404 (check_defs): Restore read_md_filename for error messages.
30405 (gen_insn): Save filename.
30407 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
30409 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
30410 -fno-local-ivars and -fivar-visibility.
30411 * c-family/c.opt: Make -Wshadow also implicitly enable
30414 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
30416 * doc/tm.texi: Remove reference to deleted macro.
30417 * doc/tm.texi.in: Likewise.
30419 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
30422 * config/avr/avr.c (avr_out_store_psi): Use correct constant
30425 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
30428 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
30429 * config/arm/aout.h (License): Same.
30430 * config/arm/bpabi.h (License): Same.
30431 * config/arm/elf.h (License): Same.
30432 * config/arm/linux-elf.h (License): Same.
30433 * config/arm/linux-gas.h (License): Same.
30434 * config/arm/netbsd-elf.h (License): Same.
30435 * config/arm/uclinux-eabi.h (License): Same.
30436 * config/arm/uclinux-elf.h (License): Same.
30437 * config/arm/vxworks.h (License): Same.
30439 2014-05-11 Jakub Jelinek <jakub@redhat.com>
30441 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
30442 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
30443 number of operands to 3.
30444 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
30445 * tree-nested.c (convert_nonlocal_omp_clauses,
30446 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
30447 * gimplify.c (gimplify_scan_omp_clauses): Handle
30448 OMP_CLAUSE_LINEAR_STMT.
30449 * omp-low.c (lower_rec_input_clauses): Fix typo.
30450 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
30451 cast between Fortran boolean_type_node and C _Bool if
30454 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
30456 PR tree-optimization/61136
30457 * wide-int.h (multiple_of_p): Define a version that doesn't return
30459 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
30460 integer_zerop/const_binop pair.
30461 (multiple_of_p): Likewise, converting both operands to widest_int
30464 2014-05-09 Teresa Johnson <tejohnson@google.com>
30466 * cgraphunit.c (analyze_functions): Use correct dump file.
30468 2014-05-09 Florian Weimer <fweimer@redhat.com>
30470 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
30472 (stack_protect_return_slot_p): New function.
30473 (expand_used_vars): Call stack_protect_decl_p and
30474 stack_protect_return_slot_p for -fstack-protector-strong.
30476 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
30477 Andrew Haley <aph@redhat.com>
30478 Richard Sandiford <rdsandiford@googlemail.com>
30480 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
30483 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
30485 PR middle-end/61111
30486 * fold-const.c (fold_binary_loc): Changed width of mask.
30488 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
30490 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
30491 unsigned int initializers for regno_in, regno_out.
30493 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
30496 * config/avr/avr.md (cc): Add new attribute set_vzn.
30497 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
30498 Set cc insn attribute to set_vzn instead of set_zn for alternatives
30499 with INC, DEC or NEG.
30500 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
30501 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
30502 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
30504 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30507 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30509 * wide-int.cc (UTItype): Define.
30510 (UDWtype): Define for appropriate W_TYPE_SIZE.
30512 2014-05-09 Richard Biener <rguenther@suse.de>
30514 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
30515 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
30516 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
30517 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
30518 ssa_propagate): Adjust.
30520 2014-05-08 Jeff Law <law@redhat.com>
30522 PR tree-optimization/61009
30523 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
30524 tri-state rather than a boolean. When a block is too big to
30525 thread through, inform caller via negative return value.
30526 (thread_across_edge): If a block was too big for normal threading,
30527 then it's too big for a joiner too, so remove temporary equivalences
30528 and return immediately.
30530 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
30531 Matthias Klose <doko@ubuntu.com>
30534 * optc-gen.awk: Fix option handling for -Wunused-parameter.
30536 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
30539 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
30541 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
30544 * config/alpha/alpha.c: Include gimple-iterator.h.
30545 (alpha_gimple_fold_builtin): New function. Move
30546 ALPHA_BUILTIN_UMULH folding from ...
30547 (alpha_fold_builtin): ... here.
30548 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
30550 2014-05-08 Wei Mi <wmi@google.com>
30553 * config/i386/i386.c (ix86_compute_frame_layout): Update
30554 preferred_stack_boundary for call, expanded from tls descriptor.
30555 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
30556 to depend on SP register.
30557 (*tls_local_dynamic_base_32_gnu): Ditto.
30558 (*tls_local_dynamic_32_once): Ditto.
30559 (tls_global_dynamic_64_<mode>): Set
30560 ix86_tls_descriptor_calls_expanded_in_cfun.
30561 (tls_local_dynamic_base_64_<mode>): Ditto.
30562 (tls_global_dynamic_32): Set
30563 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
30564 to depend on SP register.
30565 (tls_local_dynamic_base_32): Ditto.
30567 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30569 * config/arm/arm_neon.h: Update comment.
30570 * config/arm/neon-docgen.ml: Delete.
30571 * config/arm/neon-gen.ml: Delete.
30572 * doc/arm-neon-intrinsics.texi: Update comment.
30574 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30576 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
30578 (vand, vorr, veor, vorn, vbic): Remove.
30579 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
30581 (neon_vsub_unspec): Likewise.
30582 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
30584 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30586 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
30587 (vadd_s16): Likewise.
30588 (vadd_s32): Likewise.
30589 (vadd_f32): Likewise.
30590 (vadd_u8): Likewise.
30591 (vadd_u16): Likewise.
30592 (vadd_u32): Likewise.
30593 (vadd_s64): Likewise.
30594 (vadd_u64): Likewise.
30595 (vaddq_s8): Likewise.
30596 (vaddq_s16): Likewise.
30597 (vaddq_s32): Likewise.
30598 (vaddq_s64): Likewise.
30599 (vaddq_f32): Likewise.
30600 (vaddq_u8): Likewise.
30601 (vaddq_u16): Likewise.
30602 (vaddq_u32): Likewise.
30603 (vaddq_u64): Likewise.
30604 (vmul_s8): Likewise.
30605 (vmul_s16): Likewise.
30606 (vmul_s32): Likewise.
30607 (vmul_f32): Likewise.
30608 (vmul_u8): Likewise.
30609 (vmul_u16): Likewise.
30610 (vmul_u32): Likewise.
30611 (vmul_p8): Likewise.
30612 (vmulq_s8): Likewise.
30613 (vmulq_s16): Likewise.
30614 (vmulq_s32): Likewise.
30615 (vmulq_f32): Likewise.
30616 (vmulq_u8): Likewise.
30617 (vmulq_u16): Likewise.
30618 (vmulq_u32): Likewise.
30619 (vsub_s8): Likewise.
30620 (vsub_s16): Likewise.
30621 (vsub_s32): Likewise.
30622 (vsub_f32): Likewise.
30623 (vsub_u8): Likewise.
30624 (vsub_u16): Likewise.
30625 (vsub_u32): Likewise.
30626 (vsub_s64): Likewise.
30627 (vsub_u64): Likewise.
30628 (vsubq_s8): Likewise.
30629 (vsubq_s16): Likewise.
30630 (vsubq_s32): Likewise.
30631 (vsubq_s64): Likewise.
30632 (vsubq_f32): Likewise.
30633 (vsubq_u8): Likewise.
30634 (vsubq_u16): Likewise.
30635 (vsubq_u32): Likewise.
30636 (vsubq_u64): Likewise.
30637 (vand_s8): Likewise.
30638 (vand_s16): Likewise.
30639 (vand_s32): Likewise.
30640 (vand_u8): Likewise.
30641 (vand_u16): Likewise.
30642 (vand_u32): Likewise.
30643 (vand_s64): Likewise.
30644 (vand_u64): Likewise.
30645 (vandq_s8): Likewise.
30646 (vandq_s16): Likewise.
30647 (vandq_s32): Likewise.
30648 (vandq_s64): Likewise.
30649 (vandq_u8): Likewise.
30650 (vandq_u16): Likewise.
30651 (vandq_u32): Likewise.
30652 (vandq_u64): Likewise.
30653 (vorr_s8): Likewise.
30654 (vorr_s16): Likewise.
30655 (vorr_s32): Likewise.
30656 (vorr_u8): Likewise.
30657 (vorr_u16): Likewise.
30658 (vorr_u32): Likewise.
30659 (vorr_s64): Likewise.
30660 (vorr_u64): Likewise.
30661 (vorrq_s8): Likewise.
30662 (vorrq_s16): Likewise.
30663 (vorrq_s32): Likewise.
30664 (vorrq_s64): Likewise.
30665 (vorrq_u8): Likewise.
30666 (vorrq_u16): Likewise.
30667 (vorrq_u32): Likewise.
30668 (vorrq_u64): Likewise.
30669 (veor_s8): Likewise.
30670 (veor_s16): Likewise.
30671 (veor_s32): Likewise.
30672 (veor_u8): Likewise.
30673 (veor_u16): Likewise.
30674 (veor_u32): Likewise.
30675 (veor_s64): Likewise.
30676 (veor_u64): Likewise.
30677 (veorq_s8): Likewise.
30678 (veorq_s16): Likewise.
30679 (veorq_s32): Likewise.
30680 (veorq_s64): Likewise.
30681 (veorq_u8): Likewise.
30682 (veorq_u16): Likewise.
30683 (veorq_u32): Likewise.
30684 (veorq_u64): Likewise.
30685 (vbic_s8): Likewise.
30686 (vbic_s16): Likewise.
30687 (vbic_s32): Likewise.
30688 (vbic_u8): Likewise.
30689 (vbic_u16): Likewise.
30690 (vbic_u32): Likewise.
30691 (vbic_s64): Likewise.
30692 (vbic_u64): Likewise.
30693 (vbicq_s8): Likewise.
30694 (vbicq_s16): Likewise.
30695 (vbicq_s32): Likewise.
30696 (vbicq_s64): Likewise.
30697 (vbicq_u8): Likewise.
30698 (vbicq_u16): Likewise.
30699 (vbicq_u32): Likewise.
30700 (vbicq_u64): Likewise.
30701 (vorn_s8): Likewise.
30702 (vorn_s16): Likewise.
30703 (vorn_s32): Likewise.
30704 (vorn_u8): Likewise.
30705 (vorn_u16): Likewise.
30706 (vorn_u32): Likewise.
30707 (vorn_s64): Likewise.
30708 (vorn_u64): Likewise.
30709 (vornq_s8): Likewise.
30710 (vornq_s16): Likewise.
30711 (vornq_s32): Likewise.
30712 (vornq_s64): Likewise.
30713 (vornq_u8): Likewise.
30714 (vornq_u16): Likewise.
30715 (vornq_u32): Likewise.
30716 (vornq_u64): Likewise.
30718 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30720 * wide-int.cc (UTItype): Define.
30721 (UDWtype): Define for appropriate W_TYPE_SIZE.
30723 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
30725 PR tree-optimization/59100
30726 * tree-ssa-phiopt.c: Include tree-inline.h.
30727 (neutral_element_p, absorbing_element_p): New functions.
30728 (value_replacement): Handle conditional binary operations with a
30729 neutral or absorbing element.
30731 2014-05-08 Richard Biener <rguenther@suse.de>
30733 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
30734 folding the expression.
30735 (valueize_expr): Remove.
30736 (visit_reference_op_load): Do not valueize the result of
30738 (simplify_binary_expression): Likewise.
30739 (simplify_unary_expression): Likewise.
30741 2014-05-08 Richard Biener <rguenther@suse.de>
30743 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
30744 looking at TYPE_ARG_TYPES.
30746 2014-05-08 Richard Biener <rguenther@suse.de>
30748 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
30749 pointer propagation special-case.
30751 2014-05-08 Bin Cheng <bin.cheng@arm.com>
30753 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
30754 core part of address expressions.
30756 2014-05-08 Alan Modra <amodra@gmail.com>
30759 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
30760 loads and stores when -mno-strict-align at any alignment.
30761 (expand_block_clear): Similarly. Also correct calculation of
30764 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
30766 PR middle-end/39246
30767 * tree-complex.c (expand_complex_move): Keep line info when expanding
30769 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
30770 of complex expression. Use new argument to display correct location
30771 for values coming from phi statement.
30772 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
30773 (warn_uninitialized_phi): Pass location of phi argument to
30775 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
30776 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
30778 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
30780 * config/rs6000/predicates.md (indexed_address_mem): New.
30781 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
30782 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
30783 fpstore_ux, fpstore_u.
30784 (sign_extend, indexed, update): New.
30785 (cell_micro): Adjust.
30786 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
30787 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
30788 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
30789 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
30790 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
30791 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
30792 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
30793 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
30794 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
30795 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
30796 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
30797 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
30798 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
30799 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
30800 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
30802 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
30803 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
30804 *vsx_extract_<mode>_store): Adjust.
30805 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
30806 is_cracked_insn, insn_must_be_first_in_group,
30807 insn_must_be_last_in_group): Adjust.
30809 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
30811 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
30812 ppc440-fpstore): Adjust.
30813 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
30814 ppc476-fpstore): Adjust.
30815 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
30816 ppc601-fpstore): Adjust.
30817 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
30819 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
30821 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
30822 ppc7450-fpstore): Adjust.
30823 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
30824 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
30825 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
30827 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
30828 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
30829 cell-fpstore, cell-fpstore-update): Adjust.
30830 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
30831 ppce300c3_store, ppce300c3_fpstore): Adjust.
30832 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
30833 e500mc_fpstore): Adjust.
30834 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
30835 e500mc64_store, e500mc64_fpstore): Adjust.
30836 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
30837 e5500_fpstore): Adjust.
30838 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
30839 e6500_fpstore): Adjust.
30840 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
30842 * config/rs6000/power4.md (power4-load, power4-load-ext,
30843 power4-load-ext-update, power4-load-ext-update-indexed,
30844 power4-load-update-indexed, power4-load-update, power4-fpload,
30845 power4-fpload-update, power4-store, power4-store-update,
30846 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
30848 * config/rs6000/power5.md (power5-load, power5-load-ext,
30849 power5-load-ext-update, power5-load-ext-update-indexed,
30850 power5-load-update-indexed, power5-load-update, power5-fpload,
30851 power5-fpload-update, power5-store, power5-store-update,
30852 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
30854 * config/rs6000/power6.md (power6-load, power6-load-ext,
30855 power6-load-update, power6-load-update-indexed,
30856 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
30857 power6-fpload-update, power6-store, power6-store-update,
30858 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
30860 * config/rs6000/power7.md (power7-load, power7-load-ext,
30861 power7-load-update, power7-load-update-indexed,
30862 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
30863 power7-fpload-update, power7-store, power7-store-update,
30864 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
30866 * config/rs6000/power8.md (power8-load, power8-load-update,
30867 power8-load-ext, power8-load-ext-update, power8-fpload,
30868 power8-fpload-update, power8-store, power8-store-update-indexed,
30869 power8-fpstore, power8-fpstore-update): Adjust.
30870 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
30872 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
30873 titan_lsu_store, titan_lsu_fpstore): Adjust.
30874 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
30876 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
30879 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
30880 unrolled byte insns. Emit address increments after move insns.
30882 2014-05-07 David Malcolm <dmalcolm@redhat.com>
30884 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
30885 const_gimple, rather than a gimple.
30886 (gimple_call_builtin_p): Likewise, for the three variants.
30888 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
30889 (gimple_call_builtin_p): Likewise, for the three variants.
30891 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
30893 PR tree-optimization/61095
30894 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
30896 2014-05-07 Richard Biener <rguenther@suse.de>
30898 PR tree-optimization/61034
30899 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
30900 (maybe_skip_until): Use translate to take into account
30901 lattices when trying to do disambiguations.
30902 (get_continuation_for_phi_1): Likewise.
30903 (get_continuation_for_phi): Adjust for added translate arguments.
30904 (walk_non_aliased_vuses): Likewise.
30905 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
30906 (walk_non_aliased_vuses): Likewise.
30907 (call_may_clobber_ref_p_1): Declare.
30908 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
30909 calls. Stop early if we are only supposed to disambiguate.
30910 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
30912 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
30914 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
30915 Emit an error when the function has arguments.
30917 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
30919 * cfgloop.h (unswitch_loops): Remove.
30920 * doc/passes.texi: Remove references to loop-unswitch.c
30921 * timevar.def (TV_LOOP_UNSWITCH): Remove.
30923 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
30925 * tree-vect-data-refs.c (vect_grouped_load_supported): New
30926 check for loads group of length 3.
30927 (vect_permute_load_chain): New permutations for loads group of
30929 * tree-vect-stmts.c (vect_model_load_cost): Change cost
30930 of vec_perm_shuffle for the new permutations.
30932 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
30934 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
30935 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
30936 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
30937 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
30938 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
30939 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
30940 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
30941 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
30943 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
30945 * loop-unswitch.c: Delete.
30947 2014-05-07 Richard Biener <rguenther@suse.de>
30949 * config.gcc: Always set need_64bit_hwint to yes.
30951 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
30953 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
30954 of using optimize_size.
30956 2014-05-06 Mike Stump <mikestump@comcast.net>
30958 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
30960 2014-05-06 Joseph Myers <joseph@codesourcery.com>
30962 * config/i386/sse.md (*mov<mode>_internal)
30963 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
30964 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
30965 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
30966 (*<code><mode>3, *andnot<mode>3<mask_name>)
30967 (<mask_codefor><code><mode>3<mask_name>): Only consider
30968 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
30970 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
30973 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
30975 * lra-constraints.c (valid_address_p): Move earlier in file.
30976 Add a constraint argument to the address_info version.
30977 (satisfies_memory_constraint_p): New function.
30978 (satisfies_address_constraint_p): Likewise.
30979 (process_alt_operands, curr_insn_transform): Use them.
30980 (process_address): Pass the constraint to valid_address_p when
30981 checking address operands.
30983 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
30985 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
30986 to their respective blocks. Fix inadvertent use of "node".
30988 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
30990 * emit-rtl.c (init_derived_machine_modes): New functionm, split
30992 (init_emit_once): ...here.
30993 * rtl.h (init_derived_machine_modes): Declare.
30994 * toplev.c (do_compile): Call it even if no_backend.
30996 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
30997 Mike Stump <mikestump@comcast.net>
30998 Richard Sandiford <rdsandiford@googlemail.com>
30999 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31001 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
31002 (rtx_equal_for_memref_p): Update comment.
31003 (adjust_offset_for_component_ref): Use wide-int interfaces.
31004 * builtins.c (get_object_alignment_2): Likewise.
31005 (c_readstr): Likewise.
31006 (target_char_cast): Add comment.
31007 (determine_block_size): Use wide-int interfaces.
31008 (expand_builtin_signbit): Likewise.
31009 (fold_builtin_int_roundingfn): Likewise.
31010 (fold_builtin_bitop): Likewise.
31011 (fold_builtin_bswap): Likewise.
31012 (fold_builtin_logarithm): Use signop.
31013 (fold_builtin_pow): Likewise.
31014 (fold_builtin_memory_op): Use wide-int interfaces.
31015 (fold_builtin_object_size): Likewise.
31016 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
31017 nb_iterations_estimate.
31018 (record_niter_bound): Use wide-int interfaces.
31019 (get_estimated_loop_iterations_int): Likewise.
31020 (get_estimated_loop_iterations): Likewise.
31021 (get_max_loop_iterations): Likewise.
31022 * cfgloop.h: Include wide-int.h.
31023 (struct nb_iter_bound): Change bound to widest_int.
31024 (struct loop): Change nb_iterations_upper_bound and
31025 nb_iterations_estimate to widest_int.
31026 (record_niter_bound): Switch to use widest_int.
31027 (get_estimated_loop_iterations): Likewise.
31028 (get_max_loop_iterations): Likewise.
31029 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
31030 update for wide-int.
31031 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
31032 * combine.c (try_combine): Likewise.
31033 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
31034 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
31036 (aarch64_float_const_representable_p): Likewise.
31037 * config/arc/arc.c: Include wide-int.h.
31038 (arc_can_use_doloop_p): Use wide-int interfaces.
31039 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
31040 (vfp3_const_double_index): Likewise.
31041 * config/avr/avr.c (avr_out_round): Likewise.
31042 (avr_fold_builtin): Likewise.
31043 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
31044 (bfin_can_use_doloop_p): Likewise.
31045 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
31046 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
31047 * config/i386/i386.c: Include wide-int.h.
31048 (ix86_data_alignment): Use wide-int interfaces.
31049 (ix86_local_alignment): Likewise.
31050 (ix86_emit_swsqrtsf): Update real_from_integer.
31051 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
31052 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
31053 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
31054 (zero_constant): Likewise.
31055 (input_operand): Likewise.
31056 (splat_input_operand): Likewise.
31057 (non_logical_cint_operand): Change const_double to const_wide_int.
31058 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
31059 (easy_altivec_constant): Remove comment.
31060 (paired_expand_vector_init): Use CONSTANT_P.
31061 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
31062 (rs6000_emit_move): Update checks.
31063 (rs6000_aggregate_candidate): Use wide-int interfaces.
31064 (rs6000_expand_ternop_builtin): Likewise.
31065 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
31066 (rs6000_assemble_integer): Likewise.
31067 (rs6000_hash_constant): Likewise.
31068 (output_toc): Likewise.
31069 (rs6000_rtx_costs): Likewise.
31070 (rs6000_emit_swrsqrt); Update call to real_from_integer.
31071 * config/rs6000/rs6000-c.c: Include wide-int.h.
31072 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
31073 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
31074 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
31075 Handle CONST_WIDE_INT.
31076 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
31077 Use tree_fits_uhwi_p.
31078 * config/sparc/sparc.c: Include wide-int.h.
31079 (sparc_fold_builtin): Use wide-int interfaces.
31080 * config/vax/vax.c: Include wide-int.h.
31081 (vax_float_literal): Use real_from_integer.
31082 * coretypes.h (struct hwivec_def): New.
31084 (const_hwivec): New.
31085 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
31086 (equiv_constant): Handle CONST_WIDE_INT.
31087 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
31088 (cselib_hash_rtx): Handle CONST_WIDE_INT.
31089 * dbxout.c (stabstr_U): Use wide-int interfaces.
31090 (dbxout_type): Update to use cst_fits_shwi_p.
31091 * defaults.h (LOG2_BITS_PER_UNIT): Define.
31092 (TARGET_SUPPORTS_WIDE_INT): Add default.
31093 * dfp.c: Include wide-int.h.
31094 (decimal_real_to_integer2): Use wide-int interfaces and rename to
31095 decimal_real_to_integer.
31096 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
31097 decimal_real_to_integer.
31098 * doc/generic.texi (Constant expressions): Update for wide_int.
31099 * doc/rtl.texi (const_double): Likewise.
31100 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
31101 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
31102 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
31103 (REAL_VALUE_FROM_INT): Remove.
31104 (TARGET_SUPPORTS_WIDE_INT): New.
31105 * doc/tm.texi: Regenerate.
31106 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
31107 * double-int.h: Include wide-int.h.
31108 (struct wi::int_traits): New.
31109 * dwarf2out.c (get_full_len): New.
31110 (dw_val_equal_p): Add case dw_val_class_wide_int.
31111 (size_of_loc_descr): Likewise.
31112 (output_loc_operands): Likewise.
31113 (insert_double): Remove.
31114 (insert_wide_int): New.
31115 (add_AT_wide): New.
31116 (print_die): Add case dw_val_class_wide_int.
31117 (attr_checksum): Likewise.
31118 (attr_checksum_ordered): Likewise.
31119 (same_dw_val_p): Likewise.
31120 (size_of_die): Likewise.
31121 (value_format): Likewise.
31122 (output_die): Likewise.
31123 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
31125 (clz_loc_descriptor): Use wide-int interfaces.
31126 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
31127 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
31128 (round_up_to_align): Use wide-int interfaces.
31129 (field_byte_offset): Likewise.
31130 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
31131 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
31132 CONST_DOUBLE handling. Use wide-int interfaces.
31133 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
31134 (gen_enumeration_type_die): Use add_AT_wide.
31135 (hash_loc_operands): Add case dw_val_class_wide_int.
31136 (compare_loc_operands): Likewise.
31137 * dwarf2out.h: Include wide-int.h.
31138 (wide_int_ptr): New.
31139 (enum dw_val_class): Add dw_val_class_wide_int.
31140 (struct dw_val_struct): Add val_wide.
31141 * emit-rtl.c (const_wide_int_htab): New.
31142 (const_wide_int_htab_hash): New.
31143 (const_wide_int_htab_eq): New.
31144 (lookup_const_wide_int): New.
31145 (const_double_htab_hash): Use wide-int interfaces.
31146 (const_double_htab_eq): Likewise.
31147 (rtx_to_double_int): Conditionally compile for wide-int.
31148 (immed_double_int_const): Rename to immed_wide_int_const and
31149 update for wide-int.
31150 (immed_double_const): Conditionally compile for wide-int.
31151 (init_emit_once): Use wide-int interfaces.
31152 * explow.c (plus_constant): Likewise.
31153 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
31154 (lshift_value): Use wide-int interfaces.
31155 (expand_mult): Likewise.
31156 (choose_multiplier): Likewise.
31157 (expand_smod_pow2): Likewise.
31158 (make_tree): Likewise.
31159 * expr.c (convert_modes): Consolidate handling of constants.
31160 Use wide-int interfaces.
31161 (emit_group_load_1): Add note.
31162 (store_expr): Update comment.
31163 (get_inner_reference): Use wide-int interfaces.
31164 (expand_constructor): Update comment.
31165 (expand_expr_real_2): Use wide-int interfaces.
31166 (expand_expr_real_1): Likewise.
31167 (reduce_to_bit_field_precision): Likewise.
31168 (const_vector_from_tree): Likewise.
31169 * final.c: Include wide-int-print.h.
31170 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
31171 * fixed-value.c: Include wide-int.h.
31172 (fixed_from_string): Use wide-int interfaces.
31173 (fixed_to_decimal): Likewise.
31174 (fixed_convert_from_real): Likewise.
31175 (real_convert_from_fixed): Likewise.
31176 * fold-const.h (mem_ref_offset): Return an offset_int.
31177 (div_if_zero_remainder): Remove code parameter.
31178 * fold-const.c (div_if_zero_remainder): Remove code parameter.
31179 Use wide-int interfaces.
31180 (may_negate_without_overflow_p): Use wide-int interfaces.
31181 (negate_expr_p): Likewise.
31182 (fold_negate_expr): Likewise.
31183 (int_const_binop_1): Likewise.
31184 (const_binop): Likewise.
31185 (fold_convert_const_int_from_int): Likewise.
31186 (fold_convert_const_int_from_real): Likewise.
31187 (fold_convert_const_int_from_fixed): Likewise.
31188 (fold_convert_const_fixed_from_int): Likewise.
31189 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
31190 (sign_bit_p): Use wide-int interfaces.
31191 (make_range_step): Likewise.
31192 (build_range_check): Likewise. Pass an integer of the correct type
31193 instead of using integer_one_node.
31194 (range_predecessor): Pass an integer of the correct type instead
31195 of using integer_one_node.
31196 (range_successor): Likewise.
31197 (merge_ranges): Likewise.
31198 (unextend): Use wide-int interfaces.
31199 (extract_muldiv_1): Likewise.
31200 (fold_div_compare): Likewise.
31201 (fold_single_bit_test): Likewise.
31202 (fold_sign_changed_comparison): Likewise.
31203 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
31204 (fold_plusminus_mult_expr): Use wide-int interfaces.
31205 (native_encode_int): Likewise.
31206 (native_interpret_int): Likewise.
31207 (fold_unary_loc): Likewise.
31208 (pointer_may_wrap_p): Likewise.
31209 (size_low_cst): Likewise.
31210 (mask_with_tz): Likewise.
31211 (fold_binary_loc): Likewise.
31212 (fold_ternary_loc): Likewise.
31213 (multiple_of_p): Likewise.
31214 (tree_call_nonnegative_warnv_p): Update calls to
31215 tree_int_cst_min_precision and real_from_integer.
31216 (fold_negate_const): Use wide-int interfaces.
31217 (fold_abs_const): Likewise.
31218 (fold_relational_const): Use tree_int_cst_lt.
31219 (round_up_loc): Use wide-int interfaces.
31220 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
31221 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
31222 * gengtype.c: Remove include of double-int.h.
31223 (do_typedef): Use wide-int interfaces.
31224 (open_base_files): Add wide-int.h.
31225 (main): Add offset_int and widest_int typedefs.
31226 * gengtype-lex.l: Handle "^".
31227 (CXX_KEYWORD): Add "static".
31228 * gengtype-parse.c (require3): New.
31229 (require_template_declaration): Handle constant template arguments
31230 and nested templates.
31231 * gengtype-state.c: Don't include "double-int.h".
31232 * genpreds.c (write_one_predicate_function): Update comment.
31233 (write_tm_constrs_h): Add check for hval and lval use in
31235 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
31236 (add_to_sequence): Likewise.
31237 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
31238 and const_double_operand.
31239 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
31241 * gimple-fold.c (get_base_constructor): Likewise.
31242 (fold_array_ctor_reference): Likewise.
31243 (fold_nonarray_ctor_reference): Likewise.
31244 (fold_const_aggregate_ref_1): Likewise.
31245 (gimple_val_nonnegative_real_p): Likewise.
31246 (gimple_fold_indirect_ref): Likewise.
31247 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
31248 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
31249 (struct slsr_cand_d): Change index to be widest_int.
31250 (struct incr_info_d): Change incr to be widest_int.
31251 (alloc_cand_and_find_basis): Use wide-int interfaces.
31252 (slsr_process_phi): Likewise.
31253 (backtrace_base_for_ref): Likewise. Return a widest_int.
31254 (restructure_reference): Take a widest_int instead of a double_int.
31255 (slsr_process_ref): Use wide-int interfaces.
31256 (create_mul_ssa_cand): Likewise.
31257 (create_mul_imm_cand): Likewise.
31258 (create_add_ssa_cand): Likewise.
31259 (create_add_imm_cand): Take a widest_int instead of a double_int.
31260 (slsr_process_add): Use wide-int interfaces.
31261 (slsr_process_cast): Likewise.
31262 (slsr_process_copy): Likewise.
31263 (dump_candidate): Likewise.
31264 (dump_incr_vec): Likewise.
31265 (replace_ref): Likewise.
31266 (cand_increment): Likewise. Return a widest_int.
31267 (cand_abs_increment): Likewise.
31268 (replace_mult_candidate): Take a widest_int instead of a double_int.
31269 (replace_unconditional_candidate): Use wide-int interfaces.
31270 (incr_vec_index): Take a widest_int instead of a double_int.
31271 (create_add_on_incoming_edge): Likewise.
31272 (create_phi_basis): Use wide-int interfaces.
31273 (replace_conditional_candidate): Likewise.
31274 (record_increment): Take a widest_int instead of a double_int.
31275 (record_phi_increments): Use wide-int interfaces.
31276 (phi_incr_cost): Take a widest_int instead of a double_int.
31277 (lowest_cost_path): Likewise.
31278 (total_savings): Likewise.
31279 (analyze_increments): Use wide-int interfaces.
31280 (ncd_with_phi): Take a widest_int instead of a double_int.
31281 (ncd_of_cand_and_phis): Likewise.
31282 (nearest_common_dominator_for_cands): Likewise.
31283 (insert_initializers): Use wide-int interfaces.
31284 (all_phi_incrs_profitable): Likewise.
31285 (replace_one_candidate): Likewise.
31286 (replace_profitable_candidates): Likewise.
31287 * godump.c: Include wide-int-print.h.
31288 (go_output_typedef): Use wide-int interfaces.
31289 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
31290 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
31291 (build_loop_iteration_domains): Likewise.
31292 * hooks.h: Include wide-int.h rather than double-int.h.
31293 (hook_bool_dint_dint_uint_bool_true): Delete.
31294 (hook_bool_wint_wint_uint_bool_true): Declare.
31295 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
31296 (hook_bool_wint_wint_uint_bool_true): New.
31297 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
31299 (ubsan_expand_si_overflow_mul_check): Likewise.
31300 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
31301 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
31302 (get_ancestor_addr_info): Likewise.
31303 (ipa_modify_call_arguments): Likewise.
31304 * loop-doloop.c (doloop_modify): Likewise.
31305 (doloop_optimize): Likewise.
31306 * loop-iv.c (iv_number_of_iterations): Likewise.
31307 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
31308 (unroll_loop_constant_iterations): Likewise.
31309 (decide_unroll_runtime_iterations): Likewise.
31310 (unroll_loop_runtime_iterations): Likewise.
31311 (decide_peel_simple): Likewise.
31312 (decide_unroll_stupid): Likewise.
31313 * lto-streamer-in.c (streamer_read_wi): Add.
31314 (input_cfg): Use wide-int interfaces.
31315 (lto_input_tree_1): Likewise.
31316 * lto-streamer-out.c (streamer_write_wi): Add.
31317 (hash_tree): Use wide-int interfaces.
31318 (output_cfg): Likewise.
31319 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
31320 (GTFILES): Add wide-int.h and signop.h.
31321 (TAGS): Look for .cc files too.
31322 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
31323 * optabs.c (expand_subword_shift): Likewise.
31324 (expand_doubleword_shift): Likewise.
31325 (expand_absneg_bit): Likewise.
31326 (expand_copysign_absneg): Likewise.
31327 (expand_copysign_bit): Likewise.
31328 * postreload.c (reload_cse_simplify_set): Likewise.
31329 * predict.c (predict_iv_comparison): Likewise.
31330 * pretty-print.h: Include wide-int-print.h.
31332 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
31333 * print-tree.c: Include wide-int-print.h.
31334 (print_node_brief): Use wide-int interfaces.
31335 (print_node): Likewise.
31336 * read-rtl.c (validate_const_wide_int): New.
31337 (read_rtx_code): Add CONST_WIDE_INT case.
31338 * real.c: Include wide-int.h.
31339 (real_to_integer2): Delete.
31340 (real_to_integer): New function, returning a wide_int.
31341 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
31342 (ten_to_ptwo): Update call to real_from_integer.
31343 (real_digit): Likewise.
31344 * real.h: Include signop.h, wide-int.h and insn-modes.h.
31345 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
31346 (REAL_VALUE_TO_INT): Delete.
31347 (real_to_integer): Declare a wide-int form.
31348 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
31349 * recog.c (const_int_operand): Improve comment.
31350 (const_scalar_int_operand): New.
31351 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
31352 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
31353 (split_double): Likewise.
31354 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
31355 (rtx_size): Likewise.
31356 (rtx_alloc_stat_v): New.
31357 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
31358 (cwi_output_hex): New.
31359 (iterative_hash_rtx): Handle CONST_WIDE_INT.
31360 (cwi_check_failed_bounds): New.
31361 * rtl.def (CONST_WIDE_INT): New.
31362 * rtl.h: Include <utility> and wide-int.h.
31363 (struct hwivec_def): New.
31364 (CWI_GET_NUM_ELEM): New.
31365 (CWI_PUT_NUM_ELEM): New.
31366 (struct rtx_def): Add num_elem and hwiv.
31367 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
31368 (CASE_CONST_UNIQUE): Likewise.
31369 (CASE_CONST_ANY): Likewise.
31370 (CONST_SCALAR_INT_P): Likewise.
31371 (CONST_WIDE_INT_P): New.
31373 (HWIVEC_CHECK): New.
31374 (cwi_check_failed_bounds): New.
31376 (HWIVEC_CHECK): New.
31377 (CONST_WIDE_INT_VEC) New.
31378 (CONST_WIDE_INT_NUNITS) New.
31379 (CONST_WIDE_INT_ELT) New.
31380 (rtx_mode_t): New type.
31381 (wi::int_traits <rtx_mode_t>): New.
31383 (wi::min_value): New.
31384 (wi::max_value): New.
31386 (const_wide_int_alloc): New.
31387 (immed_wide_int_const): New.
31388 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
31389 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
31390 * signop.h: New file.
31391 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
31392 (simplify_const_unary_operation): Use wide-int interfaces.
31393 (simplify_binary_operation_1): Likewise.
31394 (simplify_const_binary_operation): Likewise.
31395 (simplify_const_relational_operation): Likewise.
31396 (simplify_immed_subreg): Likewise.
31397 * stmt.c (expand_case): Likewise.
31398 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
31399 signop rather than a bool.
31400 * stor-layout.c (layout_type): Use wide-int interfaces.
31401 (initialize_sizetypes): Update calls to
31402 set_min_and_max_values_for_integral_type.
31403 (set_min_and_max_values_for_integral_type): Take a signop rather
31404 than a bool. Use wide-int interfaces.
31405 (fixup_signed_type): Update accordingly. Remove
31406 HOST_BITS_PER_DOUBLE_INT limit.
31407 (fixup_unsigned_type): Likewise.
31408 * system.h (STATIC_CONSTANT_P): New.
31409 (STATIC_ASSERT): New.
31410 * target.def (can_use_doloop_p): Take widest_ints rather than
31412 * target.h: Include wide-int.h rather than double-int.h.
31413 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
31415 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
31416 rather than INT_CST_LT_UNSIGNED.
31417 (can_use_doloop_if_innermost): Take widest_ints rather than
31419 * tree-affine.c: Include wide-int-print.h.
31420 (double_int_ext_for_comb): Delete.
31421 (wide_int_ext_for_comb): New.
31422 (aff_combination_zero): Use wide-int interfaces.
31423 (aff_combination_const): Take a widest_int instead of a double_int.
31424 (aff_combination_elt): Use wide-int interfaces.
31425 (aff_combination_scale): Take a widest_int instead of a double_int.
31426 (aff_combination_add_elt): Likewise.
31427 (aff_combination_add_cst): Likewise.
31428 (aff_combination_add): Use wide-int interfaces.
31429 (aff_combination_convert): Likewise.
31430 (tree_to_aff_combination): Likewise.
31431 (add_elt_to_tree): Take a widest_int instead of a double_int.
31432 (aff_combination_to_tree): Use wide-int interfaces.
31433 (aff_combination_remove_elt): Likewise.
31434 (aff_combination_add_product): Take a widest_int instead of
31436 (aff_combination_mult): Use wide-int interfaces.
31437 (aff_combination_expand): Likewise.
31438 (double_int_constant_multiple_p): Delete.
31439 (wide_int_constant_multiple_p): New.
31440 (aff_combination_constant_multiple_p): Take a widest_int pointer
31441 instead of a double_int pointer.
31442 (print_aff): Use wide-int interfaces.
31443 (get_inner_reference_aff): Take a widest_int pointer
31444 instead of a double_int pointer.
31445 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
31446 * tree-affine.h: Include wide-int.h.
31447 (struct aff_comb_elt): Change type of coef to widest_int.
31448 (struct affine_tree_combination): Change type of offset to widest_int.
31449 (double_int_ext_for_comb): Delete.
31450 (wide_int_ext_for_comb): New.
31451 (aff_combination_const): Use widest_int instead of double_int.
31452 (aff_combination_scale): Likewise.
31453 (aff_combination_add_elt): Likewise.
31454 (aff_combination_constant_multiple_p): Likewise.
31455 (get_inner_reference_aff): Likewise.
31456 (aff_comb_cannot_overlap_p): Likewise.
31457 (aff_combination_zero_p): Use wide-int interfaces.
31458 * tree.c: Include tree.h.
31459 (init_ttree): Use make_int_cst.
31460 (tree_code_size): Removed code for INTEGER_CST case.
31461 (tree_size): Add INTEGER_CST case.
31462 (make_node_stat): Update comment.
31463 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
31464 (build_int_cst_type): Use wide-int interfaces.
31465 (double_int_to_tree): Likewise.
31466 (double_int_fits_to_tree_p): Delete.
31467 (force_fit_type_double): Delete.
31468 (force_fit_type): New.
31469 (int_cst_hash_hash): Use wide-int interfaces.
31470 (int_cst_hash_eq): Likewise.
31471 (build_int_cst_wide): Delete.
31472 (wide_int_to_tree): New.
31473 (cache_integer_cst): Use wide-int interfaces.
31474 (build_low_bits_mask): Likewise.
31475 (cst_and_fits_in_hwi): Likewise.
31476 (real_value_from_int_cst): Likewise.
31477 (make_int_cst_stat): New.
31478 (integer_zerop): Use wide_int interfaces.
31479 (integer_onep): Likewise.
31480 (integer_all_onesp): Likewise.
31481 (integer_pow2p): Likewise.
31482 (integer_nonzerop): Likewise.
31483 (tree_log2): Likewise.
31484 (tree_floor_log2): Likewise.
31485 (tree_ctz): Likewise.
31486 (int_size_in_bytes): Likewise.
31487 (mem_ref_offset): Return an offset_int rather than a double_int.
31488 (build_type_attribute_qual_variant): Use wide_int interfaces.
31489 (type_hash_eq): Likewise
31490 (tree_int_cst_equal): Likewise.
31491 (tree_int_cst_lt): Delete.
31492 (tree_int_cst_compare): Likewise.
31493 (tree_fits_shwi_p): Use wide_int interfaces.
31494 (tree_fits_uhwi_p): Likewise.
31495 (tree_int_cst_sign_bit): Likewise.
31496 (tree_int_cst_sgn): Likewise.
31497 (tree_int_cst_min_precision): Take a signop rather than a bool.
31498 (simple_cst_equal): Use wide_int interfaces.
31499 (compare_tree_int): Likewise.
31500 (iterative_hash_expr): Likewise.
31501 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
31503 (get_type_static_bounds): Use wide_int interfaces.
31504 (tree_int_cst_elt_check_failed): New.
31505 (build_common_tree_nodes): Reordered to set prec before filling in
31507 (int_cst_value): Check cst_and_fits_in_hwi.
31508 (widest_int_cst_value): Use wide_int interfaces.
31509 (upper_bound_in_type): Likewise.
31510 (lower_bound_in_type): Likewise.
31511 (num_ending_zeros): Likewise.
31512 (drop_tree_overflow): Likewise.
31513 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
31514 (gen_conditions_for_pow_cst_base): Likewise.
31515 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
31516 (group_case_labels_stmt): Use wide-int interfaces.
31517 (verify_gimple_assign_binary): Likewise.
31518 (print_loop): Likewise.
31519 * tree-chrec.c (tree_fold_binomial): Likewise.
31520 * tree-core.h (struct tree_base): Add int_length.
31521 (struct tree_int_cst): Change rep of value.
31522 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
31523 (dr_may_alias_p): Likewise.
31524 (max_stmt_executions_tree): Likewise.
31525 * tree.def (INTEGER_CST): Update comment.
31526 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
31527 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
31528 * tree-dump.c: Include wide-int.h and wide-int-print.h.
31529 (dequeue_and_dump): Use wide-int interfaces.
31530 * tree.h: Include wide-int.h.
31531 (NULL_TREE): Moved to earlier loc in file.
31532 (TREE_INT_CST_ELT_CHECK): New.
31533 (tree_int_cst_elt_check_failed): New.
31535 (TREE_INT_CST): Delete.
31536 (TREE_INT_CST_LOW): Use wide-int interfaces.
31537 (TREE_INT_CST_HIGH): Delete.
31538 (TREE_INT_CST_NUNITS): New.
31539 (TREE_INT_CST_EXT_NUNITS): Likewise.
31540 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
31541 (TREE_INT_CST_ELT): Likewise.
31542 (INT_CST_LT): Delete.
31543 (tree_int_cst_elt_check): New (two forms).
31544 (type_code_size): Update comment.
31545 (make_int_cst_stat, make_int_cst): New.
31546 (tree_to_double_int): Delete.
31547 (double_int_fits_to_tree_p): Delete.
31548 (force_fit_type_double): Delete.
31549 (build_int_cstu): Replace with out-of-line function.
31550 (build_int_cst_wide): Delete.
31551 (tree_int_cst_lt): Define inline.
31552 (tree_int_cst_le): New.
31553 (tree_int_cst_compare): Define inline.
31554 (tree_int_cst_min_precision): Take a signop rather than a bool.
31555 (wi::int_traits <const_tree>): New.
31556 (wi::int_traits <tree>): New.
31557 (wi::extended_tree): New.
31558 (wi::int_traits <wi::extended_tree>): New.
31559 (wi::to_widest): New.
31560 (wi::to_offset): New.
31561 (wi::fits_to_tree_p): New.
31562 (wi::min_value): New.
31563 (wi::max_value): New.
31564 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
31565 (copy_tree_body_r): Likewise.
31566 * tree-object-size.c (compute_object_offset): Likewise.
31567 (addr_object_size): Likewise.
31568 * tree-predcom.c: Include wide-int-print.h.
31569 (struct dref_d): Change type of offset to widest_int.
31570 (dump_dref): Call wide-int printer.
31571 (aff_combination_dr_offset): Use wide-int interfaces.
31572 (determine_offset): Take a widest_int pointer rather than a
31573 double_int pointer.
31574 (split_data_refs_to_components): Use wide-int interfaces.
31575 (suitable_component_p): Likewise.
31576 (order_drefs): Likewise.
31577 (add_ref_to_chain): Likewise.
31578 (valid_initializer_p): Likewise.
31579 (determine_roots_comp): Likewise.
31580 * tree-pretty-print.c: Include wide-int-print.h.
31581 (dump_generic_node): Use wide-int interfaces.
31582 * tree-sra.c (sra_ipa_modify_expr): Likewise.
31583 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
31584 (move_fixed_address_to_symbol): Likewise.
31585 (move_hint_to_base): Likewise.
31586 (move_pointer_to_base): Likewise.
31587 (move_variant_to_index): Likewise.
31588 (most_expensive_mult_to_index): Likewise.
31589 (addr_to_parts): Likewise.
31590 (copy_ref_info): Likewise.
31591 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
31592 (indirect_refs_may_alias_p): Likewise.
31593 (stmt_kills_ref_p_1): Likewise.
31594 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
31595 * tree-ssa-ccp.c: Update comment at top of file. Include
31597 (struct prop_value_d): Change type of mask to widest_int.
31598 (extend_mask): New function.
31599 (dump_lattice_value): Use wide-int interfaces.
31600 (get_default_value): Likewise.
31601 (set_constant_value): Likewise.
31602 (set_value_varying): Likewise.
31603 (valid_lattice_transition): Likewise.
31604 (set_lattice_value): Likewise.
31605 (value_to_double_int): Delete.
31606 (value_to_wide_int): New.
31607 (get_value_from_alignment): Use wide-int interfaces.
31608 (get_value_for_expr): Likewise.
31609 (do_dbg_cnt): Likewise.
31610 (ccp_finalize): Likewise.
31611 (ccp_lattice_meet): Likewise.
31612 (bit_value_unop_1): Use widest_ints rather than double_ints.
31613 (bit_value_binop_1): Likewise.
31614 (bit_value_unop): Use wide-int interfaces.
31615 (bit_value_binop): Likewise.
31616 (bit_value_assume_aligned): Likewise.
31617 (evaluate_stmt): Likewise.
31618 (ccp_fold_stmt): Likewise.
31619 (visit_cond_stmt): Likewise.
31620 (ccp_visit_stmt): Likewise.
31621 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
31622 (constant_pointer_difference): Likewise.
31623 (associate_pointerplus): Likewise.
31624 (combine_conversions): Likewise.
31625 * tree-ssa-loop.h: Include wide-int.h.
31626 (struct tree_niter_desc): Change type of max to widest_int.
31627 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
31628 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
31629 (remove_redundant_iv_tests): Likewise.
31630 (canonicalize_loop_induction_variables): Likewise.
31631 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
31632 (constant_multiple_of): Take a widest_int pointer instead of
31633 a double_int pointer.
31634 (get_computation_aff): Use wide-int interfaces.
31635 (ptr_difference_cost): Likewise.
31636 (difference_cost): Likewise.
31637 (get_loop_invariant_expr_id): Likewise.
31638 (get_computation_cost_at): Likewise.
31639 (iv_elimination_compare_lt): Likewise.
31640 (may_eliminate_iv): Likewise.
31641 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
31642 instead of double_int.
31643 (max_loop_iterations): Likewise.
31644 (max_stmt_executions): Likewise.
31645 (estimated_stmt_executions): Likewise.
31646 * tree-ssa-loop-niter.c: Include wide-int-print.h.
31647 (split_to_var_and_offset): Use wide-int interfaces.
31648 (determine_value_range): Likewise.
31649 (bound_difference_of_offsetted_base): Likewise.
31650 (bounds_add): Take a widest_int instead of a double_int.
31651 (number_of_iterations_ne_max): Use wide-int interfaces.
31652 (number_of_iterations_ne): Likewise.
31653 (number_of_iterations_lt_to_ne): Likewise.
31654 (assert_loop_rolls_lt): Likewise.
31655 (number_of_iterations_lt): Likewise.
31656 (number_of_iterations_le): Likewise.
31657 (number_of_iterations_cond): Likewise.
31658 (number_of_iterations_exit): Likewise.
31659 (finite_loop_p): Likewise.
31660 (derive_constant_upper_bound_assign): Likewise.
31661 (derive_constant_upper_bound): Return a widest_int.
31662 (derive_constant_upper_bound_ops): Likewise.
31663 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
31664 (record_estimate): Take a widest_int rather than a double_int.
31665 (record_nonwrapping_iv): Use wide-int interfaces.
31666 (double_int_cmp): Delete.
31667 (wide_int_cmp): New.
31668 (bound_index): Take a widest_int rather than a double_int.
31669 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
31670 (maybe_lower_iteration_bound): Likewise.
31671 (estimate_numbers_of_iterations_loop): Likewise.
31672 (estimated_loop_iterations): Take a widest_int pointer than than
31673 a double_int pointer.
31674 (estimated_loop_iterations_int): Use wide-int interfaces.
31675 (max_loop_iterations): Take a widest_int pointer than than
31676 a double_int pointer.
31677 (max_loop_iterations_int): Use wide-int interfaces.
31678 (max_stmt_executions): Take a widest_int pointer than than
31679 a double_int pointer.
31680 (estimated_stmt_executions): Likewise.
31681 (n_of_executions_at_most): Use wide-int interfaces.
31682 (scev_probably_wraps_p): Likewise.
31683 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
31684 to real_to_integer.
31685 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
31687 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
31688 double_ints. Adjust for trailing_wide_ints <3> representation.
31689 (set_nonzero_bits): Likewise.
31690 (get_range_info): Return wide_ints rather than double_ints.
31691 Adjust for trailing_wide_ints <3> representation.
31692 (get_nonzero_bits): Likewise.
31693 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
31695 * tree-ssanames.h (struct range_info_def): Replace min, max and
31696 nonzero_bits with a trailing_wide_ints <3>.
31697 (set_range_info): Use wide_int_refs rather than double_ints.
31698 (set_nonzero_bits): Likewise.
31699 (get_range_info): Return wide_ints rather than double_ints.
31700 (get_nonzero_bits): Likewise.
31701 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
31702 * tree-ssa-pre.c (phi_translate_1): Likewise.
31703 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
31704 (acceptable_pow_call): Likewise.
31705 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
31707 (vn_reference_fold_indirect): Likewise.
31708 (vn_reference_maybe_forwprop_address): Likewise.
31709 (valueize_refs_1): Likewise.
31710 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
31711 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
31712 tree_int_cst_lt and tree_int_cst_le.
31713 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
31715 (streamer_alloc_tree): Likewise.
31716 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
31717 (streamer_write_tree_header): Likewise.
31718 (streamer_write_integer_cst): Likewise.
31719 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
31720 (build_constructors): Likewise.
31721 (array_value_type): Likewise.
31722 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
31723 (vect_check_gather): Likewise.
31724 * tree-vect-generic.c (build_replicated_const): Likewise.
31725 (expand_vector_divmod): Likewise.
31726 * tree-vect-loop.c (vect_transform_loop): Likewise.
31727 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
31728 (vect_do_peeling_for_alignment): Likewise.
31729 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
31730 * tree-vrp.c: Include wide-int.h.
31731 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
31732 (extract_range_from_assert): Use wide-int interfaces.
31733 (vrp_int_const_binop): Likewise.
31734 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
31735 double_int pointers.
31736 (ranges_from_anti_range): Use wide-int interfaces.
31737 (quad_int_cmp): Delete.
31738 (quad_int_pair_sort): Likewise.
31739 (extract_range_from_binary_expr_1): Use wide-int interfaces.
31740 (extract_range_from_unary_expr_1): Likewise.
31741 (adjust_range_with_scev): Likewise.
31742 (masked_increment): Take and return wide_ints rather than double_ints.
31743 (register_edge_assert_for_2): Use wide-int interfaces.
31744 (check_array_ref): Likewise.
31745 (search_for_addr_array): Likewise.
31746 (maybe_set_nonzero_bits): Likewise.
31747 (union_ranges): Pass an integer of the correct type instead of
31748 using integer_one_node.
31749 (intersect_ranges): Likewise.
31750 (simplify_truth_ops_using_ranges): Likewise.
31751 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
31752 (range_fits_type_p): Likewise.
31753 (simplify_cond_using_ranges): Likewise. Take a signop rather than
31755 (simplify_conversion_using_ranges): Use wide-int interfaces.
31756 (simplify_float_conversion_using_ranges): Likewise.
31757 (vrp_finalize): Likewise.
31758 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
31759 (gimple_stringops_transform): Likewise.
31760 * varasm.c (decode_addr_const): Likewise.
31761 (const_hash_1): Likewise.
31762 (const_rtx_hash_1): Likewise
31763 (output_constant): Likewise.
31764 (array_size_for_constructor): Likewise.
31765 (output_constructor_regular_field): Likewise.
31766 (output_constructor_bitfield): Likewise.
31767 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
31768 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
31770 * gencheck.c: Define BITS_PER_UNIT.
31771 * wide-int.cc: New.
31773 * wide-int-print.cc: New.
31774 * wide-int-print.h: New.
31776 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
31778 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
31780 2014-05-06 Richard Biener <rguenther@suse.de>
31782 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
31783 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
31784 (TODO_verify_all): Adjust.
31785 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
31786 TODO_verify_stmts and TODO_verify_rtl_sharing.
31787 * bb-reorder.c: Likewise.
31788 * cfgexpand.c: Likewise.
31789 * cprop.c: Likewise.
31791 * function.c: Likewise.
31792 * fwprop.c: Likewise.
31793 * gcse.c: Likewise.
31794 * gimple-ssa-isolate-paths.c: Likewise.
31795 * gimple-ssa-strength-reduction.c: Likewise.
31796 * ipa-split.c: Likewise.
31797 * loop-init.c: Likewise.
31798 * loop-unroll.c: Likewise.
31799 * lower-subreg.c: Likewise.
31800 * modulo-sched.c: Likewise.
31801 * postreload-gcse.c: Likewise.
31802 * predict.c: Likewise.
31803 * recog.c: Likewise.
31804 * sched-rgn.c: Likewise.
31805 * store-motion.c: Likewise.
31806 * tracer.c: Likewise.
31807 * trans-mem.c: Likewise.
31808 * tree-call-cdce.c: Likewise.
31809 * tree-cfg.c: Likewise.
31810 * tree-cfgcleanup.c: Likewise.
31811 * tree-complex.c: Likewise.
31812 * tree-eh.c: Likewise.
31813 * tree-emutls.c: Likewise.
31814 * tree-if-conv.c: Likewise.
31815 * tree-into-ssa.c: Likewise.
31816 * tree-loop-distribution.c: Likewise.
31817 * tree-object-size.c: Likewise.
31818 * tree-parloops.c: Likewise.
31819 * tree-pass.h: Likewise.
31820 * tree-sra.c: Likewise.
31821 * tree-ssa-ccp.c: Likewise.
31822 * tree-ssa-copy.c: Likewise.
31823 * tree-ssa-copyrename.c: Likewise.
31824 * tree-ssa-dce.c: Likewise.
31825 * tree-ssa-dom.c: Likewise.
31826 * tree-ssa-dse.c: Likewise.
31827 * tree-ssa-forwprop.c: Likewise.
31828 * tree-ssa-ifcombine.c: Likewise.
31829 * tree-ssa-loop-ch.c: Likewise.
31830 * tree-ssa-loop-ivcanon.c: Likewise.
31831 * tree-ssa-loop.c: Likewise.
31832 * tree-ssa-math-opts.c: Likewise.
31833 * tree-ssa-phiopt.c: Likewise.
31834 * tree-ssa-phiprop.c: Likewise.
31835 * tree-ssa-pre.c: Likewise.
31836 * tree-ssa-reassoc.c: Likewise.
31837 * tree-ssa-sink.c: Likewise.
31838 * tree-ssa-strlen.c: Likewise.
31839 * tree-ssa-tail-merge.c: Likewise.
31840 * tree-ssa-uncprop.c: Likewise.
31841 * tree-switch-conversion.c: Likewise.
31842 * tree-tailcall.c: Likewise.
31843 * tree-vect-generic.c: Likewise.
31844 * tree-vectorizer.c: Likewise.
31845 * tree-vrp.c: Likewise.
31846 * tsan.c: Likewise.
31847 * var-tracking.c: Likewise.
31848 * bt-load.c: Likewise.
31849 * cfgcleanup.c: Likewise.
31850 * combine-stack-adj.c: Likewise.
31851 * combine.c: Likewise.
31852 * compare-elim.c: Likewise.
31853 * config/epiphany/resolve-sw-modes.c: Likewise.
31854 * config/i386/i386.c: Likewise.
31855 * config/mips/mips.c: Likewise.
31856 * config/s390/s390.c: Likewise.
31857 * config/sh/sh_treg_combine.cc: Likewise.
31858 * config/sparc/sparc.c: Likewise.
31861 * final.c: Likewise.
31862 * ifcvt.c: Likewise.
31863 * mode-switching.c: Likewise.
31864 * passes.c: Likewise.
31865 * postreload.c: Likewise.
31867 * reg-stack.c: Likewise.
31868 * regcprop.c: Likewise.
31869 * regrename.c: Likewise.
31872 2014-05-06 Richard Biener <rguenther@suse.de>
31874 PR middle-end/61070
31875 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
31876 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
31878 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
31881 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
31883 2014-05-05 Radovan Obradovic <robradovic@mips.com>
31884 Tom de Vries <tom@codesourcery.com>
31886 * target.def (call_fusage_contains_non_callee_clobbers): New
31888 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
31890 (@node Miscellaneous Register Hooks): New node.
31891 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
31892 * doc/tm.texi: Regenerate.
31894 2014-05-05 Marek Polacek <polacek@redhat.com>
31897 * opts.c (common_handle_option): Call error_at instead of warning_at.
31899 2014-05-05 Richard Biener <rguenther@suse.de>
31901 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
31902 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
31903 under the TODO_verify_il umbrella.
31905 2014-05-05 Richard Biener <rguenther@suse.de>
31907 * passes.c (execute_function_todo): Move TODO_verify_flow under
31908 the TODO_verify_ul umbrella.
31910 2014-05-05 Richard Biener <rguenther@suse.de>
31912 PR middle-end/61010
31913 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
31914 X & CST away from a CST that is the mask of a mode.
31916 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
31918 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
31919 int argument to enum machine_mode.
31920 (picochip_class_max_nregs): Ditto.
31921 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
31922 (picochip_class_max_nregs): Ditto.
31924 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31926 * target.def: Add new target hook.
31927 * doc/tm.texi: Regenerate.
31928 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
31929 * targhooks.c (default_keep_leaf_when_profiled): New function.
31931 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
31932 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
31934 2014-05-05 Bin Cheng <bin.cheng@arm.com>
31936 PR tree-optimization/60363
31937 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
31938 (copy_phi_args): New parameters. Call get_value_locus_in_path.
31939 (update_destination_phis): New parameter.
31940 (create_edge_and_update_destination_phis): Ditto.
31941 (ssa_fix_duplicate_block_edges): Pass new arguments.
31942 (thread_single_edge): Ditto.
31944 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
31946 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
31947 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
31948 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
31949 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
31950 Use RS6000_BTM_HARD_FLOAT.
31951 (BU_MISC_2): Likewise.
31952 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
31953 RS6000_BTM_HARD_FLOAT.
31954 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
31955 is explicitly used.
31956 (rs6000_invalid_builtin): Add hard floating builtin support.
31957 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
31958 hard float builtins.
31959 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
31961 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
31963 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
31964 Add missing function* argument.
31966 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
31968 * lra-constraints.c (valid_address_p): Move earlier in file.
31969 Add a constraint argument to the address_info version.
31970 (satisfies_memory_constraint_p): New function.
31971 (satisfies_address_constraint_p): Likewise.
31972 (process_alt_operands, curr_insn_transform): Use them.
31973 (process_address): Pass the constraint to valid_address_p when
31974 checking address operands.
31976 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
31978 * config/mips/mips.c (mips_isa_rev): New variable.
31979 (mips_set_architecture): Set it.
31980 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
31982 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
31983 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
31984 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
31985 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
31986 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
31987 conditions in terms of mips_isa_rev.
31988 (mips_isa_rev): Declare.
31990 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
31992 * config/sh/sh-mem.cc: Use tabs instead of spaces.
31993 (prob_unlikely, prob_likely): Make variables const.
31995 2014-05-03 Denis Chertykov <chertykov@gmail.com>
31997 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
31999 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
32001 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
32003 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
32005 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
32006 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
32007 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
32009 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
32010 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
32012 Replace usage of ROUND_REG with sh_round_reg.
32013 Use CEIL instead of ROUND_ADVANCE.
32015 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
32018 * config/sh/sh.c: Include stdlib headers before everything else.
32020 2014-05-02 Jakub Jelinek <jakub@redhat.com>
32022 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
32023 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
32024 (gimplify_adjust_omp_clauses): Simd region is never
32025 directly nested in combined parallel. Instead, for linear
32026 with copyin/copyout, if in combined for simd loop, make decl
32027 firstprivate/lastprivate on OMP_FOR.
32028 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
32029 expand_omp_for_static_chunk): When setting endvar, also set
32030 fd->loop.v to the same value.
32032 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
32034 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
32036 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
32038 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
32041 2014-05-02 Marek Polacek <polacek@redhat.com>
32043 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
32045 2014-05-02 Kito Cheng <kito@0xlab.org>
32047 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
32048 to a C expression marco.
32049 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
32050 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
32051 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
32052 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
32053 HONOR_REG_ALLOC_ORDER.
32054 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
32056 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32058 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
32060 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
32062 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
32064 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
32066 * tree-if-conv.c (is_cond_scalar_reduction): New function.
32067 (convert_scalar_cond_reduction): Likewise.
32068 (predicate_scalar_phi): Add recognition and transformation
32069 of simple conditioanl reduction to be vectorizable.
32071 2014-05-01 Marek Polacek <polacek@redhat.com>
32074 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
32076 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
32078 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
32079 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
32080 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
32081 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
32082 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
32083 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
32084 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
32085 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
32087 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
32089 * config/arc/arc.opt (mlra): Move comment above option name
32090 to avoid mis-parsing as language options.
32092 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32094 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
32095 * config/sol2.h: ... here.
32096 * config/sol2-10.h: Remove.
32098 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
32099 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
32100 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
32101 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
32102 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
32103 * config/sol2.h: ... here.
32104 (SECTION_NAME_FORMAT): Don't redefine.
32105 (STARTFILE_ARCH32_SPEC): Rename to ...
32106 (STARTFILE_ARCH_SPEC): ... this.
32107 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
32108 * config/sparc/sol2.h: ... here.
32109 (SECTION_NAME_FORMAT): Don't undef.
32110 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
32111 (SUBTARGET_EXTRA_SPECS): Remove.
32112 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
32114 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
32115 (MD_STARTFILE_PREFIX): Remove.
32116 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
32117 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
32118 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
32119 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
32120 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
32121 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
32122 * config/i386/sol2.h: ... here.
32123 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
32124 * config/i386/sol2-bi.h: Remove.
32125 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
32126 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
32128 * config/i386/t-sol2-64: Rename to ...
32129 * config/i386/t-sol2: ... this.
32130 * config/sparc/t-sol2-64: Rename to ...
32131 * config/sparc/t-sol2: ... this.
32133 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
32134 sol2_tm_file_head, sol2_tm_file_tail.
32135 Include ${cpu_type}/sol2.h before sol2.h.
32137 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
32138 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
32139 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
32140 Reflect i386/t-sol2-64 renaming.
32141 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
32142 Reflect sparc/t-sol2-64 renaming.
32144 2014-04-30 Richard Biener <rguenther@suse.de>
32146 * passes.c (execute_function_todo): Move TODO_verify_stmts
32147 and TODO_verify_ssa under the TODO_verify_il umbrella.
32148 * tree-ssa.h (verify_ssa): Adjust prototype.
32149 * tree-ssa.c (verify_ssa): Add parameter to tell whether
32150 we should verify SSA operands.
32151 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
32152 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
32153 whether we should verify whether not throwing stmts have EH info.
32154 * graphite-scop-detection.c (create_sese_edges): Adjust.
32155 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
32156 * tree-eh.c (lower_try_finally_switch): Do not add the
32157 default case label twice.
32159 2014-04-30 Marek Polacek <polacek@redhat.com>
32161 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
32162 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
32163 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
32164 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
32166 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
32168 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
32169 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
32170 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
32171 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
32172 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
32173 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
32174 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
32175 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
32177 2014-04-29 David Malcolm <dmalcolm@redhat.com>
32179 * tree-cfg.c (dump_function_to_file): Dump the return type of
32180 functions, in a line to itself before the function body, mimicking
32181 the layout of a C function.
32183 2014-04-29 Jakub Jelinek <jakub@redhat.com>
32185 PR tree-optimization/60971
32186 * tree-tailcall.c (process_assignment): Reject conversions which
32189 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
32191 * calls.c (initialize_argument_information): Always treat
32192 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
32193 (expand_call): Likewise.
32194 (emit_library_call_calue_1): Likewise.
32195 * expr.c (PUSH_ARGS_REVERSED): Do not define.
32196 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
32199 2014-04-29 Nick Clifton <nickc@redhat.com>
32201 * config/msp430/msp430.md (umulsidi): Fix typo.
32202 (mulhisi3): Enable even inside interrupt handlers.
32203 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
32204 bigger return address pushed in large mode.
32206 2014-04-29 Nick Clifton <nickc@redhat.com>
32208 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
32209 (arc_init_reg_tables): Use a machine_mode enum to iterate over
32211 * config/m32r/m32r.c (init_reg_tables): Likewise.
32212 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
32213 enum to hold the modes.
32215 2014-04-29 Richard Biener <rguenther@suse.de>
32217 * dominance.c (free_dominance_info): Add overload with
32218 function parameter.
32219 (dom_info_state): Likewise.
32220 (dom_info_available_p): Likewise.
32221 * basic-block.h (free_dominance_info, dom_info_state,
32222 dom_info_available_p): Declare overloads.
32223 * passes.c (execute_function_todo): Verify that verifiers
32224 don't change dominator info state. Drop dominator info
32225 for IPA pass invocations.
32226 * cgraph.c (release_function_body): Restore asserts that
32227 dominator information is released.
32229 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
32231 * doc/invoke.texi: Fix typo.
32232 * tree-vrp.c: Fix typos.
32233 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
32235 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
32237 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
32239 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
32241 * config/aarch64/aarch64-builtins.c
32242 (aarch64_types_storestruct_lane_qualifiers): New.
32243 (TYPES_STORESTRUCT_LANE): Likewise.
32244 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
32245 (st3_lane): Likewise.
32246 (st4_lane): Likewise.
32247 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
32248 (vec_store_lanesci_lane<mode>): Likewise.
32249 (vec_store_lanesxi_lane<mode>): Likewise.
32250 (aarch64_st2_lane<VQ:mode>): Likewise.
32251 (aarch64_st3_lane<VQ:mode>): Likewise.
32252 (aarch64_st4_lane<VQ:mode>): Likewise.
32253 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
32254 * config/aarch64/arm_neon.h
32255 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
32256 use new macro arguments.
32257 (__ST3_LANE_FUNC): Likewise.
32258 (__ST4_LANE_FUNC): Likewise.
32259 * config/aarch64/iterators.md (V_TWO_ELEM): New.
32260 (V_THREE_ELEM): Likewise.
32261 (V_FOUR_ELEM): Likewise.
32263 2014-04-28 David Malcolm <dmalcolm@redhat.com>
32265 * doc/gimple.texi: Replace the description of the now-defunct
32266 union gimple_statement_d with a diagram showing the
32267 gimple_statement_base class hierarchy and its relationships to
32268 the GSS_ and GIMPLE_ enums.
32270 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
32272 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
32273 * config/aarch64/aarch64.c
32274 (aarch64_cannot_change_mode_class): Weaken conditions.
32275 (aarch64_modes_tieable_p): New.
32276 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
32278 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
32280 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
32281 (loadsync_<mode>): Change mode.
32282 (load_quadpti, store_quadpti): New.
32283 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
32284 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
32286 2014-04-28 Martin Jambor <mjambor@suse.cz>
32288 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
32289 same alias type as the original statement.
32290 (subreplacement_assignment_data): New type.
32291 (handle_unscalarized_data_in_subtree): New type of parameter,
32292 generate new memory accesses with same alias type as the original
32294 (load_assign_lhs_subreplacements): Likewise.
32295 (sra_modify_constructor_assign): Generate new memory accesses with
32296 same alias type as the original statement.
32298 2014-04-28 Richard Biener <rguenther@suse.de>
32300 * tree-pass.h (TODO_verify_il): Define.
32301 (TODO_verify_all): Complete properly.
32302 * passes.c (execute_function_todo): Move existing loop-closed
32303 SSA verification under TODO_verify_il.
32304 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
32305 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
32306 Fix tree sharing issue.
32308 2014-04-28 Richard Biener <rguenther@suse.de>
32310 PR middle-end/60092
32311 * builtins.def (DEF_C11_BUILTIN): Add.
32312 (BUILT_IN_ALIGNED_ALLOC): Likewise.
32313 * coretypes.h (enum function_class): Add function_c11_misc.
32314 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
32315 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
32316 (call_may_clobber_ref_p_1): Likewise.
32317 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
32318 (mark_all_reaching_defs_necessary_1): Likewise.
32319 (propagate_necessity): Likewise.
32320 (eliminate_unnecessary_stmts): Likewise.
32321 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
32323 2014-04-28 Richard Biener <rguenther@suse.de>
32325 * tree-vrp.c (vrp_var_may_overflow): Remove.
32326 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
32327 with overflow immediately bump to one before that value and
32328 let iteration figure out overflow status.
32330 2014-04-28 Richard Biener <rguenther@suse.de>
32332 * configure.ac: Do valgrind header checks unconditionally.
32333 Add --enable-valgrind-annotations.
32334 * system.h: Guard valgrind header inclusion with
32335 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
32336 * alloc-pool.c (pool_alloc, pool_free): Use
32337 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
32338 to guard possibly dead code.
32339 * config.in: Regenerated.
32340 * configure: Likewise.
32342 2014-04-28 Jeff Law <law@redhat.com>
32344 PR tree-optimization/60902
32345 * tree-ssa-threadedge.c
32346 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
32347 over real defs when invalidating outputs from statements that do not
32348 produce useful outputs for threading.
32350 2014-04-28 Richard Biener <rguenther@suse.de>
32352 PR tree-optimization/60979
32353 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
32354 SCOPs that end in a block with a successor with abnormal
32357 2014-04-28 Richard Biener <rguenther@suse.de>
32359 * tree-pass.h (execute_pass_list): Adjust prototype.
32360 * passes.c (pass_manager::execute_early_local_passes): Adjust.
32361 (do_per_function): Change callback signature, push all actual
32362 work to the callbals.
32363 (do_per_function_toporder): Likewise.
32364 (execute_function_dump): Adjust.
32365 (execute_function_todo): Likewise.
32366 (clear_last_verified): Likewise.
32367 (verify_curr_properties): Likewise.
32368 (update_properties_after_pass): Likewise.
32369 (execute_pass_list_1): Split out from ...
32370 (execute_pass_list): ... here. Adjust.
32371 (execute_ipa_pass_list): Likewise.
32372 * cgraphunit.c (cgraph_add_new_function): Adjust.
32373 (analyze_function): Likewise.
32374 (expand_function): Likewise.
32375 * cgraph.c (release_function_body): Free dominance info
32376 here instead of asserting it was magically freed elsewhere.
32378 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
32380 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
32381 * configure: Regenerate.
32382 * config/sparc/sparc.opt (muser-mode): New option.
32383 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
32385 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
32386 * doc/invoke.texi (SPARC options): Document -muser-mode.
32388 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
32390 * cselib.c (find_slot_memmode): Delete.
32391 (cselib_hasher): Change compare_type to a struct.
32392 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
32394 (preserve_constants_and_equivs): Adjust for new compare_type.
32395 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
32396 (wrap_constant): Delete.
32397 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
32399 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
32401 * doc/install.texi (Building with profile feedback): Remove
32404 2014-04-26 Tom de Vries <tom@codesourcery.com>
32406 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
32409 2014-04-25 Cary Coutant <ccoutant@google.com>
32412 * dwarf2out.c (should_move_die_to_comdat): A type definition
32413 can contain a subprogram definition, but don't move it to a
32415 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
32416 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
32418 (clone_tree_hash): Rename to...
32419 (clone_tree_partial): ...this; change callers. Copy
32420 DW_TAG_subprogram DIEs as declarations.
32421 (copy_decls_walk): Don't copy children of a declaration into a
32424 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
32427 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
32430 2014-04-25 Jiong Wang <jiong.wang@arm.com>
32432 * config/arm/predicates.md (call_insn_operand): Add long_call check.
32433 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
32435 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
32438 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32440 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
32442 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32444 PR tree-optimization/60930
32445 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
32446 creating a multiply candidate by folding two constant
32447 multiplicands when the result overflows.
32449 2014-04-25 Jakub Jelinek <jakub@redhat.com>
32451 PR tree-optimization/60960
32452 * tree-vect-generic.c (expand_vector_operation): Only call
32453 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
32455 2014-04-25 Tom de Vries <tom@codesourcery.com>
32457 * expr.c (clobber_reg_mode): New function.
32458 * expr.h (clobber_reg): New function.
32460 2014-04-25 Tom de Vries <tom@codesourcery.com>
32462 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
32465 2014-04-25 Radovan Obradovic <robradovic@mips.com>
32466 Tom de Vries <tom@codesourcery.com>
32468 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
32470 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
32471 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
32472 new argument to find_all_hard_reg_sets call.
32474 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32476 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
32477 Use HOST_WIDE_INT_C for mask literal.
32478 (aarch_rev16_shleft_mask_imm_p): Likewise.
32480 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
32483 * config/sparc/sparc.md (ashlsi3_extend): Delete.
32485 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
32487 PR preprocessor/56540
32488 * config/i386/i386-c.c (ix86_target_macros): Define
32489 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
32491 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32493 * configure.ac (tga_func): Remove.
32494 (LIB_TLS_SPEC): Remove.
32495 * configure: Regenerate.
32496 * config.in: Regenerate.
32497 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
32499 2014-04-25 Richard Biener <rguenther@suse.de>
32502 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
32503 call stmt use/clobber sets during stmt walk instead of
32504 walking the possibly incomplete set of caller edges.
32506 2014-04-25 Richard Biener <rguenther@suse.de>
32509 * passes.c (apply_ipa_transforms): Inline into only caller ...
32510 (execute_one_pass): ... here. Properly bring in function
32511 bodies for nodes we want to apply IPA transforms to.
32513 2014-04-24 Cong Hou <congh@google.com>
32515 PR tree-optimization/60896
32516 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
32517 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
32518 (vect_mark_pattern_stmts): Set the def type of all statements in
32519 PATTERN_DEF_SEQ as vect_internal_def.
32521 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
32523 * doc/extend.texi (PowerPC Built-in Functions): Document new
32524 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
32525 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
32527 * config/rs6000/predicates.md (const_0_to_3_operand): New
32528 predicate to match 0..3 integer constants.
32530 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
32531 to support adding miscellaneous builtin functions.
32532 (BU_DFP_MISC_2): Likewise.
32533 (BU_P7_MISC_1): Likewise.
32534 (BU_P7_MISC_2): Likewise.
32535 (BU_P8V_MISC_3): Likewise.
32536 (BU_MISC_1): Likewise.
32537 (BU_MISC_2): Likewise.
32538 (DIVWE): Add extended divide builtin functions.
32539 (DIVWEO): Likewise.
32540 (DIVWEU): Likewise.
32541 (DIVWEUO): Likewise.
32543 (DIVDEO): Likewise.
32544 (DIVDEU): Likewise.
32545 (DIVDEUO): Likewise.
32546 (DXEX): Add decimal floating-point builtin functions.
32548 (DDEDPD): Likewise.
32549 (DDEDPDQ): Likewise.
32550 (DENBCD): Likewise.
32551 (DENBCDQ): Likewise.
32555 (DSCLIQ): Likewise.
32557 (DSCRIQ): Likewise.
32558 (CDTBCD): Add new BCD builtin functions.
32559 (CBCDTD): Likewise.
32560 (ADDG6S): Likewise.
32561 (BCDADD): Likewise.
32562 (BCDADD_LT): Likewise.
32563 (BCDADD_EQ): Likewise.
32564 (BCDADD_GT): Likewise.
32565 (BCDADD_OV): Likewise.
32566 (BCDSUB): Likewise.
32567 (BCDSUB_LT): Likewise.
32568 (BCDSUB_EQ): Likewise.
32569 (BCDSUB_GT): Likewise.
32570 (BCDSUB_OV): Likewise.
32571 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
32572 (UNPACK_TD): Likewise.
32573 (PACK_TF): Likewise.
32574 (UNPACK_TF): Likewise.
32575 (UNPACK_TF_0): Likewise.
32576 (UNPACK_TF_1): Likewise.
32577 (PACK_V1TI): Likewise.
32578 (UNPACK_V1TI): Likewise.
32580 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
32581 support for decimal floating point builtin functions.
32582 (rs6000_expand_ternop_builtin): Add checks for the new builtin
32583 functions that take constant arguments.
32584 (rs6000_invalid_builtin): Add decimal floating point builtin support.
32585 (rs6000_init_builtins): Setup long double, _Decimal64, and
32586 _Decimal128 types for new builtin functions.
32587 (builtin_function_type): Set the unsigned flags appropriately for
32588 the new builtin functions.
32589 (rs6000_opt_masks): Add support for decimal floating point builtin
32592 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
32593 floating point builtin functions.
32594 (RS6000_BTM_COMMON): Likewise.
32595 (RS6000_BTI_long_double): Likewise.
32596 (RS6000_BTI_dfloat64): Likewise.
32597 (RS6000_BTI_dfloat128): Likewise.
32598 (long_double_type_internal_node): Likewise.
32599 (dfloat64_type_internal_node): Likewise.
32600 (dfloat128_type_internal_node): Likewise.
32602 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
32603 2.07 bcd arithmetic instructions.
32604 (UNSPEC_BCDSUB): Likewise.
32605 (UNSPEC_BCD_OVERFLOW): Likewise.
32606 (UNSPEC_BCD_ADD_SUB): Likewise.
32607 (bcd_add_sub): Likewise.
32608 (BCD_TEST): Likewise.
32609 (bcd<bcd_add_sub>): Likewise.
32610 (bcd<bcd_add_sub>_test): Likewise.
32611 (bcd<bcd_add_sub>_test2): Likewise.
32612 (bcd<bcd_add_sub>_<code>): Likewise.
32613 (peephole2 for combined bcd ops): Likewise.
32615 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
32616 decimal floating point builtin functions.
32617 (UNSPEC_DENBCD): Likewise.
32618 (UNSPEC_DXEX): Likewise.
32619 (UNSPEC_DIEX): Likewise.
32620 (UNSPEC_DSCLI): Likewise.
32621 (UNSPEC_DSCRI): Likewise.
32622 (D64_D128): Likewise.
32623 (dfp_suffix): Likewise.
32624 (dfp_ddedpd_<mode>): Likewise.
32625 (dfp_denbcd_<mode>): Likewise.
32626 (dfp_dxex_<mode>): Likewise.
32627 (dfp_diex_<mode>): Likewise.
32628 (dfp_dscli_<mode>): Likewise.
32629 (dfp_dscri_<mode>): Likewise.
32631 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
32633 (UNSPEC_CDTBCD): Likewise.
32634 (UNSPEC_CBCDTD): Likewise.
32635 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
32636 (UNSPEC_DIVEO): Likewise.
32637 (UNSPEC_DIVEU): Likewise.
32638 (UNSPEC_DIVEUO): Likewise.
32639 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
32640 pack/unpack 128-bit types.
32641 (UNSPEC_PACK_128BIT): Likewise.
32642 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
32643 (udiv<mode>3): Use idiv_ldiv mode attribute.
32644 (div<mode>3): Likewise.
32645 (addg6s): Add new BCD builtin functions.
32646 (cdtbcd): Likewise.
32647 (cbcdtd): Likewise.
32648 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
32649 (div_extend): Likewise.
32650 (div<div_extend>_<mode>"): Likewise.
32651 (FP128_64): Add support for new builtin functions to pack/unpack
32653 (unpack<mode>): Likewise.
32654 (unpacktf_0): Likewise.
32655 (unpacktf_1): Likewise.
32656 (unpack<mode>_dm): Likewise.
32657 (unpack<mode>_nodm): Likewise.
32658 (pack<mode>): Likewise.
32659 (unpackv1ti): Likewise.
32660 (packv1ti): Likewise.
32662 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
32664 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
32667 2014-04-24 Jakub Jelinek <jakub@redhat.com>
32669 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
32670 * gimplify.c (omp_is_private): Change last argument's type to int.
32671 Only diagnose lastprivate if the simd argument is 1, only diagnose
32672 linear if the simd argument is 2.
32673 (gimplify_omp_for): Adjust omp_is_private callers. When adding
32674 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
32675 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
32676 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
32677 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
32678 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
32679 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
32680 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
32681 * tree-nested.c (convert_nonlocal_omp_clauses,
32682 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
32684 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
32687 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
32690 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
32692 * flag-types.h (enum ivar_visibility): Add.
32694 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
32696 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
32697 function * argument.
32699 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
32701 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
32703 2014-04-24 Radovan Obradovic <robradovic@mips.com>
32704 Tom de Vries <tom@codesourcery.com>
32706 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
32707 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
32709 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
32710 * emit-rtl.c (try_split): Same.
32712 2014-04-24 Radovan Obradovic <robradovic@mips.com>
32713 Tom de Vries <tom@codesourcery.com>
32715 * common.opt (fuse-caller-save): New option.
32717 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
32719 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
32720 elements for big-endian.
32722 2014-04-24 Richard Biener <rguenther@suse.de>
32724 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
32725 during TER and instead use the sepops interface for expanding
32726 non-GIMPLE_SINGLE_RHS.
32728 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32730 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
32731 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
32733 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32735 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
32736 assembler 64-bit option.
32737 * configure: Regenerate.
32739 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32741 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
32742 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
32743 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
32744 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
32745 (TARGET_CRYPTO): Take TARGET_SIMD into account.
32747 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32749 * config/aarch64/aarch64-builtins.c
32750 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
32751 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
32752 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
32753 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
32755 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
32756 (Vrevsuff): New mode attribute.
32758 2014-04-24 Terry Guo <terry.guo@arm.com>
32760 * config/arm/arm.h (machine_function): Define variable
32761 after_arm_reorg here.
32762 * config/arm/arm.c (after_arm_reorg): Remove the definition.
32763 (arm_split_constant): Update the way to access variable
32765 (arm_reorg): Ditto.
32766 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
32768 2014-04-23 Tom de Vries <tom@codesourcery.com>
32770 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
32772 2014-04-23 David Malcolm <dmalcolm@redhat.com>
32774 * is-a.h: Update comments to reflect the following changes to the
32775 "pointerness" of the API, making the template parameter match the
32776 return type, allowing use of is-a.h with typedefs of pointers.
32777 (is_a_helper::cast): Return a T rather then a pointer to a T, so
32778 that the return type matches the parameter to the is_a_helper.
32780 (dyn_cast): Likewise.
32782 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
32783 pointer from the is-a.h API.
32785 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
32786 (is_a_helper <cgraph_node *>::test): ...this, matching change to
32788 (is_a_helper <varpool_node>::test): Likewise, convert to...
32789 (is_a_helper <varpool_node *>::test): ...this.
32791 (varpool_first_variable): Update for removal of implicit pointer
32792 from the is-a.h API.
32793 (varpool_next_variable): Likewise.
32794 (varpool_first_static_initializer): Likewise.
32795 (varpool_next_static_initializer): Likewise.
32796 (varpool_first_defined_variable): Likewise.
32797 (varpool_next_defined_variable): Likewise.
32798 (cgraph_first_defined_function): Likewise.
32799 (cgraph_next_defined_function): Likewise.
32800 (cgraph_first_function): Likewise.
32801 (cgraph_next_function): Likewise.
32802 (cgraph_first_function_with_gimple_body): Likewise.
32803 (cgraph_next_function_with_gimple_body): Likewise.
32804 (cgraph_alias_target): Likewise.
32805 (varpool_alias_target): Likewise.
32806 (cgraph_function_or_thunk_node): Likewise.
32807 (varpool_variable_node): Likewise.
32808 (symtab_real_symbol_p): Likewise.
32809 * cgraphunit.c (referred_to_p): Likewise.
32810 (analyze_functions): Likewise.
32811 (handle_alias_pairs): Likewise.
32812 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
32813 * gimple-ssa.h (gimple_vuse_op): Likewise.
32814 (gimple_vdef_op): Likewise.
32815 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
32816 * gimple.c (gimple_build_asm_1): Likewise.
32817 (gimple_build_try): Likewise.
32818 (gimple_build_resx): Likewise.
32819 (gimple_build_eh_dispatch): Likewise.
32820 (gimple_build_omp_for): Likewise.
32821 (gimple_omp_for_set_clauses): Likewise.
32823 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
32824 (is_a_helper <gimple_statement_asm *>::test): ...this.
32825 (is_a_helper <gimple_statement_bind>::test): Convert to...
32826 (is_a_helper <gimple_statement_bind *>::test): ...this.
32827 (is_a_helper <gimple_statement_call>::test): Convert to...
32828 (is_a_helper <gimple_statement_call *>::test): ...this.
32829 (is_a_helper <gimple_statement_catch>::test): Convert to...
32830 (is_a_helper <gimple_statement_catch *>::test): ...this.
32831 (is_a_helper <gimple_statement_resx>::test): Convert to...
32832 (is_a_helper <gimple_statement_resx *>::test): ...this.
32833 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
32834 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
32835 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
32836 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
32837 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
32838 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
32839 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
32840 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
32841 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
32842 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
32843 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
32844 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
32845 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
32846 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
32847 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
32848 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
32849 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
32850 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
32851 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
32852 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
32853 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
32854 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
32855 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
32856 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
32857 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
32858 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
32859 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
32860 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
32861 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
32862 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
32863 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
32864 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
32865 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
32866 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
32867 (is_a_helper <gimple_statement_phi>::test): Convert to...
32868 (is_a_helper <gimple_statement_phi *>::test): ...this.
32869 (is_a_helper <gimple_statement_transaction>::test): Convert to...
32870 (is_a_helper <gimple_statement_transaction *>::test): ...this.
32871 (is_a_helper <gimple_statement_try>::test): Convert to...
32872 (is_a_helper <gimple_statement_try *>::test): ...this.
32873 (is_a_helper <gimple_statement_wce>::test): Convert to...
32874 (is_a_helper <gimple_statement_wce *>::test): ...this.
32875 (is_a_helper <const gimple_statement_asm>::test): Convert to...
32876 (is_a_helper <const gimple_statement_asm *>::test): ...this.
32877 (is_a_helper <const gimple_statement_bind>::test): Convert to...
32878 (is_a_helper <const gimple_statement_bind *>::test): ...this.
32879 (is_a_helper <const gimple_statement_call>::test): Convert to...
32880 (is_a_helper <const gimple_statement_call *>::test): ...this.
32881 (is_a_helper <const gimple_statement_catch>::test): Convert to...
32882 (is_a_helper <const gimple_statement_catch *>::test): ...this.
32883 (is_a_helper <const gimple_statement_resx>::test): Convert to...
32884 (is_a_helper <const gimple_statement_resx *>::test): ...this.
32885 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
32886 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
32887 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
32888 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
32889 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
32891 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
32893 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
32895 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
32897 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
32898 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
32899 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
32901 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
32902 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
32904 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
32905 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
32906 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
32907 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
32908 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
32909 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
32911 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
32912 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
32913 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
32914 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
32916 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
32917 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
32918 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
32919 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
32920 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
32921 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
32922 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
32923 (is_a_helper <const gimple_statement_phi>::test): Convert to...
32924 (is_a_helper <const gimple_statement_phi *>::test): ...this.
32925 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
32926 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
32927 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
32928 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
32929 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
32930 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
32931 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
32933 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
32935 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
32936 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
32938 (gimple_use_ops): Update for removal of implicit pointer from the
32940 (gimple_set_use_ops): Likewise.
32941 (gimple_vuse): Likewise.
32942 (gimple_vdef): Likewise.
32943 (gimple_vuse_ptr): Likewise.
32944 (gimple_vdef_ptr): Likewise.
32945 (gimple_set_vuse): Likewise.
32946 (gimple_set_vdef): Likewise.
32947 (gimple_omp_return_set_lhs): Likewise.
32948 (gimple_omp_return_lhs): Likewise.
32949 (gimple_omp_return_lhs_ptr): Likewise.
32950 (gimple_call_fntype): Likewise.
32951 (gimple_call_set_fntype): Likewise.
32952 (gimple_call_set_internal_fn): Likewise.
32953 (gimple_call_use_set): Likewise.
32954 (gimple_call_clobber_set): Likewise.
32955 (gimple_bind_vars): Likewise.
32956 (gimple_bind_set_vars): Likewise.
32957 (gimple_bind_body_ptr): Likewise.
32958 (gimple_bind_set_body): Likewise.
32959 (gimple_bind_add_stmt): Likewise.
32960 (gimple_bind_block): Likewise.
32961 (gimple_bind_set_block): Likewise.
32962 (gimple_asm_ninputs): Likewise.
32963 (gimple_asm_noutputs): Likewise.
32964 (gimple_asm_nclobbers): Likewise.
32965 (gimple_asm_nlabels): Likewise.
32966 (gimple_asm_input_op): Likewise.
32967 (gimple_asm_input_op_ptr): Likewise.
32968 (gimple_asm_output_op): Likewise.
32969 (gimple_asm_output_op_ptr): Likewise.
32970 (gimple_asm_set_output_op): Likewise.
32971 (gimple_asm_clobber_op): Likewise.
32972 (gimple_asm_set_clobber_op): Likewise.
32973 (gimple_asm_label_op): Likewise.
32974 (gimple_asm_set_label_op): Likewise.
32975 (gimple_asm_string): Likewise.
32976 (gimple_catch_types): Likewise.
32977 (gimple_catch_types_ptr): Likewise.
32978 (gimple_catch_handler_ptr): Likewise.
32979 (gimple_catch_set_types): Likewise.
32980 (gimple_catch_set_handler): Likewise.
32981 (gimple_eh_filter_types): Likewise.
32982 (gimple_eh_filter_types_ptr): Likewise.
32983 (gimple_eh_filter_failure_ptr): Likewise.
32984 (gimple_eh_filter_set_types): Likewise.
32985 (gimple_eh_filter_set_failure): Likewise.
32986 (gimple_eh_must_not_throw_fndecl): Likewise.
32987 (gimple_eh_must_not_throw_set_fndecl): Likewise.
32988 (gimple_eh_else_n_body_ptr): Likewise.
32989 (gimple_eh_else_e_body_ptr): Likewise.
32990 (gimple_eh_else_set_n_body): Likewise.
32991 (gimple_eh_else_set_e_body): Likewise.
32992 (gimple_try_eval_ptr): Likewise.
32993 (gimple_try_cleanup_ptr): Likewise.
32994 (gimple_try_set_eval): Likewise.
32995 (gimple_try_set_cleanup): Likewise.
32996 (gimple_wce_cleanup_ptr): Likewise.
32997 (gimple_wce_set_cleanup): Likewise.
32998 (gimple_phi_capacity): Likewise.
32999 (gimple_phi_num_args): Likewise.
33000 (gimple_phi_result): Likewise.
33001 (gimple_phi_result_ptr): Likewise.
33002 (gimple_phi_set_result): Likewise.
33003 (gimple_phi_arg): Likewise.
33004 (gimple_phi_set_arg): Likewise.
33005 (gimple_resx_region): Likewise.
33006 (gimple_resx_set_region): Likewise.
33007 (gimple_eh_dispatch_region): Likewise.
33008 (gimple_eh_dispatch_set_region): Likewise.
33009 (gimple_omp_critical_name): Likewise.
33010 (gimple_omp_critical_name_ptr): Likewise.
33011 (gimple_omp_critical_set_name): Likewise.
33012 (gimple_omp_for_clauses): Likewise.
33013 (gimple_omp_for_clauses_ptr): Likewise.
33014 (gimple_omp_for_set_clauses): Likewise.
33015 (gimple_omp_for_collapse): Likewise.
33016 (gimple_omp_for_index): Likewise.
33017 (gimple_omp_for_index_ptr): Likewise.
33018 (gimple_omp_for_set_index): Likewise.
33019 (gimple_omp_for_initial): Likewise.
33020 (gimple_omp_for_initial_ptr): Likewise.
33021 (gimple_omp_for_set_initial): Likewise.
33022 (gimple_omp_for_final): Likewise.
33023 (gimple_omp_for_final_ptr): Likewise.
33024 (gimple_omp_for_set_final): Likewise.
33025 (gimple_omp_for_incr): Likewise.
33026 (gimple_omp_for_incr_ptr): Likewise.
33027 (gimple_omp_for_set_incr): Likewise.
33028 (gimple_omp_for_pre_body_ptr): Likewise.
33029 (gimple_omp_for_set_pre_body): Likewise.
33030 (gimple_omp_parallel_clauses): Likewise.
33031 (gimple_omp_parallel_clauses_ptr): Likewise.
33032 (gimple_omp_parallel_set_clauses): Likewise.
33033 (gimple_omp_parallel_child_fn): Likewise.
33034 (gimple_omp_parallel_child_fn_ptr): Likewise.
33035 (gimple_omp_parallel_set_child_fn): Likewise.
33036 (gimple_omp_parallel_data_arg): Likewise.
33037 (gimple_omp_parallel_data_arg_ptr): Likewise.
33038 (gimple_omp_parallel_set_data_arg): Likewise.
33039 (gimple_omp_task_clauses): Likewise.
33040 (gimple_omp_task_clauses_ptr): Likewise.
33041 (gimple_omp_task_set_clauses): Likewise.
33042 (gimple_omp_task_child_fn): Likewise.
33043 (gimple_omp_task_child_fn_ptr): Likewise.
33044 (gimple_omp_task_set_child_fn): Likewise.
33045 (gimple_omp_task_data_arg): Likewise.
33046 (gimple_omp_task_data_arg_ptr): Likewise.
33047 (gimple_omp_task_set_data_arg): Likewise.
33048 (gimple_omp_taskreg_clauses): Likewise.
33049 (gimple_omp_taskreg_clauses_ptr): Likewise.
33050 (gimple_omp_taskreg_set_clauses): Likewise.
33051 (gimple_omp_taskreg_child_fn): Likewise.
33052 (gimple_omp_taskreg_child_fn_ptr): Likewise.
33053 (gimple_omp_taskreg_set_child_fn): Likewise.
33054 (gimple_omp_taskreg_data_arg): Likewise.
33055 (gimple_omp_taskreg_data_arg_ptr): Likewise.
33056 (gimple_omp_taskreg_set_data_arg): Likewise.
33057 (gimple_omp_task_copy_fn): Likewise.
33058 (gimple_omp_task_copy_fn_ptr): Likewise.
33059 (gimple_omp_task_set_copy_fn): Likewise.
33060 (gimple_omp_task_arg_size): Likewise.
33061 (gimple_omp_task_arg_size_ptr): Likewise.
33062 (gimple_omp_task_set_arg_size): Likewise.
33063 (gimple_omp_task_arg_align): Likewise.
33064 (gimple_omp_task_arg_align_ptr): Likewise.
33065 (gimple_omp_task_set_arg_align): Likewise.
33066 (gimple_omp_single_clauses): Likewise.
33067 (gimple_omp_single_clauses_ptr): Likewise.
33068 (gimple_omp_single_set_clauses): Likewise.
33069 (gimple_omp_target_clauses): Likewise.
33070 (gimple_omp_target_clauses_ptr): Likewise.
33071 (gimple_omp_target_set_clauses): Likewise.
33072 (gimple_omp_target_child_fn): Likewise.
33073 (gimple_omp_target_child_fn_ptr): Likewise.
33074 (gimple_omp_target_set_child_fn): Likewise.
33075 (gimple_omp_target_data_arg): Likewise.
33076 (gimple_omp_target_data_arg_ptr): Likewise.
33077 (gimple_omp_target_set_data_arg): Likewise.
33078 (gimple_omp_teams_clauses): Likewise.
33079 (gimple_omp_teams_clauses_ptr): Likewise.
33080 (gimple_omp_teams_set_clauses): Likewise.
33081 (gimple_omp_sections_clauses): Likewise.
33082 (gimple_omp_sections_clauses_ptr): Likewise.
33083 (gimple_omp_sections_set_clauses): Likewise.
33084 (gimple_omp_sections_control): Likewise.
33085 (gimple_omp_sections_control_ptr): Likewise.
33086 (gimple_omp_sections_set_control): Likewise.
33087 (gimple_omp_for_set_cond): Likewise.
33088 (gimple_omp_for_cond): Likewise.
33089 (gimple_omp_atomic_store_set_val): Likewise.
33090 (gimple_omp_atomic_store_val): Likewise.
33091 (gimple_omp_atomic_store_val_ptr): Likewise.
33092 (gimple_omp_atomic_load_set_lhs): Likewise.
33093 (gimple_omp_atomic_load_lhs): Likewise.
33094 (gimple_omp_atomic_load_lhs_ptr): Likewise.
33095 (gimple_omp_atomic_load_set_rhs): Likewise.
33096 (gimple_omp_atomic_load_rhs): Likewise.
33097 (gimple_omp_atomic_load_rhs_ptr): Likewise.
33098 (gimple_omp_continue_control_def): Likewise.
33099 (gimple_omp_continue_control_def_ptr): Likewise.
33100 (gimple_omp_continue_set_control_def): Likewise.
33101 (gimple_omp_continue_control_use): Likewise.
33102 (gimple_omp_continue_control_use_ptr): Likewise.
33103 (gimple_omp_continue_set_control_use): Likewise.
33104 (gimple_transaction_body_ptr): Likewise.
33105 (gimple_transaction_label): Likewise.
33106 (gimple_transaction_label_ptr): Likewise.
33107 (gimple_transaction_set_body): Likewise.
33108 (gimple_transaction_set_label): Likewise.
33110 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
33111 * ipa-inline-analysis.c (inline_write_summary): Likewise.
33112 * ipa-ref.c (ipa_record_reference): Likewise.
33113 * ipa-reference.c (analyze_function): Likewise.
33114 (ipa_reference_write_optimization_summary): Likewise.
33115 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
33116 (address_taken_from_non_vtable_p): Likewise.
33117 (comdat_can_be_unshared_p_1): Likewise.
33118 * lto-cgraph.c (lto_output_ref): Likewise.
33119 (add_references): Likewise.
33120 (compute_ltrans_boundary): Likewise.
33121 (output_symtab): Likewise.
33122 (input_ref): Likewise.
33123 (input_cgraph_1): Likewise.
33124 (output_cgraph_opt_summary): Likewise.
33125 * lto-streamer-out.c (lto_output): Likewise.
33126 (output_symbol_p): Likewise.
33127 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
33128 (lsei_start_function_in_partition): Likewise.
33129 (lsei_next_variable_in_partition): Likewise.
33130 (lsei_start_variable_in_partition): Likewise.
33131 * symtab.c (insert_to_assembler_name_hash): Likewise.
33132 (unlink_from_assembler_name_hash): Likewise.
33133 (symtab_unregister_node): Likewise.
33134 (symtab_remove_node): Likewise.
33135 (dump_symtab_node): Likewise.
33136 (verify_symtab_base): Likewise.
33137 (verify_symtab_node): Likewise.
33138 (symtab_make_decl_local): Likewise.
33139 (symtab_alias_ultimate_target): Likewise.
33140 (symtab_resolve_alias): Likewise.
33141 (symtab_get_symbol_partitioning_class): Likewise.
33142 * tree-phinodes.c (allocate_phi_node): Likewise.
33143 (reserve_phi_args_for_new_edge): Likewise.
33144 (remove_phi_args): Likewise.
33145 * varpool.c (varpool_node_for_asm): Likewise.
33146 (varpool_remove_unreferenced_decls): Likewise.
33148 2014-04-23 Jeff Law <law@redhat.com>
33150 PR tree-optimization/60902
33151 * tree-ssa-threadedge.c
33152 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
33153 invalidate outputs from statements that do not produce useful
33154 outputs for threading.
33156 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
33158 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
33159 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
33160 machine descriptions for Stack Smashing Protector.
33162 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
33164 * aarch64.md (<optab>_rol<mode>3): New pattern.
33165 (<optab>_rolsi3_uxtw): Likewise.
33166 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
33168 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
33170 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
33171 (arm_cortex_a12_tune): Likewise.
33173 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33175 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
33177 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33179 * config/arm/arm.md (arm_rev16si2): New pattern.
33180 (arm_rev16si2_alt): Likewise.
33181 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
33183 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33185 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
33186 (rev16<mode>2_alt): Likewise.
33187 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
33188 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
33189 (aarch_rev16_shleft_mask_imm_p): Likewise.
33190 (aarch_rev16_p_1): Likewise.
33191 (aarch_rev16_p): Likewise.
33192 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
33193 (aarch_rev16_shright_mask_imm_p): Likewise.
33194 (aarch_rev16_shleft_mask_imm_p): Likewise.
33196 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33198 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
33199 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
33201 (cortex_a53_extra_costs): Likewise.
33202 (cortex_a57_extra_costs): Likewise.
33203 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
33204 (cortexa7_extra_costs): Likewise.
33205 (cortexa8_extra_costs): Likewise.
33206 (cortexa12_extra_costs): Likewise.
33207 (cortexa15_extra_costs): Likewise.
33208 (v7m_extra_costs): Likewise.
33209 (arm_new_rtx_costs): Handle BSWAP.
33211 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33213 * config/arm/arm.c (cortexa8_extra_costs): New table.
33214 (arm_cortex_a8_tune): New tuning struct.
33215 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
33217 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33219 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
33221 2014-04-23 Richard Biener <rguenther@suse.de>
33223 * Makefile.in (OBJS): Remove loop-unswitch.o.
33224 * tree-pass.h (make_pass_rtl_unswitch): Remove.
33225 * passes.def (pass_rtl_unswitch): Likewise.
33226 * loop-init.c (gate_rtl_unswitch): Likewise.
33227 (rtl_unswitch): Likewise.
33228 (pass_data_rtl_unswitch): Likewise.
33229 (pass_rtl_unswitch): Likewise.
33230 (make_pass_rtl_unswitch): Likewise.
33231 * rtl.h (reversed_condition): Likewise.
33232 (compare_and_jump_seq): Likewise.
33233 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
33235 * loop-unroll.c (compare_and_jump_seq): Likewise.
33237 2014-04-23 Richard Biener <rguenther@suse.de>
33239 PR tree-optimization/60903
33240 * tree-ssa-loop-im.c (analyze_memory_references): Remove
33241 commented code block.
33242 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
33243 loop flags to newly created BBs and edges.
33245 2014-04-23 Nick Clifton <nickc@redhat.com>
33247 * config/msp430/msp430.c (msp430_handle_option): Move function
33249 (msp430_option_override): Simplify mcu and mcpu option handling.
33250 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
33251 support for -mhwmult command line option.
33252 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
33253 -mhwmult command line option.
33254 (msp430_hwmult_enabled): Delete.
33255 (msp43o_output_labelref): Add support for -mhwmult command line option.
33256 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
33257 (umulsidi3): Likewise.
33258 * config/msp430/msp430.opt (mmcu): Add Report attribute.
33259 (mcpu, mlarge, msmall): Likewise.
33260 (mhwmult): New option.
33261 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
33263 (msp430_is_f5_mcu): Remove prototype.
33264 (msp430_use_f5_series_hwmult): Add prototype.
33265 * config/msp430/msp430-opts.h: New file.
33266 * common/config/msp430: New directory.
33267 * common/config/msp430/msp430-common.c: New file.
33268 * config.gcc (msp430): Remove target_has_targetm_common.
33269 * doc/invoke.texi: Document -mhwmult command line option.
33271 2014-04-23 Nick Clifton <nickc@redhat.com>
33273 * config/i386/cygwin.h (ENDFILE_SPEC): Include
33274 default-manifest.o if it can be found in the search path.
33275 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
33277 2014-04-23 Terry Guo <terry.guo@arm.com>
33279 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
33281 2014-04-23 Richard Biener <rguenther@suse.de>
33283 PR middle-end/60895
33284 * tree-inline.c (declare_return_variable): Use mark_addressable.
33286 2014-04-23 Richard Biener <rguenther@suse.de>
33288 PR middle-end/60891
33289 * loop-init.c (loop_optimizer_init): Make sure to apply
33290 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
33292 2014-04-22 Jakub Jelinek <jakub@redhat.com>
33295 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
33297 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
33298 if flag_sanitize_undefined_trap_on_error.
33299 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
33300 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
33301 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
33302 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
33303 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
33304 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
33305 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
33306 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
33307 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
33308 * ubsan.c (ubsan_instrument_unreachable): Return
33309 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
33310 (ubsan_expand_null_ifn): Emit __builtin_trap ()
33311 if flag_sanitize_undefined_trap_on_error and
33312 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
33313 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
33314 instrument_bool_enum_load): Emit __builtin_trap () if
33315 flag_sanitize_undefined_trap_on_error and
33316 __builtin_handle_*_abort () if !flag_sanitize_recover.
33317 * doc/invoke.texi (-fsanitize-recover,
33318 -fsanitize-undefined-trap-on-error): Document.
33320 2014-04-22 Christian Bruel <christian.bruel@st.com>
33322 * config/sh/sh.md (mov<mode>): Replace movQIHI.
33323 Force immediates to SImode.
33325 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
33327 * config/nios2/nios2.md (UNSPEC_ROUND): New.
33328 (lroundsfsi2): New.
33329 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
33330 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
33331 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
33332 (nios2_fpu_insn): Add entry for round.
33333 (N2FPU_NO_ERRNO_P): Define.
33334 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
33336 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
33338 2014-04-22 Richard Henderson <rth@redhat.com>
33340 * config/aarch64/aarch64 (addti3, subti3): New expanders.
33341 (add<GPI>3_compare0): Remove leading * from name.
33342 (add<GPI>3_carryin): Likewise.
33343 (sub<GPI>3_compare0): Likewise.
33344 (sub<GPI>3_carryin): Likewise.
33345 (<su_optab>mulditi3): New expander.
33346 (multi3): New expander.
33347 (madd<GPI>): Remove leading * from name.
33349 2014-04-22 Martin Jambor <mjambor@suse.cz>
33351 * cgraphclones.c (cgraph_function_versioning): Copy
33352 ipa_transforms_to_apply instead of asserting it is empty.
33354 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
33357 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
33358 on count_exp to get mode.
33360 2014-04-22 Andrew Pinski <apinski@cavium.com>
33362 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
33363 Handle TLS for ILP32.
33364 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
33365 (tlsie_small_<mode>): this and handle PTR.
33366 (tlsie_small_sidi): New pattern.
33367 (tlsle_small): Change to an expand to handle ILP32.
33368 (tlsle_small_<mode>): New pattern.
33369 (tlsdesc_small): Rename to ...
33370 (tlsdesc_small_<mode>): this and handle PTR.
33372 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33374 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
33376 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33378 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
33379 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
33380 (aarch64_types_signed_poly_qualifiers): Likewise.
33381 (aarch64_types_unsigned_signed_qualifiers): Likewise.
33382 (aarch64_types_poly_signed_qualifiers): Likewise.
33383 (TYPES_REINTERP_SS): Type macro added.
33384 (TYPES_REINTERP_SU): Likewise.
33385 (TYPES_REINTERP_SP): Likewise.
33386 (TYPES_REINTERP_US): Likewise.
33387 (TYPES_REINTERP_PS): Likewise.
33388 (aarch64_fold_builtin): New expression folding added.
33389 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
33390 Declarations removed.
33391 (REINTERP_SS): Declarations added.
33392 (REINTERP_US): Likewise.
33393 (REINTERP_PS): Likewise.
33394 (REINTERP_SU): Likewise.
33395 (REINTERP_SP): Likewise.
33396 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
33397 (vreinterpretq_p8_f64): Likewise.
33398 (vreinterpret_p16_f64): Likewise.
33399 (vreinterpretq_p16_f64): Likewise.
33400 (vreinterpret_f32_f64): Likewise.
33401 (vreinterpretq_f32_f64): Likewise.
33402 (vreinterpret_f64_f32): Likewise.
33403 (vreinterpret_f64_p8): Likewise.
33404 (vreinterpret_f64_p16): Likewise.
33405 (vreinterpret_f64_s8): Likewise.
33406 (vreinterpret_f64_s16): Likewise.
33407 (vreinterpret_f64_s32): Likewise.
33408 (vreinterpret_f64_s64): Likewise.
33409 (vreinterpret_f64_u8): Likewise.
33410 (vreinterpret_f64_u16): Likewise.
33411 (vreinterpret_f64_u32): Likewise.
33412 (vreinterpret_f64_u64): Likewise.
33413 (vreinterpretq_f64_f32): Likewise.
33414 (vreinterpretq_f64_p8): Likewise.
33415 (vreinterpretq_f64_p16): Likewise.
33416 (vreinterpretq_f64_s8): Likewise.
33417 (vreinterpretq_f64_s16): Likewise.
33418 (vreinterpretq_f64_s32): Likewise.
33419 (vreinterpretq_f64_s64): Likewise.
33420 (vreinterpretq_f64_u8): Likewise.
33421 (vreinterpretq_f64_u16): Likewise.
33422 (vreinterpretq_f64_u32): Likewise.
33423 (vreinterpretq_f64_u64): Likewise.
33424 (vreinterpret_s64_f64): Likewise.
33425 (vreinterpretq_s64_f64): Likewise.
33426 (vreinterpret_u64_f64): Likewise.
33427 (vreinterpretq_u64_f64): Likewise.
33428 (vreinterpret_s8_f64): Likewise.
33429 (vreinterpretq_s8_f64): Likewise.
33430 (vreinterpret_s16_f64): Likewise.
33431 (vreinterpretq_s16_f64): Likewise.
33432 (vreinterpret_s32_f64): Likewise.
33433 (vreinterpretq_s32_f64): Likewise.
33434 (vreinterpret_u8_f64): Likewise.
33435 (vreinterpretq_u8_f64): Likewise.
33436 (vreinterpret_u16_f64): Likewise.
33437 (vreinterpretq_u16_f64): Likewise.
33438 (vreinterpret_u32_f64): Likewise.
33439 (vreinterpretq_u32_f64): Likewise.
33441 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33443 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
33444 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
33445 (vreinterpret_p8_s8): Likewise.
33446 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
33447 (vreinterpret_p8_s16): Likewise.
33448 (vreinterpret_p8_s32): Likewise.
33449 (vreinterpret_p8_s64): Likewise.
33450 (vreinterpret_p8_f32): Likewise.
33451 (vreinterpret_p8_u8): Likewise.
33452 (vreinterpret_p8_u16): Likewise.
33453 (vreinterpret_p8_u32): Likewise.
33454 (vreinterpret_p8_u64): Likewise.
33455 (vreinterpret_p8_p16): Likewise.
33456 (vreinterpretq_p8_s8): Likewise.
33457 (vreinterpretq_p8_s16): Likewise.
33458 (vreinterpretq_p8_s32): Likewise.
33459 (vreinterpretq_p8_s64): Likewise.
33460 (vreinterpretq_p8_f32): Likewise.
33461 (vreinterpretq_p8_u8): Likewise.
33462 (vreinterpretq_p8_u16): Likewise.
33463 (vreinterpretq_p8_u32): Likewise.
33464 (vreinterpretq_p8_u64): Likewise.
33465 (vreinterpretq_p8_p16): Likewise.
33466 (vreinterpret_p16_s8): Likewise.
33467 (vreinterpret_p16_s16): Likewise.
33468 (vreinterpret_p16_s32): Likewise.
33469 (vreinterpret_p16_s64): Likewise.
33470 (vreinterpret_p16_f32): Likewise.
33471 (vreinterpret_p16_u8): Likewise.
33472 (vreinterpret_p16_u16): Likewise.
33473 (vreinterpret_p16_u32): Likewise.
33474 (vreinterpret_p16_u64): Likewise.
33475 (vreinterpret_p16_p8): Likewise.
33476 (vreinterpretq_p16_s8): Likewise.
33477 (vreinterpretq_p16_s16): Likewise.
33478 (vreinterpretq_p16_s32): Likewise.
33479 (vreinterpretq_p16_s64): Likewise.
33480 (vreinterpretq_p16_f32): Likewise.
33481 (vreinterpretq_p16_u8): Likewise.
33482 (vreinterpretq_p16_u16): Likewise.
33483 (vreinterpretq_p16_u32): Likewise.
33484 (vreinterpretq_p16_u64): Likewise.
33485 (vreinterpretq_p16_p8): Likewise.
33486 (vreinterpret_f32_s8): Likewise.
33487 (vreinterpret_f32_s16): Likewise.
33488 (vreinterpret_f32_s32): Likewise.
33489 (vreinterpret_f32_s64): Likewise.
33490 (vreinterpret_f32_u8): Likewise.
33491 (vreinterpret_f32_u16): Likewise.
33492 (vreinterpret_f32_u32): Likewise.
33493 (vreinterpret_f32_u64): Likewise.
33494 (vreinterpret_f32_p8): Likewise.
33495 (vreinterpret_f32_p16): Likewise.
33496 (vreinterpretq_f32_s8): Likewise.
33497 (vreinterpretq_f32_s16): Likewise.
33498 (vreinterpretq_f32_s32): Likewise.
33499 (vreinterpretq_f32_s64): Likewise.
33500 (vreinterpretq_f32_u8): Likewise.
33501 (vreinterpretq_f32_u16): Likewise.
33502 (vreinterpretq_f32_u32): Likewise.
33503 (vreinterpretq_f32_u64): Likewise.
33504 (vreinterpretq_f32_p8): Likewise.
33505 (vreinterpretq_f32_p16): Likewise.
33506 (vreinterpret_s64_s8): Likewise.
33507 (vreinterpret_s64_s16): Likewise.
33508 (vreinterpret_s64_s32): Likewise.
33509 (vreinterpret_s64_f32): Likewise.
33510 (vreinterpret_s64_u8): Likewise.
33511 (vreinterpret_s64_u16): Likewise.
33512 (vreinterpret_s64_u32): Likewise.
33513 (vreinterpret_s64_u64): Likewise.
33514 (vreinterpret_s64_p8): Likewise.
33515 (vreinterpret_s64_p16): Likewise.
33516 (vreinterpretq_s64_s8): Likewise.
33517 (vreinterpretq_s64_s16): Likewise.
33518 (vreinterpretq_s64_s32): Likewise.
33519 (vreinterpretq_s64_f32): Likewise.
33520 (vreinterpretq_s64_u8): Likewise.
33521 (vreinterpretq_s64_u16): Likewise.
33522 (vreinterpretq_s64_u32): Likewise.
33523 (vreinterpretq_s64_u64): Likewise.
33524 (vreinterpretq_s64_p8): Likewise.
33525 (vreinterpretq_s64_p16): Likewise.
33526 (vreinterpret_u64_s8): Likewise.
33527 (vreinterpret_u64_s16): Likewise.
33528 (vreinterpret_u64_s32): Likewise.
33529 (vreinterpret_u64_s64): Likewise.
33530 (vreinterpret_u64_f32): Likewise.
33531 (vreinterpret_u64_u8): Likewise.
33532 (vreinterpret_u64_u16): Likewise.
33533 (vreinterpret_u64_u32): Likewise.
33534 (vreinterpret_u64_p8): Likewise.
33535 (vreinterpret_u64_p16): Likewise.
33536 (vreinterpretq_u64_s8): Likewise.
33537 (vreinterpretq_u64_s16): Likewise.
33538 (vreinterpretq_u64_s32): Likewise.
33539 (vreinterpretq_u64_s64): Likewise.
33540 (vreinterpretq_u64_f32): Likewise.
33541 (vreinterpretq_u64_u8): Likewise.
33542 (vreinterpretq_u64_u16): Likewise.
33543 (vreinterpretq_u64_u32): Likewise.
33544 (vreinterpretq_u64_p8): Likewise.
33545 (vreinterpretq_u64_p16): Likewise.
33546 (vreinterpret_s8_s16): Likewise.
33547 (vreinterpret_s8_s32): Likewise.
33548 (vreinterpret_s8_s64): Likewise.
33549 (vreinterpret_s8_f32): Likewise.
33550 (vreinterpret_s8_u8): Likewise.
33551 (vreinterpret_s8_u16): Likewise.
33552 (vreinterpret_s8_u32): Likewise.
33553 (vreinterpret_s8_u64): Likewise.
33554 (vreinterpret_s8_p8): Likewise.
33555 (vreinterpret_s8_p16): Likewise.
33556 (vreinterpretq_s8_s16): Likewise.
33557 (vreinterpretq_s8_s32): Likewise.
33558 (vreinterpretq_s8_s64): Likewise.
33559 (vreinterpretq_s8_f32): Likewise.
33560 (vreinterpretq_s8_u8): Likewise.
33561 (vreinterpretq_s8_u16): Likewise.
33562 (vreinterpretq_s8_u32): Likewise.
33563 (vreinterpretq_s8_u64): Likewise.
33564 (vreinterpretq_s8_p8): Likewise.
33565 (vreinterpretq_s8_p16): Likewise.
33566 (vreinterpret_s16_s8): Likewise.
33567 (vreinterpret_s16_s32): Likewise.
33568 (vreinterpret_s16_s64): Likewise.
33569 (vreinterpret_s16_f32): Likewise.
33570 (vreinterpret_s16_u8): Likewise.
33571 (vreinterpret_s16_u16): Likewise.
33572 (vreinterpret_s16_u32): Likewise.
33573 (vreinterpret_s16_u64): Likewise.
33574 (vreinterpret_s16_p8): Likewise.
33575 (vreinterpret_s16_p16): Likewise.
33576 (vreinterpretq_s16_s8): Likewise.
33577 (vreinterpretq_s16_s32): Likewise.
33578 (vreinterpretq_s16_s64): Likewise.
33579 (vreinterpretq_s16_f32): Likewise.
33580 (vreinterpretq_s16_u8): Likewise.
33581 (vreinterpretq_s16_u16): Likewise.
33582 (vreinterpretq_s16_u32): Likewise.
33583 (vreinterpretq_s16_u64): Likewise.
33584 (vreinterpretq_s16_p8): Likewise.
33585 (vreinterpretq_s16_p16): Likewise.
33586 (vreinterpret_s32_s8): Likewise.
33587 (vreinterpret_s32_s16): Likewise.
33588 (vreinterpret_s32_s64): Likewise.
33589 (vreinterpret_s32_f32): Likewise.
33590 (vreinterpret_s32_u8): Likewise.
33591 (vreinterpret_s32_u16): Likewise.
33592 (vreinterpret_s32_u32): Likewise.
33593 (vreinterpret_s32_u64): Likewise.
33594 (vreinterpret_s32_p8): Likewise.
33595 (vreinterpret_s32_p16): Likewise.
33596 (vreinterpretq_s32_s8): Likewise.
33597 (vreinterpretq_s32_s16): Likewise.
33598 (vreinterpretq_s32_s64): Likewise.
33599 (vreinterpretq_s32_f32): Likewise.
33600 (vreinterpretq_s32_u8): Likewise.
33601 (vreinterpretq_s32_u16): Likewise.
33602 (vreinterpretq_s32_u32): Likewise.
33603 (vreinterpretq_s32_u64): Likewise.
33604 (vreinterpretq_s32_p8): Likewise.
33605 (vreinterpretq_s32_p16): Likewise.
33606 (vreinterpret_u8_s8): Likewise.
33607 (vreinterpret_u8_s16): Likewise.
33608 (vreinterpret_u8_s32): Likewise.
33609 (vreinterpret_u8_s64): Likewise.
33610 (vreinterpret_u8_f32): Likewise.
33611 (vreinterpret_u8_u16): Likewise.
33612 (vreinterpret_u8_u32): Likewise.
33613 (vreinterpret_u8_u64): Likewise.
33614 (vreinterpret_u8_p8): Likewise.
33615 (vreinterpret_u8_p16): Likewise.
33616 (vreinterpretq_u8_s8): Likewise.
33617 (vreinterpretq_u8_s16): Likewise.
33618 (vreinterpretq_u8_s32): Likewise.
33619 (vreinterpretq_u8_s64): Likewise.
33620 (vreinterpretq_u8_f32): Likewise.
33621 (vreinterpretq_u8_u16): Likewise.
33622 (vreinterpretq_u8_u32): Likewise.
33623 (vreinterpretq_u8_u64): Likewise.
33624 (vreinterpretq_u8_p8): Likewise.
33625 (vreinterpretq_u8_p16): Likewise.
33626 (vreinterpret_u16_s8): Likewise.
33627 (vreinterpret_u16_s16): Likewise.
33628 (vreinterpret_u16_s32): Likewise.
33629 (vreinterpret_u16_s64): Likewise.
33630 (vreinterpret_u16_f32): Likewise.
33631 (vreinterpret_u16_u8): Likewise.
33632 (vreinterpret_u16_u32): Likewise.
33633 (vreinterpret_u16_u64): Likewise.
33634 (vreinterpret_u16_p8): Likewise.
33635 (vreinterpret_u16_p16): Likewise.
33636 (vreinterpretq_u16_s8): Likewise.
33637 (vreinterpretq_u16_s16): Likewise.
33638 (vreinterpretq_u16_s32): Likewise.
33639 (vreinterpretq_u16_s64): Likewise.
33640 (vreinterpretq_u16_f32): Likewise.
33641 (vreinterpretq_u16_u8): Likewise.
33642 (vreinterpretq_u16_u32): Likewise.
33643 (vreinterpretq_u16_u64): Likewise.
33644 (vreinterpretq_u16_p8): Likewise.
33645 (vreinterpretq_u16_p16): Likewise.
33646 (vreinterpret_u32_s8): Likewise.
33647 (vreinterpret_u32_s16): Likewise.
33648 (vreinterpret_u32_s32): Likewise.
33649 (vreinterpret_u32_s64): Likewise.
33650 (vreinterpret_u32_f32): Likewise.
33651 (vreinterpret_u32_u8): Likewise.
33652 (vreinterpret_u32_u16): Likewise.
33653 (vreinterpret_u32_u64): Likewise.
33654 (vreinterpret_u32_p8): Likewise.
33655 (vreinterpret_u32_p16): Likewise.
33656 (vreinterpretq_u32_s8): Likewise.
33657 (vreinterpretq_u32_s16): Likewise.
33658 (vreinterpretq_u32_s32): Likewise.
33659 (vreinterpretq_u32_s64): Likewise.
33660 (vreinterpretq_u32_f32): Likewise.
33661 (vreinterpretq_u32_u8): Likewise.
33662 (vreinterpretq_u32_u16): Likewise.
33663 (vreinterpretq_u32_u64): Likewise.
33664 (vreinterpretq_u32_p8): Likewise.
33665 (vreinterpretq_u32_p16): Likewise.
33667 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33669 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
33671 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
33673 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
33674 (vqnegd_s64): Likewise.
33675 (vqabs_s64): Likewise.
33676 (vqabsd_s64): Likewise.
33678 2014-04-22 Richard Henderson <rth@redhat.com>
33680 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
33681 computation to the top of the loop.
33683 2014-04-22 Renlin <renlin.li@arm.com>
33684 Jiong Wang <jiong.wang@arm.com>
33686 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
33687 * config/aarch64/aarch64.c (aarch64_layout_frame)
33688 (aarch64_initial_elimination_offset): Likewise.
33690 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
33692 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
33695 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
33697 * machmode.h (bitwise_mode_for_mode): Declare.
33698 * stor-layout.h (bitwise_type_for_mode): Likewise.
33699 * stor-layout.c (bitwise_mode_for_mode): New function.
33700 (bitwise_type_for_mode): Likewise.
33701 * builtins.c (fold_builtin_memory_op): Use it instead of
33702 int_mode_for_mode and build_nonstandard_integer_type.
33704 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33706 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
33707 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
33708 (*-*-solaris2*): Simplify.
33709 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
33710 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
33711 *-*-solaris2.9* handling.
33713 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
33715 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
33716 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
33717 handling, simplify.
33718 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
33719 * configure: Regenerate.
33721 * config/i386/sol2-9.h: Remove.
33723 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
33724 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
33725 Remove Solaris 9 references.
33727 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
33729 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
33730 (floatuns<GPI:mode><GPF:mode>2): Remove.
33731 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
33732 and floatuns conversions.
33733 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
33734 and floatuns conversions.
33735 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
33736 (w1,w2): New mode attributes for inequal width conversions.
33738 2014-04-22 Renlin Li <Renlin.Li@arm.com>
33740 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
33741 the output asm format.
33743 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
33745 * config/aarch64/aarch64-simd.md
33746 (aarch64_cm<optab>di): Always split.
33747 (*aarch64_cm<optab>di): New.
33748 (aarch64_cmtstdi): Always split.
33749 (*aarch64_cmtstdi): New.
33751 2014-04-22 Jakub Jelinek <jakub@redhat.com>
33753 PR tree-optimization/60823
33754 * omp-low.c (ipa_simd_modify_function_body): Go through
33755 all SSA_NAMEs and for those refering to vector arguments
33756 which are going to be replaced adjust SSA_NAME_VAR and,
33757 if it is a default definition, change it into a non-default
33758 definition assigned at the beginning of function from new_decl.
33759 (ipa_simd_modify_stmt_ops): Rewritten.
33760 * tree-dfa.c (set_ssa_default_def): When removing default def,
33761 check for NULL loc instead of NULL *loc.
33763 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33765 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
33766 restrictions on core registers for DImode values in Thumb2.
33768 2014-04-22 Ian Bolton <ian.bolton@arm.com>
33770 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
33771 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
33773 2014-04-22 Ian Bolton <ian.bolton@arm.com>
33775 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
33776 (*iordi_notzesidi_di): Likewise.
33777 (*iordi_notsesidi_di): Likewise.
33779 2014-04-22 Ian Bolton <ian.bolton@arm.com>
33781 * config/arm/arm-protos.h (tune_params): New struct members.
33782 * config/arm/arm.c: Initialise tune_params per processor.
33783 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
33784 for speed, based on new tune_params.
33786 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
33788 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
33789 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
33790 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
33791 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
33792 * config/aarch64/arm_neon.h (vrnd_f64): Added.
33793 (vrnda_f64): Likewise.
33794 (vrndi_f64): Likewise.
33795 (vrndm_f64): Likewise.
33796 (vrndn_f64): Likewise.
33797 (vrndp_f64): Likewise.
33798 (vrndx_f64): Likewise.
33800 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
33802 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
33803 GET_MODE_SIZE argument is enum machine_mode.
33805 2014-04-22 Jakub Jelinek <jakub@redhat.com>
33808 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
33809 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
33811 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
33813 PR middle-end/60281
33814 * asan.c (asan_emit_stack_protection): Force the base to align to
33815 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
33816 appropriate bits if STRICT_ALIGNMENT.
33817 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
33819 (expand_used_vars): Leave a space in the stack frame for alignment
33820 if STRICT_ALIGNMENT.
33822 2014-04-21 David Malcolm <dmalcolm@redhat.com>
33824 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
33826 (gimple_store_p): Likewise.
33827 (gimple_assign_load_p): Likewise.
33828 (gimple_assign_cast_p): Likewise.
33829 (gimple_clobber_p): Likewise.
33831 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
33832 rather than a gimple.
33833 (gimple_assign_cast_p): Likewise.
33835 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
33838 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
33839 If mode is DDmode and TARGET_E500_DOUBLE allow move.
33841 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
33842 more debug information for E500 if -mdebug=reg.
33844 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
33847 * config/i386/i386.c (ix86_expand_builtin)
33848 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
33849 register for target RTX.
33850 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
33852 2014-04-18 Cong Hou <congh@google.com>
33854 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
33855 the widen-mult pattern by handling two operands with different sizes,
33856 and operands whose size is smaller than half of the result type.
33858 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
33860 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
33861 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
33862 (do_estimate_edge_time): Compute it.
33863 * ipa-inline.c (want_inline_small_function_p): Bypass
33864 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
33866 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
33868 * ipa-inline.c (spec_rem): New static variable.
33869 (dump_overall_stats): New function.
33870 (dump_inline_stats): New function.
33872 2014-04-18 Richard Henderson <rth@redhat.com>
33874 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
33875 to GET_MODE_SIZE, not a reg_class_t.
33877 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33879 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
33880 (vsx_xxmrglw_<mode>): Likewise.
33882 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
33885 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
33886 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
33887 (rs6000_init_hard_regno_mode_ok): Likewise.
33889 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
33891 * ipa-inline.c (inline_small_functions): Account only non-cold
33893 * doc/invoke.texi (inline-unit-growth): Update documentation.
33895 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
33897 * config/rs6000/rs6000.md (addti3, subti3): New.
33899 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
33902 * config/i386/i386.c (ix86_expand_clear): Remove outdated
33903 comment. Check optimize_insn_for_size_p instead of
33904 optimize_insn_for_speed_p.
33906 2014-04-17 Martin Jambor <mjambor@suse.cz>
33908 * gimple-iterator.c (gsi_start_edge): New function.
33909 * gimple-iterator.h (gsi_start_edge): Declare.
33910 * tree-sra.c (single_non_eh_succ): New function.
33911 (disqualify_ops_if_throwing_stmt): Renamed to
33912 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
33913 having one non-EH successor BB.
33914 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
33915 generate loads into replacements.
33916 (sra_modify_assign): Likewise and and also use the simple path for
33918 (sra_modify_function_body): Commit statements on edges.
33920 2014-04-17 Richard Biener <rguenther@suse.de>
33922 PR middle-end/60849
33923 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
33924 comparison results and add clarifying comment.
33926 2014-04-17 Jakub Jelinek <jakub@redhat.com>
33928 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
33929 (blank_mode): Initialize it.
33930 (emit_mode_size_inline, emit_mode_nunits_inline,
33931 emit_mode_inner_inline): New functions.
33932 (emit_insn_modes_h): Call them and surround their output with
33933 #if GCC_VERSION >= 4001 ... #endif.
33934 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
33935 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
33936 mode_* arrays if the argument is __builtin_constant_p.
33937 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
33938 is enum machine_mode.
33940 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
33942 * passes.c (opt_pass::execute): Adjust.
33943 (pass_manager::execute_pass_mode_switching): Likewise.
33944 (early_local_passes::execute): Likewise.
33945 (execute_one_pass): Pass cfun to the pass's execute method.
33946 * tree-pass.h (opt_pass::execute): Add function * argument.
33947 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
33948 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
33949 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
33950 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
33951 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
33952 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
33953 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
33954 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
33955 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
33956 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
33957 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
33958 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
33959 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
33960 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
33961 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
33962 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
33963 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
33964 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
33965 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
33966 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
33967 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
33968 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
33969 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
33970 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
33971 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
33972 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
33973 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
33974 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
33975 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
33978 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
33980 * passes.c (opt_pass::gate): Take function * argument.
33981 (gate_all_early_local_passes): Merge into
33982 (early_local_passes::gate): this.
33983 (gate_all_early_optimizations): Merge into
33984 (all_early_optimizations::gate): this.
33985 (gate_all_optimizations): Mege into
33986 (all_optimizations::gate): this.
33987 (gate_all_optimizations_g): Merge into
33988 (all_optimizations_g::gate): this.
33989 (gate_rest_of_compilation): Mege into
33990 (rest_of_compilation::gate): this.
33991 (gate_postreload): Merge into
33992 (postreload::gate): this.
33993 (dump_one_pass): Pass cfun to the pass's gate method.
33994 (execute_ipa_summary_passes): Likewise.
33995 (execute_one_pass): Likewise.
33996 (ipa_write_summaries_2): Likewise.
33997 (ipa_write_optimization_summaries_1): Likewise.
33998 (ipa_read_summaries_1): Likewise.
33999 (ipa_read_optimization_summaries_1): Likewise.
34000 (execute_ipa_stmt_fixups): Likewise.
34001 * tree-pass.h (opt_pass::gate): Add function * argument.
34002 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
34003 combine-stack-adj.c, combine.c, compare-elim.c,
34004 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
34005 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
34006 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
34007 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
34008 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
34009 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
34010 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
34011 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
34012 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
34013 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
34014 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
34015 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
34016 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
34017 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
34018 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
34019 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
34020 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
34021 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
34022 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
34023 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
34024 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
34025 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
34026 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
34027 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
34028 var-tracking.c, vtable-verify.c, web.c: Adjust.
34030 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34032 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
34033 * configure: Regenerate.
34035 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34037 * passes.c (dump_one_pass): don't check pass->has_gate.
34038 (execute_ipa_summary_passes): Likewise.
34039 (execute_one_pass): Likewise.
34040 (ipa_write_summaries_2): Likewise.
34041 (ipa_write_optimization_summaries_1): Likewise.
34042 (ipa_read_optimization_summaries_1): Likewise.
34043 (execute_ipa_stmt_fixups): Likewise.
34044 * tree-pass.h (pass_data::has_gate): Remove.
34045 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
34046 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
34047 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
34048 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
34049 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
34050 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
34051 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
34052 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
34053 gimple-low.c, gimple-ssa-isolate-paths.c,
34054 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
34055 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
34056 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
34057 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
34058 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
34059 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
34060 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
34061 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
34062 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
34063 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
34064 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
34065 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
34066 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
34067 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
34068 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
34069 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
34070 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
34071 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
34072 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
34073 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
34074 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
34075 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
34078 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34080 * pass_manager.h (pass_manager::register_dump_files_1): Remove
34082 * passes.c (pass_manager::register_dump_files_1): Merge into
34083 (pass_manager::register_dump_files): this, and remove its handling of
34084 properties since the pass always has the properties anyway.
34085 (pass_manager::pass_manager): Adjust.
34087 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
34089 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
34090 * passes.c (pass_manager::register_dump_files_1): Remove dead code
34091 dealing with properties.
34092 (pass_manager::register_dump_files): Adjust.
34094 2014-03-20 Mark Wielaard <mjw@redhat.com>
34096 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
34097 then represent the bound as normal constant value.
34099 2014-04-17 Jakub Jelinek <jakub@redhat.com>
34102 Forward port from 4.8 branch
34103 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
34105 * config/i386/bmiintrin.h (_blsi_u32): New.
34106 (_blsi_u64): Ditto.
34107 (_blsr_u32): Ditto.
34108 (_blsr_u64): Ditto.
34109 (_blsmsk_u32): Ditto.
34110 (_blsmsk_u64): Ditto.
34111 (_tzcnt_u32): Ditto.
34112 (_tzcnt_u64): Ditto.
34114 2014-04-17 Kito Cheng <kito@0xlab.org>
34116 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
34118 2014-04-17 Richard Biener <rguenther@suse.de>
34120 PR middle-end/60849
34121 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
34122 boolean results for comparisons.
34124 2014-04-17 Richard Biener <rguenther@suse.de>
34126 PR tree-optimization/60836
34127 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
34128 initial PHI args to be gimple values.
34130 2014-04-17 Richard Biener <rguenther@suse.de>
34132 PR tree-optimization/60841
34133 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
34134 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
34135 of stmts to SLP build.
34136 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
34137 (vect_analyze_slp): Likewise.
34138 (vect_analyze_slp_instance): Likewise.
34139 (vect_build_slp_tree): Limit overall SLP tree growth.
34140 * tree-vectorizer.h (vect_analyze_data_refs,
34141 vect_analyze_slp): Adjust prototypes.
34143 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
34145 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
34148 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
34150 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
34151 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
34152 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
34153 for TARGET_SLOW_PSHUFB
34155 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
34157 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
34158 * config/i386/i386.c (intel_cost): Ditto.
34160 2014-04-17 Joey Ye <joey.ye@arm.com>
34162 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
34164 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
34166 * opts.c (common_handle_option): Disable -fipa-reference coorectly
34167 with -fuse-profile.
34169 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
34171 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
34172 (type_all_derivations_known_p): New predicate.
34173 (type_all_ctors_visible_p): New predicate.
34174 (type_possibly_instantiated_p): New predicate.
34175 (get_odr_type): Compute all_derivations_known.
34176 (dump_odr_type): Dump the flag.
34177 (maybe_record_type): Cleanup.
34178 (record_target_from_binfo): Add bases_to_consider array;
34179 record bases for types w/o instances and skip CXX destructor.
34180 (possible_polymorphic_call_targets_1): Add bases_to_consider
34181 and consider_construction parameters; check if type may have instance.
34182 (get_polymorphic_call_info): Set maybe_in_construction to true
34183 when we know nothing.
34184 (record_targets_from_bases): Skip CXX destructors; they are
34185 never called for types in construction.
34186 (possible_polymorphic_call_targets): Do not record target when
34187 type may not have instance.
34189 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
34192 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
34193 external aliases alive, too.
34195 2014-04-16 Andrew Pinski <apinski@cavium.com>
34197 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
34200 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
34202 * final.c (compute_alignments): Do not apply loop alignment to a block
34203 falling through to the exit.
34205 2014-04-16 Catherine Moore <clm@codesourcery.com>
34207 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
34208 Adjust constraints for microMIPS store patterns.
34210 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
34212 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
34214 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
34216 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
34217 (append_use): Run at -O0.
34218 (append_vdef): Likewise.
34219 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
34220 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
34222 2014-04-16 Jakub Jelinek <jakub@redhat.com>
34224 PR tree-optimization/60844
34225 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
34226 (propagate_op_to_single_use, remove_visited_stmt_chain,
34227 linearize_expr, repropagate_negates, reassociate_bb): Use it
34228 instead of gsi_remove.
34230 2014-04-16 Martin Jambor <mjambor@suse.cz>
34232 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
34233 ipa_transforms_to_apply.
34234 (cgraph_function_versioning): Assert that old_node has empty
34235 ipa_transforms_to_apply.
34236 * trans-mem.c (ipa_tm_create_version): Likewise.
34237 * tree-inline.c (tree_function_versioning): Do not duplicate
34238 ipa_transforms_to_apply.
34240 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34243 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
34245 Pass necessary as flags on 64-bit Solaris/x86.
34246 Use lowercase relocs for x86_64-*-*.
34247 * configure: Regenerate.
34249 2014-04-15 Jan Hubicka <jh@suse.cz>
34251 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
34252 (maybe_record_node, likely_target_p): Use it.
34254 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34257 Revert following patch
34259 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
34262 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
34263 software floating point or no floating point registers, do not
34264 allow any type in the FPRs. Eliminate a test for SPE SIMD types
34265 in GPRs that occurs after we tested for GPRs that would never be
34268 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
34269 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
34270 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
34271 specifically allow DDmode, since that does not use the SPE SIMD
34274 2014-03-21 Mark Wielaard <mjw@redhat.com>
34276 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
34277 as unsigned or int depending on type and value used.
34279 2014-04-15 Richard Biener <rguenther@suse.de>
34281 PR rtl-optimization/56965
34282 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
34283 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
34285 * alias.c (true_dependence_1): Do not call
34286 nonoverlapping_component_refs_p.
34287 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
34288 nonoverlapping_component_refs_p.
34289 (indirect_refs_may_alias_p): Likewise.
34291 2014-04-15 Teresa Johnson <tejohnson@google.com>
34293 * cfg.c (dump_bb_info): Fix flags check.
34294 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
34296 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34298 PR rtl-optimization/60663
34299 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
34302 2014-04-15 Richard Biener <rguenther@suse.de>
34304 * lto-streamer.h (LTO_major_version): Bump to 4.
34306 2014-04-15 Richard Biener <rguenther@suse.de>
34308 * common.opt (lto_partition_model): New enum.
34309 (flto-partition=): Merge separate options with a single with argument,
34310 add -flto-partition=one support.
34311 * flag-types.h (enum lto_partition_model): Declare.
34312 * opts.c (finish_options): Remove duplicate -flto-partition=
34314 * lto-wrapper.c (run_gcc): Adjust.
34316 2014-04-15 Richard Biener <rguenther@suse.de>
34318 * alias.c (ncr_compar): New function.
34319 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
34321 2014-04-15 Richard Biener <rguenther@suse.de>
34323 * alias.c (record_component_aliases): Do not walk BINFOs.
34325 2014-04-15 Richard Biener <rguenther@suse.de>
34327 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
34328 Add struct function argument and adjust.
34329 (find_func_aliases_for_call): Likewise.
34330 (find_func_aliases): Likewise.
34331 (find_func_clobbers): Likewise.
34332 (intra_create_variable_infos): Likewise.
34333 (compute_points_to_sets): Likewise.
34334 (ipa_pta_execute): Adjust. Do not push/pop cfun.
34336 2014-04-15 Richard Biener <rguenther@suse.de>
34338 * tree.c (iterative_hash_expr): Use enum tree_code_class
34339 to store TREE_CODE_CLASS.
34340 (tree_block): Likewise.
34341 (tree_set_block): Likewise.
34342 * tree.h (fold_build_pointer_plus_loc): Use
34343 convert_to_ptrofftype_loc.
34345 2014-04-15 Jakub Jelinek <jakub@redhat.com>
34348 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
34351 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
34353 * cfgloop.h (struct loop): Move force_vectorize down.
34354 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
34355 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
34356 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
34357 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
34358 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
34359 * tree-core.h (enum annot_expr_kind): Add new kind values.
34360 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
34361 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
34363 * tree.def (ANNOTATE_EXPR): Tweak comment.
34365 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
34367 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
34370 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
34372 * tree.h (TYPE_IDENTIFIER): Declare.
34373 * tree.c (subrange_type_for_debug_p): Use it.
34374 * godump.c (go_format_type): Likewise.
34375 * dwarf2out.c (is_cxx_auto, modified_type_die,
34376 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
34377 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
34379 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
34382 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
34384 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
34386 * config/i386/i386.c (examine_argument): Return bool. Return true if
34387 parameter should be passed in memory.
34388 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
34389 (construct_container): Update calls to examine_argument.
34390 (function_arg_advance_64): Ditto.
34391 (return_in_memory_32): Merge with ix86_return_in_memory.
34392 (return_in_memory_64): Ditto.
34393 (return_in_memory_ms_64): Ditto.
34395 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
34397 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
34398 * coverage.c (coverage_compute_profile_id): Handle externally visible
34401 2014-04-14 Martin Jambor <mjambor@suse.cz>
34403 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
34404 DECL_DISREGARD_INLINE_LIMITS functions.
34406 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
34409 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
34411 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
34414 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
34415 optimize_insn_for_speed_p instead of
34416 optimize_function_for_speed_p.
34418 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
34420 * doc/invoke.texi (free): Document AArch64.
34422 2014-04-14 Richard Biener <rguenther@suse.de>
34424 PR tree-optimization/60042
34425 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
34426 (insert_into_preds_of_block): Do not prevent PHI insertion
34427 for REFERENCE exprs here ...
34428 (eliminate_dom_walker::before_dom_children): ... but prevent
34429 their use here under similar conditions when applied to the
34430 IL after PRE optimizations.
34432 2014-04-14 Richard Biener <rguenther@suse.de>
34434 * passes.def: Move early points-to after early SRA.
34436 2014-04-14 Richard Biener <rguenther@suse.de>
34438 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
34439 check for which sign-changes we allow when forwarding
34440 a converted value into a switch.
34442 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
34444 * stor-layout.c (place_field): Finalize non-constant offset for the
34447 2014-04-14 Richard Biener <rguenther@suse.de>
34449 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
34451 (expand_switch_using_bit_tests_p): Likewise.
34452 (process_switch): Compute and pass on speed_p based on the
34454 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
34455 optimize_bb_for_speed_p.
34457 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
34459 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
34460 * function.h (struct function): Rename has_force_vect_loops into
34461 has_force_vectorize_loops.
34462 * lto-streamer-in.c (input_cfg): Adjust for renaming.
34463 (input_struct_function_base): Likewise.
34464 * lto-streamer-out.c (output_cfg): Likewise.
34465 (output_struct_function_base): Likewise.
34466 * omp-low.c (expand_omp_simd): Likewise.
34467 * tree-cfg.c (move_sese_region_to_fn): Likewise.
34468 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
34469 (version_loop_for_if_conversion): Likewise.
34470 (tree_if_conversion): Likewise.
34471 (main_tree_if_conversion): Likewise.
34472 (gate_tree_if_conversion): Likewise.
34473 * tree-inline.c (copy_loops): Likewise.
34474 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
34475 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
34476 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
34477 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
34478 * tree-vectorizer.c (vectorize_loops): Likewise.
34479 * tree-vectorizer.h (unlimited_cost_model): Likewise.
34481 2014-04-14 Richard Biener <rguenther@suse.de>
34484 * lto-streamer-out.c (wrap_refs): New function.
34485 (lto_output): Wrap symbol references in global initializes in
34486 type-preserving MEM_REFs.
34488 2014-04-14 Christian Bruel <christian.bruel@st.com>
34490 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
34492 2014-04-14 Christian Bruel <christian.bruel@st.com>
34494 * config/sh/sh.md (setmemqi): New expand pattern.
34495 * config/sh/sh.h (CLEAR_RATIO): Define.
34496 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
34497 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
34499 2014-04-14 Richard Biener <rguenther@suse.de>
34501 PR middle-end/55022
34502 * fold-const.c (negate_expr_p): Don't negate directional rounding
34504 (fold_negate_expr): Likewise.
34506 2014-04-14 Richard Biener <rguenther@suse.de>
34508 PR tree-optimization/59817
34509 PR tree-optimization/60453
34510 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
34511 recursion to catch all CHRECs in the scalar evolution and restrict
34512 the predicate for the remains appropriately.
34514 2014-04-12 Catherine Moore <clm@codesourcery.com>
34516 * config/mips/constraints.md: Add new register constraint "kb".
34517 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
34518 (*movhi_internal): Likewise.
34519 (*movqi_internal): Likewise.
34520 * config/mips/mips.h (M16_STORE_REGS): New register class.
34521 (REG_CLASS_NAMES): Add M16_STORE_REGS.
34522 (REG_CLASS_CONTENTS): Likewise.
34523 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
34525 2014-04-11 Tobias Burnus <burnus@net-b.de>
34528 * doc/invoke.texi (-Wformat-signedness): Document it.
34529 (Wformat=2): Mention that this enables -Wformat-signedness.
34531 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
34533 * common/config/epiphany/epiphany-common.c
34534 (epiphany_option_optimization_table): Enable section anchors by
34535 default at -O1 or higher.
34536 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
34537 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
34538 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
34539 carries no extra cost.
34540 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
34541 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
34542 * config/epiphany/predicates.md (memclob_operand): New predicate.
34543 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
34544 Use memclob_operand predicate and X constraint for operand 3.
34546 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
34548 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
34549 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
34552 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
34554 PR rtl-optimization/60651
34555 * mode-switching.c (optimize_mode_switching): Make sure to emit
34556 sets of a lower numbered entity before sets of a higher numbered
34557 entity to a mode of the same or lower priority.
34558 When creating a seginfo for a basic block that starts with a code
34559 label, move the insertion point past the code label.
34560 (new_seginfo): Document and enforce requirement that
34561 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
34562 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
34563 * doc/tm.texi: Regenerate.
34565 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
34568 * config/arc/arc.c (arc_save_restore): Fix assert typo.
34570 2013-04-11 Jakub Jelinek <jakub@redhat.com>
34572 * BASE-VER: Set to 4.10.0.
34574 2014-04-11 Tobias Burnus <burnus@net-b.de>
34577 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
34578 * doc/gcc.texi (Service): Update description in the @menu
34579 * doc/invoke.texi (Option Summary): Remove misplaced and
34582 2014-04-11 Steve Ellcey <sellcey@mips.com>
34583 Jakub Jelinek <jakub@redhat.com>
34585 PR middle-end/60556
34586 * expr.c (convert_move): Use emit_store_flag_force instead of
34587 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
34590 2014-04-11 Richard Biener <rguenther@suse.de>
34592 PR middle-end/60797
34593 * varasm.c (assemble_alias): Avoid endless error reporting
34594 recursion by setting TREE_ASM_WRITTEN.
34596 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34598 * config/s390/s390.md: Add a splitter for NOT rtx.
34600 2014-04-11 Jakub Jelinek <jakub@redhat.com>
34602 PR rtl-optimization/60663
34603 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
34605 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
34606 Jakub Jelinek <jakub@redhat.com>
34609 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
34610 flag from decl_node to node.
34612 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34615 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
34616 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
34617 ameliorating the cases where it can be.
34619 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
34622 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
34624 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
34625 (loadsync_<mode>): Change mode.
34626 (load_quadpti, store_quadpti): New.
34627 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
34628 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
34629 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
34631 2014-04-09 Cong Hou <congh@google.com>
34634 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
34637 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34639 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
34640 instead of vnor to exploit possible fusion opportunity in the
34642 (altivec_expand_vec_perm_const_le): Likewise.
34644 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
34646 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
34647 (loadsync_<mode>): Change mode.
34648 (load_quadpti, store_quadpti): New.
34649 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
34650 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
34652 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
34655 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
34656 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
34657 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
34659 2014-04-08 Richard Biener <rguenther@suse.de>
34661 PR middle-end/60706
34662 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
34663 a 64bit widest int print double-int similar to on HWI64 hosts.
34665 2014-04-08 Richard Biener <rguenther@suse.de>
34667 PR tree-optimization/60785
34668 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
34669 default defs properly.
34671 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
34673 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
34674 (Weffc++): Likewise.
34676 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
34678 * ipa-devirt.c (maybe_record_node): When node is not recorded,
34679 set completep to false rather than true.
34681 2014-04-07 Douglas B Rupp <rupp@adacore.com>
34684 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
34685 ARM_TARGET2_DWARF_FORMAT.
34687 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
34690 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
34691 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
34694 2014-04-07 Richard Biener <rguenther@suse.de>
34696 PR tree-optimization/60766
34697 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
34698 (may_eliminate_iv): Convert cand_value_at result to desired type.
34700 2014-04-07 Jason Merrill <jason@redhat.com>
34703 * common.opt (-fno-gnu-unique): Add.
34704 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
34706 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34708 * haifa-sched.c: Fix outdated function reference and minor
34709 grammar errors in introductory comment.
34711 2014-04-07 Richard Biener <rguenther@suse.de>
34713 PR middle-end/60750
34714 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
34715 for noreturn calls.
34716 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
34718 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
34721 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
34722 size accounting for thunks.
34723 (pa_asm_output_mi_thunk): Use final_start_function() and
34724 final_end_function() to output function start and end directives.
34726 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
34728 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
34729 device specific ISA/ feature information. Remove short_sp and
34730 errata_skip ds. Add avr_device_specific_features enum to have device
34732 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
34733 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
34734 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
34735 updated device specific info.
34736 * config/avr/avr-mcus.def: Merge device specific details to
34737 dev_attribute field.
34738 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
34740 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
34741 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
34742 assembler if RMW isa supported by current device.
34743 * config/avr/genmultilib.awk: Update as device info structure changed.
34744 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
34746 2014-04-04 Cong Hou <congh@google.com>
34748 PR tree-optimization/60656
34749 * tree-vect-stmts.c (supportable_widening_operation):
34750 Fix a bug that elements in a vector with vect_used_by_reduction
34751 property are incorrectly reordered when the operation on it is not
34752 consistant with the one in reduction operation.
34754 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
34756 PR rtl-optimization/60155
34757 * gcse.c (record_set_data): New function.
34758 (single_set_gcse): New function.
34759 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
34760 (hoist_code): Likewise.
34761 (get_pressure_class_and_nregs): Likewise.
34763 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
34765 * explow.c (probe_stack_range): Emit a final optimization blockage.
34767 2014-04-04 Anthony Green <green@moxielogic.com>
34769 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
34772 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
34775 * lto-cgraph.c (input_overwrite_node): Check that partitioning
34776 flags are set only during streaming.
34777 * ipa.c (process_references, walk_polymorphic_call_targets,
34778 symtab_remove_unreachable_nodes): Drop bodies of always inline
34779 after early inlining.
34780 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
34782 2014-04-04 Jakub Jelinek <jakub@redhat.com>
34783 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34786 * dwarf2out.c (const_ok_for_output_1): Reject expressions
34789 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34792 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
34794 (cortex_a53_fdivd): Likewise.
34796 2014-04-04 Martin Jambor <mjambor@suse.cz>
34799 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
34800 Adjust all callers.
34801 * cgraph.c (clone_of_p): Also return true if thunks match.
34802 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
34803 cgraph_function_or_thunk_node and an obsolete comment.
34804 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
34806 (build_function_decl_skip_args): Likewise.
34807 (set_new_clone_decl_and_node_flags): New function.
34808 (duplicate_thunk_for_node): Likewise.
34809 (redirect_edge_duplicating_thunks): Likewise.
34810 (cgraph_clone_node): New parameter args_to_skip, pass it to
34811 redirect_edge_duplicating_thunks which is called instead of
34812 cgraph_redirect_edge_callee.
34813 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
34814 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
34816 2014-04-04 Jeff Law <law@redhat.com>
34819 * config/arm/predicates.md (const_int_I_operand): New predicate.
34820 (const_int_M_operand): Similarly.
34821 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
34823 (insv_t2, extv_reg, extzv_t2): Likewise.
34824 (load_multiple_with_writeback): Similarly for const_int_I_operand.
34825 (pop_multiple_with_writeback_and_return): Likewise.
34826 (vfp_pop_multiple_with_writeback): Likewise
34828 2014-04-04 Richard Biener <rguenther@suse.de>
34831 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
34832 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
34834 * gimplify.h (gimple_add_tmp_var_fn): Declare.
34835 * gimplify.c (gimple_add_tmp_var_fn): New function.
34836 * gimple-expr.h (create_tmp_reg_fn): Declare.
34837 * gimple-expr.c (create_tmp_reg_fn): New function.
34838 * gimple-low.c (record_vars_into): Don't change cfun.
34839 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
34840 code generation without cfun.
34842 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
34845 * Makefile.in (install-driver): Fix shell scripting.
34847 2014-04-03 Cong Hou <congh@google.com>
34849 PR tree-optimization/60505
34850 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
34851 threshold of number of iterations below which no vectorization
34853 * tree-vect-loop.c (new_loop_vec_info):
34854 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
34855 * tree-vect-loop.c (vect_analyze_loop_operations):
34856 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
34857 * tree-vect-loop.c (vect_transform_loop):
34858 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
34859 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
34860 of iterations of the loop and see if we should build the epilogue.
34862 2014-04-03 Richard Biener <rguenther@suse.de>
34864 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
34865 (streamer_tree_cache_create): Adjust.
34866 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
34867 to allow optional nodes array.
34868 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
34869 (streamer_tree_cache_append): Likewise.
34870 (streamer_tree_cache_create): Create nodes array optionally
34871 as specified by parameter.
34872 * lto-streamer-out.c (create_output_block): Avoid maintaining
34873 the node array in the writer cache.
34874 (DFS_write_tree): Remove assertion.
34875 (produce_asm_for_decls): Free the out decl state hash table early.
34876 * lto-streamer-in.c (lto_data_in_create): Adjust for
34877 streamer_tree_cache_create prototype change.
34879 2014-04-03 Richard Biener <rguenther@suse.de>
34881 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
34882 set TREE_CHAIN to NULL_TREE.
34884 2014-04-03 Richard Biener <rguenther@suse.de>
34886 PR tree-optimization/60740
34887 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
34888 over all GIMPLE_COND operands.
34890 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
34892 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
34893 (Weffc++): Remove Scott's numbering, merge lists and reference
34896 2014-04-03 Nick Clifton <nickc@redhat.com>
34898 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
34901 2014-04-03 Martin Jambor <mjambor@suse.cz>
34903 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
34904 mention gcc_unreachable before failing.
34905 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
34908 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
34911 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
34912 inconsistent code and instead mark the context inconsistent.
34913 (possible_polymorphic_call_targets): For inconsistent contexts
34914 return empty complete list.
34916 2014-04-02 Anthony Green <green@moxielogic.com>
34918 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
34919 (extendqisi2, extendhisi2): Define.
34920 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
34921 (WCHAR_TYPE): Change to unsigned int.
34923 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34925 PR tree-optimization/60733
34926 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
34927 insertion point for PHI candidates to be the end of the feeding
34928 block for the PHI argument.
34930 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
34932 PR rtl-optimization/60650
34933 * lra-constraints.c (process_alt_operands): Decrease reject for
34934 earlyclobber matching.
34936 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34938 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
34940 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34942 * config/spu/spu.c (pad_bb): Do not crash when the last
34943 insn is CODE_FOR_blockage.
34945 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34947 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
34948 lies outside the target mode.
34950 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
34953 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
34954 software floating point or no floating point registers, do not
34955 allow any type in the FPRs. Eliminate a test for SPE SIMD types
34956 in GPRs that occurs after we tested for GPRs that would never be
34959 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
34960 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
34961 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
34962 specifically allow DDmode, since that does not use the SPE SIMD
34965 2014-04-02 Richard Biener <rguenther@suse.de>
34967 PR middle-end/60729
34968 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
34969 MODE_INTs. Properly use negv_optab.
34970 (expand_abs): Likewise.
34972 2014-04-02 Richard Biener <rguenther@suse.de>
34975 * Makefile.in (install-driver): Guard extra installs with special
34978 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
34980 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
34981 Document vec_vgbbd.
34983 2014-04-01 Richard Henderson <rth@redhat.com>
34986 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
34987 alternative enabled before register allocation.
34989 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
34991 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
34992 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
34994 (nios2_large_got_address): Remove unneeded 'sym' parameter.
34995 (nios2_got_address): Update nios2_large_got_address call site.
34996 (nios2_delegitimize_address): New function.
34997 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
34998 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
34999 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
35001 2014-04-01 Martin Husemann <martin@duskware.de>
35003 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
35006 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
35008 PR rtl-optimization/60604
35009 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
35010 check from register_operand.
35011 (register_operand): Redefine in terms of general_operand.
35012 (nonmemory_operand): Use register_operand for the non-constant cases.
35014 2014-04-01 Richard Biener <rguenther@suse.de>
35016 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
35018 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
35020 * doc/invoke.texi (mapp-regs): Clarify.
35022 2014-03-31 Ulrich Drepper <drepper@gmail.com>
35024 * config/i386/avx512fintrin.h (__v32hi): Define type.
35025 (__v64qi): Likewise.
35026 (_mm512_set1_epi8): Define.
35027 (_mm512_set1_epi16): Define.
35028 (_mm512_set4_epi32): Define.
35029 (_mm512_set4_epi64): Define.
35030 (_mm512_set4_pd): Define.
35031 (_mm512_set4_ps): Define.
35032 (_mm512_setr4_epi64): Define.
35033 (_mm512_setr4_epi32): Define.
35034 (_mm512_setr4_pd): Define.
35035 (_mm512_setr4_ps): Define.
35036 (_mm512_setzero_epi32): Define.
35038 2014-03-31 Martin Jambor <mjambor@suse.cz>
35040 PR middle-end/60647
35041 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
35042 callsite_arguments_match_p. Updated all callers. Also check types of
35043 corresponding formal parameters and actual arguments.
35044 (not_all_callers_have_enough_arguments_p) Renamed to
35045 some_callers_have_mismatched_arguments_p.
35047 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
35049 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
35051 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
35054 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
35057 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
35059 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
35060 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
35062 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
35063 Use FMAMODE_NOVF512 mode iterator.
35064 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
35065 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
35066 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
35067 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
35069 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
35070 Use VF_128_256 mode iterator.
35071 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
35074 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
35076 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
35077 static chain if needed.
35079 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
35082 * lra-constraints.c (index_part_to_reg): New.
35083 (process_address): Use it.
35085 2014-03-27 Jeff Law <law@redhat.com>
35086 Jakub Jelinek <jakub@redhat.com>
35089 * expr.c (do_tablejump): Use simplify_gen_binary rather than
35090 gen_rtx_{PLUS,MULT} to build up the address expression.
35092 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
35093 creating non-canonical RTL.
35095 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
35098 * ipa-inline.c (want_inline_small_function_p): Short circuit large
35099 functions; reorganize to make cheap checks first.
35100 (inline_small_functions): Do not estimate growth when dumping;
35102 * ipa-inline.h (inline_summary): Add min_size.
35103 (growth_likely_positive): New function.
35104 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
35105 (set_cond_stmt_execution_predicate): Cleanup.
35106 (estimate_edge_size_and_time): Compute min_size.
35107 (estimate_calls_size_and_time): Likewise.
35108 (estimate_node_size_and_time): Likewise.
35109 (inline_update_overall_summary): Update min_size.
35110 (do_estimate_edge_time): Likewise.
35111 (do_estimate_edge_size): Update.
35112 (do_estimate_edge_hints): Update.
35113 (growth_likely_positive): New function.
35115 2014-03-28 Jakub Jelinek <jakub@redhat.com>
35118 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
35119 also if addr has VOIDmode.
35121 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35123 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
35124 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
35126 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
35127 instructions as well as AdvancedSIMD loads.
35129 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35131 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
35132 Use crypto_aese type.
35133 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
35134 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
35135 crypto_aese, crypto_aesmc. Move to types.md.
35136 * config/arm/types.md (crypto_aes): Split into crypto_aese,
35138 * config/arm/iterators.md (crypto_type): Likewise.
35140 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
35142 * cgraph.c: Include expr.h and tree-dfa.h.
35143 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
35146 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
35149 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
35150 regs from checking multi-reg pseudos.
35152 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35154 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
35156 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
35158 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
35159 if it would clobber the stack pointer, even temporarily.
35161 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
35163 * mode-switching.c: Make small adjustments to the top comment.
35165 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
35167 * config/rs6000/constraints.md (wD constraint): New constraint to
35168 match the constant integer to get the top DImode/DFmode out of a
35169 vector in a VSX register.
35171 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
35172 match the constant integer to get the top DImode/DFmode out of a
35173 vector in a VSX register.
35175 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
35178 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35181 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
35182 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
35184 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
35185 Optimize vec_extract of 64-bit values, where the value being
35186 extracted is in the top word, where we can use scalar
35187 instructions. Add direct move and store support. Combine the big
35188 endian/little endian vector select load support into a single insn.
35189 (vsx_extract_<mode>_internal1): Likewise.
35190 (vsx_extract_<mode>_internal2): Likewise.
35191 (vsx_extract_<mode>_load): Likewise.
35192 (vsx_extract_<mode>_store): Likewise.
35193 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
35194 combined into vsx_extract_<mode>_load.
35195 (vsx_extract_<mode>_one_le): Likewise.
35197 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
35198 define the top 64-bit vector element.
35200 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
35203 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
35204 Document vec_vbpermq builtin.
35207 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
35208 enable use of xxsldwi and xxpermdi builtin functions.
35209 (vec_xxpermdi): Likewise.
35211 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
35212 Document use of vec_xxsldwi and vec_xxpermdi builtins.
35214 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
35216 PR rtl-optimization/60650
35217 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
35219 (find_spills_for): New.
35220 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
35221 Spill all pseudos on the second iteration.
35223 2014-03-27 Marek Polacek <polacek@redhat.com>
35226 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
35229 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35231 * config/s390/s390.c (s390_can_use_return_insn): Check for
35232 call-saved FPRs on 31 bit.
35234 2014-03-27 Jakub Jelinek <jakub@redhat.com>
35236 PR middle-end/60682
35237 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
35238 if they need regimplification, just drop them instead of
35239 calling gimple_regimplify_operands on them.
35241 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
35244 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
35245 (aarch64_frame_pointer_required): Adjust logic.
35246 (aarch64_can_eliminate): Adjust logic.
35247 (aarch64_override_options_after_change): Adjust logic.
35249 2014-03-27 Dehao Chen <dehao@google.com>
35251 * ipa-inline.c (early_inliner): Update node's inline info.
35253 2014-03-26 Dehao Chen <dehao@google.com>
35255 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
35256 compiler inserted conditional jumps for NAN float check.
35258 2014-03-26 Jakub Jelinek <jakub@redhat.com>
35260 * ubsan.h (ubsan_create_data): Change second argument's type
35261 to const location_t *.
35262 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
35264 (ubsan_create_data): Change second argument to const location_t *PLOC.
35265 Create Loc field whenever PLOC is non-NULL.
35266 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
35267 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
35271 * real.c (real_to_integer2): Change type of low to UHWI.
35273 2014-03-26 Tobias Burnus <burnus@net-b.de>
35275 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
35276 (CILK_SELF_SPECS): New define.
35277 (driver_self_specs): Use it.
35279 2014-03-26 Richard Biener <rguenther@suse.de>
35281 * tree-pretty-print.c (percent_K_format): Implement special
35282 case for LTO and its stripped down BLOCK tree.
35284 2014-03-26 Jakub Jelinek <jakub@redhat.com>
35287 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
35289 * tree-vrp.c (simplify_internal_call_using_ranges): If only
35290 one range is range_int_cst_p, but not both, at least optimize
35291 addition/subtraction of 0 and multiplication by 0 or 1.
35292 * gimple-fold.c (gimple_fold_call): Fold
35293 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
35294 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
35295 INTEGER_CSTs, try to fold at least x * 0 and y - y.
35297 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
35299 PR rtl-optimization/60452
35300 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
35301 <case REG>: Return 1 for invalid offsets from the frame pointer.
35303 2014-03-26 Marek Polacek <polacek@redhat.com>
35306 * doc/extend.texi (C Extensions): Mention variable-length arrays in
35309 2014-03-26 Marek Polacek <polacek@redhat.com>
35312 * doc/extend.texi (Designated Inits): Describe what happens to omitted
35315 2014-03-26 Marek Polacek <polacek@redhat.com>
35318 * ira-color.c (update_conflict_hard_regno_costs): Perform the
35319 multiplication in unsigned type.
35321 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
35323 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
35325 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
35327 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
35329 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
35332 * cif-code.def (UNREACHABLE) New code.
35333 * ipa-inline.c (inline_small_functions): Skip edges to
35334 __builtlin_unreachable.
35335 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
35336 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
35337 predicate to __bulitin_unreachable.
35338 (set_cond_stmt_execution_predicate): Fix issue when
35339 invert_tree_comparison returns ERROR_MARK.
35340 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
35341 propagate to inline clones.
35342 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
35344 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
35345 * cgraphclones.c (cgraph_clone_node): If call destination is already
35346 ureachable, do not redirect it back.
35347 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
35350 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
35352 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
35353 Do not modify inline clones.
35355 2014-03-25 Jakub Jelinek <jakub@redhat.com>
35357 * config/i386/i386.md (general_sext_operand): New mode attr.
35358 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
35359 don't generate (sign_extend (const_int)).
35360 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
35361 operands[2]. Use We constraint instead of <i> and
35362 <general_sext_operand> predicate instead of <general_operand>.
35363 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
35364 * config/i386/constraints.md (We): New constraint.
35365 * config/i386/predicates.md (x86_64_sext_operand,
35366 sext_operand): New predicates.
35368 2014-03-25 Martin Jambor <mjambor@suse.cz>
35371 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
35372 inconsistent devirtualizations to __builtin_unreachable.
35374 2014-03-25 Marek Polacek <polacek@redhat.com>
35377 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
35379 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
35381 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
35382 order of elements for big-endian.
35384 2014-03-25 Richard Biener <rguenther@suse.de>
35386 PR middle-end/60635
35387 * gimplify-me.c (gimple_regimplify_operands): Update the
35390 2014-03-25 Martin Jambor <mjambor@suse.cz>
35393 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
35394 (lto_output_varpool_node): Likewise.
35395 (input_overwrite_node): Likewise.
35396 (input_varpool_node): Likewise.
35398 2014-03-25 Richard Biener <rguenther@suse.de>
35400 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
35401 (run_gcc): Likewise.
35403 2014-03-25 Jakub Jelinek <jakub@redhat.com>
35405 * combine.c (simplify_compare_const): Add MODE argument.
35406 Handle mode_width 0 as very large mode_width.
35407 (try_combine, simplify_comparison): Adjust callers.
35409 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
35410 type to avoid signed integer overflow.
35411 * explow.c (plus_constant): Likewise.
35413 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
35415 * doc/generic.texi: Correct typos.
35417 2014-03-24 Tobias Burnus <burnus@net-b.de>
35419 * doc/invoke.texi (-flto): Expand section about
35420 using static libraries with LTO.
35422 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35424 PR rtl-optimization/60501
35425 * optabs.def (addptr3_optab): New optab.
35426 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
35427 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
35428 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
35430 * lra.c (emit_add3_insn): Use the addptr pattern if available.
35432 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
35434 2014-03-24 Ulrich Drepper <drepper@gmail.com>
35436 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
35439 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
35440 (_mm256_undefined_ps): Define.
35441 (_mm256_undefined_pd): Define.
35442 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
35443 (_mm_undefined_pd): Define.
35444 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
35445 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
35446 (_mm512_undefined_ps): Define.
35447 (_mm512_undefined_pd): Define.
35448 Use _mm*_undefined_*.
35449 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
35451 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
35453 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
35454 (lshr_simd): DI mode added.
35455 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
35456 (aarch64_ushr_simddi): Likewise.
35457 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
35458 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
35459 (vshrd_n_u64): Likewise.
35461 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35463 * Makefile.in (s-macro_list): Depend on cc1.
35465 2014-03-23 Teresa Johnson <tejohnson@google.com>
35467 * ipa-utils.c (ipa_print_order): Use specified dump file.
35469 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
35471 PR rtl-optimization/60601
35472 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
35474 * gcc.c (eval_spec_function): Initialize save_growing_value.
35476 2014-03-22 Jakub Jelinek <jakub@redhat.com>
35479 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
35480 code == MINUS_EXPR, never swap op0 with op1.
35482 * toplev.c (init_local_tick): Avoid signed integer multiplication
35484 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
35485 shift by first operand's bitsize.
35487 2014-03-21 Jakub Jelinek <jakub@redhat.com>
35490 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
35491 redefine to 1 or 0.
35492 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
35493 TARGET_ISA_64BIT_P(x).
35495 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35497 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
35498 pattern for vector nor instead of subtract from splat(-1).
35499 (altivec_expand_vec_perm_const_le): Likewise.
35501 2014-03-21 Richard Henderson <rth@twiddle.net>
35504 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
35505 related insns after epilogue_completed.
35507 2014-03-21 Martin Jambor <mjambor@suse.cz>
35510 * cgraph.h (symtab_node): New flag body_removed.
35511 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
35512 when removing bodies.
35513 * symtab.c (dump_symtab_base): Dump body_removed flag.
35514 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
35515 had their bodies removed.
35517 2014-03-21 Martin Jambor <mjambor@suse.cz>
35520 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
35523 2014-03-21 Richard Biener <rguenther@suse.de>
35525 PR tree-optimization/60577
35526 * tree-core.h (struct tree_base): Document nothrow_flag use
35527 in DECL_NONALIASED.
35528 * tree.h (DECL_NONALIASED): New.
35529 (may_be_aliased): Adjust.
35530 * coverage.c (build_var): Set DECL_NONALIASED.
35532 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
35534 * expr.c (expand_expr_real_1): Remove outdated comment.
35536 2014-03-20 Jakub Jelinek <jakub@redhat.com>
35538 PR middle-end/60597
35539 * ira.c (adjust_cleared_regs): Call copy_rtx on
35540 *reg_equiv[REGNO (loc)].src_p before passing it to
35541 simplify_replace_fn_rtx.
35544 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
35545 into CONST, put pic register as first operand of PLUS. Use
35546 gen_const_mem for both 32-bit and 64-bit PIC got loads.
35548 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35550 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
35552 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
35554 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
35555 around for store forwarding issue in the FPU on the UT699.
35556 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
35557 loads and operations if -mfix-ut699 is specified.
35558 (divtf3_hq): Tweak attribute.
35559 (sqrttf2_hq): Likewise.
35561 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
35563 * calls.c (store_one_arg): Remove incorrect const qualification on the
35564 type of the temporary.
35565 * cfgexpand.c (expand_return): Likewise.
35566 * expr.c (expand_constructor): Likewise.
35567 (expand_expr_real_1): Likewise.
35569 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
35571 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
35574 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
35577 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
35579 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
35581 * config/arm/aarch-common-protos.h
35582 (alu_cost_table): Fix spelling of "extend".
35583 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
35585 2014-03-19 Richard Biener <rguenther@suse.de>
35587 PR middle-end/60553
35588 * tree-core.h (tree_type_common): Re-order pointer members
35589 to reduce recursion depth during GC walks.
35591 2014-03-19 Marek Polacek <polacek@redhat.com>
35594 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
35595 before accessing it.
35597 2014-03-19 Richard Biener <rguenther@suse.de>
35600 * lto-streamer-in.c (input_function): In WPA stage do not drop
35603 2014-03-19 Jakub Jelinek <jakub@redhat.com>
35605 PR tree-optimization/60559
35606 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
35607 with build_zero_cst assignment.
35609 2014-03-18 Kai Tietz <ktietz@redhat.com>
35611 PR rtl-optimization/56356
35612 * sdbout.c (sdbout_parms): Verify that parms'
35613 incoming argument is valid.
35614 (sdbout_reg_parms): Likewise.
35616 2014-03-18 Richard Henderson <rth@redhat.com>
35619 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
35620 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
35621 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
35623 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
35625 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
35626 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
35627 Italicize plugin event names in description. Explain that
35628 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
35629 Remind that no GCC functions should be called after PLUGIN_FINISH.
35630 Explain what pragmas with expansion are.
35632 2014-03-18 Martin Liska <mliska@suse.cz>
35634 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
35635 gimple call statement is update.
35636 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
35637 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
35639 2014-03-18 Jakub Jelinek <jakub@redhat.com>
35642 * ubsan.c (ubsan_instrument_unreachable): Call
35643 initialize_sanitizer_builtins.
35644 (ubsan_pass): Likewise.
35647 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
35648 varpool_finalize_decl instead of rest_of_decl_compilation.
35650 2014-03-18 Richard Biener <rguenther@suse.de>
35652 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
35653 by using bitmap_and_compl instead of bitmap_and_compl_into.
35654 (df_rd_transfer_function): Likewise.
35656 2014-03-18 Richard Biener <rguenther@suse.de>
35658 * doc/lto.texi (fresolution): Fix typo.
35660 2014-03-18 Richard Biener <rguenther@suse.de>
35662 * doc/invoke.texi (flto): Update for changes in 4.9.
35664 2014-03-18 Richard Biener <rguenther@suse.de>
35666 * doc/loop.texi: Remove section on the removed lambda framework.
35667 Update loop docs with recent changes in preserving loop structure.
35669 2014-03-18 Richard Biener <rguenther@suse.de>
35671 * doc/lto.texi (-fresolution): Document.
35673 2014-03-18 Richard Biener <rguenther@suse.de>
35675 * doc/contrib.texi: Adjust my name.
35677 2014-03-18 Jakub Jelinek <jakub@redhat.com>
35680 * internal-fn.c: Include diagnostic-core.h.
35681 (expand_BUILTIN_EXPECT): New function.
35682 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
35683 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
35684 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
35685 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
35686 IFN_BUILTIN_EXPECT.
35687 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
35688 Revert 3 argument __builtin_expect code.
35689 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
35690 * gimple-fold.c (gimple_fold_call): Likewise.
35691 * tree.h (fold_builtin_expect): New prototype.
35692 * builtins.c (build_builtin_expect_predicate): Add predictor
35693 argument, if non-NULL, create 3 argument __builtin_expect.
35694 (fold_builtin_expect): No longer static. Add ARG2 argument,
35695 pass it through to build_builtin_expect_predicate.
35696 (fold_builtin_2): Adjust caller.
35697 (fold_builtin_3): Handle BUILT_IN_EXPECT.
35698 * internal-fn.def (BUILTIN_EXPECT): New.
35700 2014-03-18 Tobias Burnus <burnus@net-b.de>
35703 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
35704 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
35705 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
35707 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
35710 * predict.c (combine_predictions_for_bb): Fix up formatting.
35711 (expr_expected_value_1, expr_expected_value): Add predictor argument,
35712 fill what it points to if non-NULL.
35713 (tree_predict_by_opcode): Adjust caller, use the predictor.
35714 * predict.def (PRED_COMPARE_AND_SWAP): Add.
35716 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
35718 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
35719 proper constant for the store mode.
35721 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
35723 * symtab.c (change_decl_assembler_name): Fix transparent alias
35724 chain construction.
35726 2014-03-16 Renlin Li <Renlin.Li@arm.com>
35728 * config/aarch64/aarch64.c: Correct the comments about the
35729 aarch64 stack layout.
35731 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
35733 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
35734 check for GF_OMP_FOR_KIND_FOR.
35736 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
35738 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
35739 ymm and zmm register names.
35741 2014-03-17 Jakub Jelinek <jakub@redhat.com>
35744 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
35745 note creation for the 2010-08-31 changes.
35747 2014-03-17 Marek Polacek <polacek@redhat.com>
35749 PR middle-end/60534
35750 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
35751 as -fno-tree-loop-vectorize.
35752 (expand_omp_simd): Likewise.
35754 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
35756 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
35757 (eligible_for_call_delay): New prototype.
35758 * config/sparc/sparc.c (tls_call_delay): Rename into...
35759 (eligible_for_call_delay): ...this. Return false if the instruction
35760 cannot be put in the delay slot of a branch.
35761 (eligible_for_restore_insn): Simplify.
35762 (eligible_for_return_delay): Return false if the instruction cannot be
35763 put in the delay slot of a branch and simplify.
35764 (eligible_for_sibcall_delay): Return false if the instruction cannot be
35765 put in the delay slot of a branch.
35766 * config/sparc/sparc.md (fix_ut699): New attribute.
35767 (tls_call_delay): Delete.
35768 (in_call_delay): Reimplement.
35769 (eligible_for_sibcall_delay): Rename into...
35770 (in_sibcall_delay): ...this.
35771 (eligible_for_return_delay): Rename into...
35772 (in_return_delay): ...this.
35773 (in_branch_delay): Reimplement.
35774 (in_uncond_branch_delay): Delete.
35775 (in_annul_branch_delay): Delete.
35777 2014-03-14 Richard Henderson <rth@redhat.com>
35780 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
35781 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
35782 (*floathi<X87MODEF>2_i387_with_temp): Remove.
35783 (floathi splitters): Remove.
35784 (float<SWI48x>xf2): New pattern.
35785 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
35786 code that tried to handle DImode for 32-bit, but which was excluded
35787 by the pattern's condition. Drop allocation of stack temporary.
35788 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
35789 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
35790 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
35791 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
35792 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
35793 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
35794 (*float<SWI48><MODEF>2_sse_interunit): Remove.
35795 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
35796 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
35797 (*float<SWI48x><X87MODEF>2_i387): Remove.
35798 (all float _with_temp splitters): Remove.
35799 (*float<SWI48x><MODEF>2_i387): New pattern.
35800 (*float<SWI48><MODEF>2_sse): New pattern.
35801 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
35802 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
35804 2014-03-14 Jakub Jelinek <jakub@redhat.com>
35805 Marek Polacek <polacek@redhat.com>
35807 PR middle-end/60484
35808 * common.opt (dump_base_name_prefixed): New Variable.
35809 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
35810 if x_dump_base_name_prefixed is already set, set it at the end.
35812 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
35814 PR rtl-optimization/60508
35815 * lra-constraints.c (get_reload_reg): Add new parameter
35817 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
35818 Pass the new parameter values.
35820 2014-03-14 Richard Biener <rguenther@suse.de>
35822 * common.opt: Revert unintented changes from r205065.
35823 * opts.c: Likewise.
35825 2014-03-14 Richard Biener <rguenther@suse.de>
35827 PR middle-end/60518
35828 * cfghooks.c (split_block): Properly adjust all loops the
35829 block was a latch of.
35831 2014-03-14 Martin Jambor <mjambor@suse.cz>
35834 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
35837 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
35840 * config/avr/avr.c (avr_set_current_function): Pass function name
35841 through default_strip_name_encoding before sanity checking instead
35842 of skipping the first char of the assembler name.
35844 2014-03-13 Richard Henderson <rth@redhat.com>
35847 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
35848 (ix86_force_to_memory, ix86_free_from_memory): Remove.
35849 * config/i386/i386-protos.h: Likewise.
35850 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
35851 in the expander instead of a splitter.
35852 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
35853 any possibility of requiring a memory.
35854 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
35855 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
35856 (fp branch splitters): Update for ix86_split_fp_branch.
35857 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
35858 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
35859 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
35860 (*fop_<MODEF>_2_i387): Remove f/r alternative.
35861 (*fop_<MODEF>_3_i387): Likewise.
35862 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
35863 (splitters for the fop_* register patterns): Remove.
35864 (fscalexf4_i387): Rename from *fscalexf4_i387.
35865 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
35867 2014-03-13 Jakub Jelinek <jakub@redhat.com>
35869 PR tree-optimization/59779
35870 * tree-dfa.c (get_ref_base_and_extent): Use double_int
35871 type for bitsize and maxsize instead of HOST_WIDE_INT.
35873 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
35875 PR rtl-optimization/57320
35876 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
35877 the CFG after thread_prologue_and_epilogue_insns.
35879 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
35881 PR rtl-optimization/57189
35882 * lra-constraints.c (process_alt_operands): Disfavor spilling
35885 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
35887 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
35889 2014-03-13 Jakub Jelinek <jakub@redhat.com>
35891 PR tree-optimization/59025
35892 PR middle-end/60418
35893 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
35894 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
35896 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
35899 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
35900 calls of avr_out_plus_1.
35902 2014-03-13 Bin Cheng <bin.cheng@arm.com>
35904 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
35905 BB's single pred and update the father loop's latch info later.
35907 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
35909 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
35913 (VEC_base): Likewise.
35914 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
35915 registers, we need to swap double words in little endian mode.
35917 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
35918 to be a container mode for 128-bit integer operations added in ISA
35919 2.07. Unlike TImode and PTImode, the preferred register set is
35920 the Altivec/VMX registers for the 128-bit operations.
35922 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
35924 (rs6000_split_128bit_ok_p): Likewise.
35926 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
35927 macros for creating ISA 2.07 normal and overloaded builtin
35928 functions with 3 arguments.
35929 (BU_P8V_OVERLOAD_3): Likewise.
35930 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
35931 for use as overloaded functions.
35932 (VPERM_1TI_UNS): Likewise.
35933 (VSEL_1TI): Likewise.
35934 (VSEL_1TI_UNS): Likewise.
35935 (ST_INTERNAL_1ti): Likewise.
35936 (LD_INTERNAL_1ti): Likewise.
35937 (XXSEL_1TI): Likewise.
35938 (XXSEL_1TI_UNS): Likewise.
35939 (VPERM_1TI): Likewise.
35940 (VPERM_1TI_UNS): Likewise.
35941 (XXPERMDI_1TI): Likewise.
35942 (SET_1TI): Likewise.
35943 (LXVD2X_V1TI): Likewise.
35944 (STXVD2X_V1TI): Likewise.
35945 (VEC_INIT_V1TI): Likewise.
35946 (VEC_SET_V1TI): Likewise.
35947 (VEC_EXT_V1TI): Likewise.
35948 (EQV_V1TI): Likewise.
35949 (NAND_V1TI): Likewise.
35950 (ORC_V1TI): Likewise.
35951 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
35952 added in ISA 2.07. Add both normal 'altivec' builtins, and the
35953 overloaded builtin.
35954 (VADDUQM): Likewise.
35955 (VSUBCUQ): Likewise.
35956 (VADDEUQM): Likewise.
35957 (VADDECUQ): Likewise.
35958 (VSUBEUQM): Likewise.
35959 (VSUBECUQ): Likewise.
35961 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
35962 __int128_t and __uint128_t types.
35963 (__uint128_type): Likewise.
35964 (altivec_categorize_keyword): Add support for vector __int128_t,
35965 vector __uint128_t, vector __int128, and vector unsigned __int128
35966 as a container type for TImode operations that need to be done in
35967 VSX/Altivec registers.
35968 (rs6000_macro_to_expand): Likewise.
35969 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
35970 to support 128-bit integer instructions vaddcuq, vadduqm,
35971 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
35972 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
35974 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
35975 for V1TImode, and set up preferences to use VSX/Altivec registers.
35976 Setup VSX reload handlers.
35977 (rs6000_debug_reg_global): Likewise.
35978 (rs6000_init_hard_regno_mode_ok): Likewise.
35979 (rs6000_preferred_simd_mode): Likewise.
35980 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
35981 (easy_altivec_constant): Likewise.
35982 (output_vec_const_move): Likewise.
35983 (rs6000_expand_vector_set): Convert V1TImode set and extract to
35985 (rs6000_expand_vector_extract): Likewise.
35986 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
35988 (rs6000_const_vec): Add support for V1TImode.
35989 (rs6000_emit_le_vsx_load): Swap double words when loading or
35990 storing TImode/V1TImode.
35991 (rs6000_emit_le_vsx_store): Likewise.
35992 (rs6000_emit_le_vsx_move): Likewise.
35993 (rs6000_emit_move): Add support for V1TImode.
35994 (altivec_expand_ld_builtin): Likewise.
35995 (altivec_expand_st_builtin): Likewise.
35996 (altivec_expand_vec_init_builtin): Likewise.
35997 (altivec_expand_builtin): Likewise.
35998 (rs6000_init_builtins): Add support for V1TImode type. Add
35999 support for ISA 2.07 128-bit integer builtins. Define type names
36000 for the VSX/Altivec vector types.
36001 (altivec_init_builtins): Add support for overloaded vector
36002 functions with V1TImode type.
36003 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
36004 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
36006 (rs6000_split_128bit_ok_p): Likewise.
36007 (rs6000_handle_altivec_attribute): Create V1TImode from vector
36008 __int128_t and vector __uint128_t.
36010 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
36011 and mode attributes.
36013 (VSX_M2): Likewise.
36018 (VS_scalar): Likewise.
36019 (VS_double): Likewise.
36020 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
36022 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
36023 we support the ISA 2.07 128-bit integer arithmetic instructions.
36024 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
36025 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
36026 and TImode types for use with the builtin functions.
36027 (V1TI_type_node): Likewise.
36028 (unsigned_V1TI_type_node): Likewise.
36029 (intTI_type_internal_node): Likewise.
36030 (uintTI_type_internal_node): Likewise.
36032 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
36033 128-bit builtin functions.
36034 (UNSPEC_VADDEUQM): Likewise.
36035 (UNSPEC_VADDECUQ): Likewise.
36036 (UNSPEC_VSUBCUQ): Likewise.
36037 (UNSPEC_VSUBEUQM): Likewise.
36038 (UNSPEC_VSUBECUQ): Likewise.
36039 (VM): Add V1TImode to vector mode iterators.
36041 (VI_unit): Likewise.
36042 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
36043 (altivec_vaddcuq): Likewise.
36044 (altivec_vsubuqm): Likewise.
36045 (altivec_vsubcuq): Likewise.
36046 (altivec_vaddeuqm): Likewise.
36047 (altivec_vaddecuq): Likewise.
36048 (altivec_vsubeuqm): Likewise.
36049 (altivec_vsubecuq): Likewise.
36051 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
36053 (BOOL_128): Likewise.
36054 (BOOL_REGS_OUTPUT): Likewise.
36055 (BOOL_REGS_OP1): Likewise.
36056 (BOOL_REGS_OP2): Likewise.
36057 (BOOL_REGS_UNARY): Likewise.
36058 (BOOL_REGS_AND_CR0): Likewise.
36060 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
36061 128-bit integer builtin support.
36062 (vec_vadduqm): Likewise.
36063 (vec_vaddecuq): Likewise.
36064 (vec_vaddeuqm): Likewise.
36065 (vec_vsubecuq): Likewise.
36066 (vec_vsubeuqm): Likewise.
36067 (vec_vsubcuq): Likewise.
36068 (vec_vsubuqm): Likewise.
36070 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
36071 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
36072 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
36073 128-bit integer add/subtract to ISA 2.07.
36075 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
36077 * config/arc/arc.c (arc_predicate_delay_insns):
36078 Fix third argument passed to conditionalize_nonjump.
36080 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
36082 * config/aarch64/aarch64-builtins.c
36083 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
36084 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
36085 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
36086 instead of __builtin_lfloor.
36087 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
36089 2014-03-12 Jakub Jelinek <jakub@redhat.com>
36091 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
36092 (tree_ssa_ifcombine_bb_1): New function.
36093 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
36094 is an empty forwarder block to then_bb or vice versa and then_bb
36095 and else_bb are effectively swapped.
36097 2014-03-12 Christian Bruel <christian.bruel@st.com>
36100 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
36101 REG_CFA_DEF_CFA note.
36102 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
36103 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
36105 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
36107 PR tree-optimization/60454
36108 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
36110 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36112 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
36113 Do not define target_cpu_default2 to generic.
36114 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
36115 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
36116 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
36118 2014-03-12 Jakub Jelinek <jakub@redhat.com>
36119 Marc Glisse <marc.glisse@inria.fr>
36121 PR tree-optimization/60502
36122 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
36123 instead of build_low_bits_mask.
36125 2014-03-12 Jakub Jelinek <jakub@redhat.com>
36127 PR middle-end/60482
36128 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
36129 if there are multiple uses, but op doesn't live on E edge.
36130 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
36131 clobber stmts before __builtin_unreachable.
36133 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
36135 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
36136 hard_frame_pointer_rtx.
36137 * cse.c (cse_insn): Remove volatile check.
36138 * cselib.c (cselib_process_insn): Likewise.
36139 * dse.c (scan_insn): Likewise.
36141 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
36143 * config/arc/arc.c (conditionalize_nonjump): New function,
36145 (arc_ifcvt): ... this.
36146 (arc_predicate_delay_insns): Use it.
36148 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
36150 * config/arc/predicates.md (extend_operand): During/after reload,
36151 allow const_int_operand.
36152 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
36153 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
36154 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
36156 (umulsi3_highpart_i): Likewise.
36158 2014-03-11 Richard Biener <rguenther@suse.de>
36160 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
36161 Add asserts to guard possible wrong-code bugs.
36163 2014-03-11 Richard Biener <rguenther@suse.de>
36165 PR tree-optimization/60429
36166 PR tree-optimization/60485
36167 * tree-ssa-structalias.c (set_union_with_increment): Properly
36168 take into account all fields that overlap the shifted vars.
36169 (do_sd_constraint): Likewise.
36170 (do_ds_constraint): Likewise.
36171 (get_constraint_for_ptr_offset): Likewise.
36173 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
36175 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
36176 (nios2_compute_frame_layout):
36177 Add calculation of cfun->machine->fp_save_offset.
36178 (nios2_expand_prologue): Correct setting of frame pointer register
36180 (nios2_expand_epilogue): Update recovery of stack pointer from
36181 frame pointer accordingly.
36182 (nios2_initial_elimination_offset): Update calculation of offset
36183 for eliminating to HARD_FRAME_POINTER_REGNUM.
36185 2014-03-10 Jakub Jelinek <jakub@redhat.com>
36188 * ipa.c (symtab_remove_unreachable_nodes): Don't call
36189 cgraph_get_create_node on VAR_DECLs.
36191 2014-03-10 Richard Biener <rguenther@suse.de>
36193 PR middle-end/60474
36194 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
36196 2014-03-08 Douglas B Rupp <rupp@gnat.com>
36198 * config/vms/vms.opt (vms_float_format): New variable.
36200 2014-03-08 Tobias Burnus <burnus@net-b.de>
36202 * doc/invoke.texi (-fcilkplus): Update implementation status.
36204 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
36205 Richard Biener <rguenther@suse.de>
36207 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
36208 consistently accross all TUs.
36209 (run_gcc): Enable -fshort-double automatically at link at link-time
36210 and disallow override.
36212 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
36215 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
36216 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
36217 if they can't be used.
36219 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36221 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
36222 for Solaris 11/x86 ld.
36223 * configure: Regenerate.
36225 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36227 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
36228 (LIB_TLS_SPEC): Save as ld_tls_libs.
36229 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
36230 (HAVE_AS_IX86_TLSLDM): New test.
36231 * configure, config.in: Regenerate.
36232 * config/i386/i386.c (legitimize_tls_address): Fall back to
36233 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
36234 cannot support TLS_MODEL_LOCAL_DYNAMIC.
36235 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
36236 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
36238 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
36240 * common.opt (fira-loop-pressure): Mark as optimization.
36242 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
36244 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
36245 an OpenMP mappable type.
36247 2014-03-06 Matthias Klose <doko@ubuntu.com>
36249 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
36250 MULTILIB_OSDIRNAMES is not defined.
36252 2014-03-06 Jakub Jelinek <jakub@redhat.com>
36253 Meador Inge <meadori@codesourcery.com>
36256 * config/arm/arm.c (arm_tls_symbol_p): Remove.
36257 (arm_legitimize_address): Call legitimize_tls_address for any
36258 arm_tls_referenced_p expression, handle constant addend. Call it
36259 before testing for !TARGET_ARM.
36260 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
36262 2014-03-06 Richard Biener <rguenther@suse.de>
36264 PR middle-end/60445
36268 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
36270 * tree-streamer.c (record_common_node): Assert we don't record
36271 nodes with type double.
36272 (preload_common_node): Skip type double, complex double and double
36273 pointer since it is now frontend dependent due to fshort-double option.
36275 2014-03-06 Richard Biener <rguenther@suse.de>
36277 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
36278 or -fno-lto is specified and the linker has full plugin support.
36279 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
36280 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
36281 * lto-wrapper.c (merge_and_complain): Merge compile-time
36282 optimization levels.
36283 (run_gcc): And pass it through to the link options.
36285 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
36289 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36291 * cselib.c (remove_useless_values): Skip to avoid quadratic
36292 behavior if the condition moved from...
36293 (cselib_process_insn): ... here holds.
36295 2014-03-05 Jakub Jelinek <jakub@redhat.com>
36298 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
36299 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
36302 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
36303 (TM_H): Add x86-tune.def.
36305 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36307 * config/aarch64/aarch64.c (generic_tunings):
36308 Use cortexa57_extra_costs.
36310 2014-03-05 Jakub Jelinek <jakub@redhat.com>
36313 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
36314 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
36315 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
36318 2014-03-04 Heiher <r@hev.cc>
36320 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
36321 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
36323 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
36325 * config/i386/predicates.md (const2356_operand): Change to ...
36326 (const2367_operand): ... this.
36327 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
36329 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
36330 (*avx512pf_scatterpf<mode>sf): Ditto.
36331 (avx512pf_scatterpf<mode>df): Ditto.
36332 (*avx512pf_scatterpf<mode>df_mask): Ditto.
36333 (*avx512pf_scatterpf<mode>df): Ditto.
36334 * config/i386/i386.c (ix86_expand_builtin): Update
36335 incorrect hint operand error message.
36337 2014-03-04 Richard Biener <rguenther@suse.de>
36339 * lto-section-in.c (lto_get_section_data): Fix const cast.
36341 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
36343 * tree-streamer.c (record_common_node): Assert we don't record
36344 nodes with type double.
36345 (preload_common_node): Skip type double, complex double and double
36346 pointer since it is now frontend dependent due to fshort-double option.
36348 2014-03-04 Richard Biener <rguenther@suse.de>
36351 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
36352 (lto_input_toplevel_asms): Likewise.
36353 * lto-section-in.c (lto_get_section_data): Instead do it here
36356 2014-03-04 Richard Biener <rguenther@suse.de>
36358 PR tree-optimization/60382
36359 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
36360 dead PHIs a reduction.
36362 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
36364 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
36366 (_mm_prefetch): Move out of GCC target("sse") pragma.
36367 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
36368 GCC target("prfchw") pragma.
36369 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
36371 * config/i386/i386.c (ix86_option_override_internal): Enable
36372 -mprfchw with -mprefetchwt1.
36374 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
36376 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
36379 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
36381 * opts.h (CL_PCH_IGNORE): Define.
36382 * targhooks.c (option_affects_pch_p):
36383 Return false for options that have CL_PCH_IGNORE set.
36384 * opt-functions.awk: Process PchIgnore.
36385 * doc/options.texi: Document PchIgnore.
36387 * config/arc/arc.opt (misize): Add PchIgnore property.
36389 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36391 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
36392 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
36393 constraint on constants to permit them being loaded into
36394 GENERAL_REGS or BASE_REGS.
36396 2014-03-03 Nick Clifton <nickc@redhat.com>
36398 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
36399 anti-cacnonical alternatives.
36400 (negandhi3_real): New pattern.
36401 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
36403 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
36405 * config/avr/avr-mcus.def: Remove atxmega16x1.
36406 * config/avr/avr-tables.opt: Regenerate.
36407 * config/avr/t-multilib: Regenerate.
36408 * doc/avr-mmcu.texi: Regenerate.
36410 2014-03-03 Tobias Grosser <tobias@grosser.es>
36411 Mircea Namolaru <mircea.namolaru@inria.fr>
36413 PR tree-optimization/58028
36414 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
36417 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
36419 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
36420 not handled by recognizers.
36422 2014-03-03 Jakub Jelinek <jakub@redhat.com>
36424 PR middle-end/60175
36425 * function.c (expand_function_end): Don't emit
36426 clobber_return_register sequence if clobber_after is a BARRIER.
36427 * cfgexpand.c (construct_exit_block): Append instructions before
36428 return_label to prev_bb.
36430 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36432 * config/rs6000/constraints.md: Document reserved use of "wc".
36434 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
36437 * ipa.c (function_and_variable_visibility): When dissolving comdat
36438 group, also set all symbols to local.
36440 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
36445 2013-12-14 Jan Hubicka <jh@suse.cz>
36446 PR middle-end/58477
36447 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
36449 2014-03-02 Jon Beniston <jon@beniston.com>
36455 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
36456 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
36457 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
36458 (simple_return, *simple_return): New patterns
36459 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
36460 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
36462 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
36464 * dwarf2out.c (gen_subprogram_die): Tidy.
36466 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
36469 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
36470 (*mov_t_msb_neg_negc): ... this new insn.
36472 2014-02-28 Jason Merrill <jason@redhat.com>
36475 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
36478 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
36481 * dwarf2out.c (decltype_auto_die): New static.
36482 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
36483 (gen_type_die_with_usage): Handle 'decltype(auto)'.
36484 (is_cxx_auto): Likewise.
36486 2014-02-28 Ian Bolton <ian.bolton@arm.com>
36488 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
36489 we are not using general regs only.
36491 2014-02-28 Richard Biener <rguenther@suse.de>
36494 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
36495 previous fix and only allow to remove trivial pre-headers
36496 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
36497 (remove_forwarder_block): Properly update the latch of a loop.
36499 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36502 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
36503 (cselib_preserved_hash_table): New.
36504 (preserve_constants_and_equivs): Move preserved vals to it.
36505 (cselib_find_slot): Look it up first.
36506 (cselib_init): Initialize it.
36507 (cselib_finish): Release it.
36508 (dump_cselib_table): Dump it.
36510 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36513 * cselib.c (remove_useless_values): Skip to avoid quadratic
36514 behavior if the condition moved from...
36515 (cselib_process_insn): ... here holds.
36517 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
36520 * var-tracking.c (vt_initialize): Apply the same condition to
36521 preserve the CFA base value.
36523 2014-02-28 Joey Ye <joey.ye@arm.com>
36526 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
36527 if reload in progress or completed.
36529 2014-02-28 Tobias Burnus <burnus@net-b.de>
36531 PR middle-end/60147
36532 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
36535 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
36537 * doc/tm.texi.in (Condition Code Status): Update documention for
36538 relative locations of cc0-setter and cc0-user.
36540 2014-02-27 Jeff Law <law@redhat.com>
36542 PR rtl-optimization/52714
36543 * combine.c (try_combine): When splitting an unrecognized PARALLEL
36544 into two independent simple sets, if I3 is a jump, ensure the
36545 pattern we place into I3 is a (set (pc) ...).
36547 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
36548 Jeff Law <law@redhat.com>
36550 PR rtl-optimization/49847
36551 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
36552 are in different blocks.
36553 * doc/tm.texi (Condition Code Status): Update documention for
36554 relative locations of cc0-setter and cc0-user.
36556 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
36559 * lra.c (lra_emit_add): Check SUBREG too.
36561 2014-02-27 Andreas Schwab <schwab@suse.de>
36563 * config/m68k/m68k.c (m68k_option_override): Disable
36564 -flive-range-shrinkage for classic m68k.
36565 (m68k_override_options_after_change): Likewise.
36567 2014-02-27 Marek Polacek <polacek@redhat.com>
36569 PR middle-end/59223
36570 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
36571 -Wmaybe-uninitialized.
36573 2014-02-27 Alan Modra <amodra@gmail.com>
36576 * reload1.c (emit_input_reload_insns): When reload_override_in,
36577 set old to rl->in_reg when rl->in_reg is a subreg.
36579 2014-02-26 Richard Biener <rguenther@suse.de>
36582 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
36584 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
36586 * common/config/i386/predicates.md (const1256_operand): Remove.
36587 (const2356_operand): New.
36588 (const_1_to_2_operand): Remove.
36589 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
36590 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
36591 (*avx512pf_gatherpf<mode>sf): Ditto.
36592 (avx512pf_gatherpf<mode>df): Ditto.
36593 (*avx512pf_gatherpf<mode>df_mask): Ditto.
36594 (*avx512pf_gatherpf<mode>df): Ditto.
36595 (avx512pf_scatterpf<mode>sf): Ditto.
36596 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
36597 (*avx512pf_scatterpf<mode>sf): Ditto.
36598 (avx512pf_scatterpf<mode>df): Ditto.
36599 (*avx512pf_scatterpf<mode>df_mask): Ditto.
36600 (*avx512pf_scatterpf<mode>df): Ditto.
36601 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
36603 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
36605 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
36606 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
36607 (_mm512_mask_testn_epi64_mask): Move to ...
36608 * config/i386/avx512cdintrin.h: Here.
36609 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
36610 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
36611 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
36612 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
36613 TARGET_AVX512F from TARGET_AVX512CD.
36615 2014-02-26 Richard Biener <rguenther@suse.de>
36618 * ipa.c (walk_polymorphic_call_targets): Properly guard
36619 call to inline_update_overall_summary.
36621 2014-02-26 Bin Cheng <bin.cheng@arm.com>
36624 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
36625 and latches only if requested. Fix latch if it is removed.
36626 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
36627 LOOPS_HAVE_PREHEADERS.
36629 2014-02-25 Andrew Pinski <apinski@cavium.com>
36631 * builtins.c (expand_builtin_thread_pointer): Create a new target
36632 when the target is NULL.
36634 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
36636 PR rtl-optimization/60317
36637 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
36638 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
36639 * lra-assigns.c: Include params.h.
36640 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
36641 other reload pseudos considerations.
36643 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36645 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
36646 to use canonical form for nor<mode>3.
36648 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36651 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
36654 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
36656 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
36657 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
36658 (ix86_handle_option): Handle OPT_mprefetchwt1.
36659 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
36660 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
36662 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
36663 OPTION_MASK_ISA_PREFETCHWT1.
36664 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
36665 (PTA_PREFETCHWT1): New.
36666 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
36667 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
36668 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
36669 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
36670 (*prefetch_avx512pf_<mode>_: Change into ...
36671 (*prefetch_prefetchwt1_<mode>: This.
36672 * config/i386/i386.opt (mprefetchwt1): New.
36673 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
36674 (_mm_prefetch): Handle intent to write.
36675 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
36677 2014-02-25 Richard Biener <rguenther@suse.de>
36679 PR middle-end/60291
36680 * emit-rtl.c (mem_attrs_htab): Remove.
36681 (mem_attrs_htab_hash): Likewise.
36682 (mem_attrs_htab_eq): Likewise.
36683 (set_mem_attrs): Always allocate new mem-attrs when something changed.
36684 (init_emit_once): Do not allocate mem_attrs_htab.
36686 2014-02-25 Richard Biener <rguenther@suse.de>
36689 * lto-opts.c (lto_write_options): Output non-explicit conservative
36690 -fwrapv, -fno-trapv and -fno-strict-overflow.
36691 * lto-wrapper.c (merge_and_complain): Handle merging those options.
36692 (run_gcc): And pass them through.
36694 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
36696 * sel-sched.c (calculate_new_fences): New parameter ptime.
36697 Calculate it as a maximum over all fence cycles.
36698 (sel_sched_region_2): Adjust the call to calculate_new_fences.
36699 Print the final schedule timing when sched_verbose.
36701 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
36703 PR rtl-optimization/60292
36704 * sel-sched.c (fill_vec_av_set): Do not reset target availability
36705 bit fot the fence instruction.
36707 2014-02-24 Alangi Derick <alangiderick@gmail.com>
36709 * calls.h: Fix typo in comment.
36711 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
36713 * config/pa/pa.c (pa_output_move_double): Don't valididate when
36714 adjusting offsetable addresses.
36716 2014-02-24 Guozhi Wei <carrot@google.com>
36718 * sparseset.h (sparseset_pop): Fix the wrong index.
36720 2014-02-24 Walter Lee <walt@tilera.com>
36722 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
36723 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
36725 * common/config/tilegx/tilegx-common.c
36726 (TARGET_DEFAULT_TARGET_FLAGS): Define.
36727 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
36728 (LINK_SPEC): Ditto.
36729 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
36730 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
36731 (tilegx_gimplify_va_arg_expr): Handle big endian.
36732 (tilegx_expand_unaligned_load): Ditto.
36733 (tilegx_expand_unaligned_store): Ditto.
36734 (TARGET_RETURN_IN_MSB): New.
36735 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
36736 (TARGET_ENDIAN_DEFAULT): New.
36737 (TARGET_BIG_ENDIAN): Handle big endian.
36738 (BYTES_BIG_ENDIAN): Ditto.
36739 (WORDS_BIG_ENDIAN): Ditto.
36740 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
36741 (ENDIAN_SPEC): New.
36742 (EXTRA_SPECS): New.
36743 * config/tilegx/tilegx.md (extv): Handle big endian.
36745 (insn_st<n>): Ditto.
36746 (insn_st<n>_add<bitsuffix>): Ditto.
36747 (insn_stnt<n>): Ditto.
36748 (insn_stnt<n>_add<bitsuffix>):Ditto.
36749 (vec_interleave_highv8qi): Handle big endian.
36750 (vec_interleave_highv8qi_be): New.
36751 (vec_interleave_highv8qi_le): New.
36752 (insn_v1int_h): Handle big endian.
36753 (vec_interleave_lowv8qi): Handle big endian.
36754 (vec_interleave_lowv8qi_be): New.
36755 (vec_interleave_lowv8qi_le): New.
36756 (insn_v1int_l): Handle big endian.
36757 (vec_interleave_highv4hi): Handle big endian.
36758 (vec_interleave_highv4hi_be): New.
36759 (vec_interleave_highv4hi_le): New.
36760 (insn_v2int_h): Handle big endian.
36761 (vec_interleave_lowv4hi): Handle big endian.
36762 (vec_interleave_lowv4hi_be): New.
36763 (vec_interleave_lowv4hi_le): New.
36764 (insn_v2int_l): Handle big endian.
36765 (vec_interleave_highv2si): Handle big endian.
36766 (vec_interleave_highv2si_be): New.
36767 (vec_interleave_highv2si_le): New.
36768 (insn_v4int_h): Handle big endian.
36769 (vec_interleave_lowv2si): Handle big endian.
36770 (vec_interleave_lowv2si_be): New.
36771 (vec_interleave_lowv2si_le): New.
36772 (insn_v4int_l): Handle big endian.
36773 * config/tilegx/tilegx.opt (mbig-endian): New option.
36774 (mlittle-endian): New option.
36775 * doc/install.texi: Document tilegxbe-linux.
36776 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
36778 2014-02-24 Martin Jambor <mjambor@suse.cz>
36781 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
36782 there are no parameter descriptors.
36784 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
36786 PR rtl-optimization/60268
36787 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
36788 initialization to ...
36789 (sched_rgn_init): ... here.
36790 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
36792 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
36794 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
36797 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
36799 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
36802 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
36804 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
36805 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
36807 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
36809 * config/microblaze/predicates.md: Add cmp_op predicate.
36810 * config/microblaze/microblaze.md: Add branch_compare instruction
36811 which uses cmp_op predicate and emits cmp insn before branch.
36812 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
36813 to microblaze_expand_conditional_branch and consolidate logic.
36814 (microblaze_expand_conditional_branch): emit branch_compare
36815 insn instead of handling cmp op separate from branch insn.
36817 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36819 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
36822 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36824 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
36825 define_insn with define_expand and new define_insn
36826 *altivec_lve<VI_char>x_internal.
36827 (altivec_stve<VI_char>x): Replace define_insn with define_expand
36828 and new define_insn *altivec_stve<VI_char>x_internal.
36829 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
36831 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
36833 (altivec_expand_stvex_be): New function.
36835 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
36837 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
36838 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
36839 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
36840 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
36842 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
36845 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
36846 instead of emit_move_insn.
36848 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36850 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
36851 vspltw with vsldoi.
36852 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
36853 gen_altivec_vsumsws.
36855 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36857 * config/rs6000/altivec.md (altivec_lvxl): Rename as
36858 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
36859 (altivec_lvxl_<mode>): New define_expand incorporating
36860 -maltivec=be semantics where needed.
36861 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
36862 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
36863 semantics where needed.
36864 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
36865 (altivec_stvx_<mode>): New define_expand incorporating
36866 -maltivec=be semantics where needed.
36867 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
36868 VM2 iterator instead of V4SI.
36869 (altivec_stvxl_<mode>): New define_expand incorporating
36870 -maltivec=be semantics where needed.
36871 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
36872 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
36873 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
36874 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
36875 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
36876 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
36877 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
36878 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
36879 ALTIVEC_BUILTIN_STVXL.
36880 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
36881 (altivec_expand_stvx_be): Likewise.
36882 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
36883 (altivec_expand_lvx_be): Likewise.
36884 (altivec_expand_stvx_be): Likewise.
36885 (altivec_expand_builtin): Add cases for
36886 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
36887 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
36888 (altivec_init_builtins): Add definitions for
36889 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
36890 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
36892 2014-02-21 Catherine Moore <clm@codesourcery.com>
36894 * doc/invoke.texi (mvirt, mno-virt): Document.
36895 * config/mips/mips.opt (mvirt): New option.
36896 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
36898 2014-02-21 Richard Biener <rguenther@suse.de>
36900 PR tree-optimization/60276
36901 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
36902 (STMT_VINFO_MIN_NEG_DIST): New macro.
36903 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
36904 STMT_VINFO_MIN_NEG_DIST.
36905 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
36906 made for negative dependence distances still hold.
36908 2014-02-21 Richard Biener <rguenther@suse.de>
36910 PR middle-end/60291
36911 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
36912 DECL_INITIAL for globals not in the current function context.
36914 2014-02-21 Jakub Jelinek <jakub@redhat.com>
36916 PR tree-optimization/56490
36917 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
36918 * tree-ssa-uninit.c: Include params.h.
36919 (compute_control_dep_chain): Add num_calls argument, return false
36920 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
36921 num_calls to recursive call.
36922 (find_predicates): Change dep_chain into normal array,
36923 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
36924 variable and adjust compute_control_dep_chain caller.
36925 (find_def_preds): Likewise.
36927 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
36929 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
36930 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
36932 2014-02-21 Nick Clifton <nickc@redhat.com>
36934 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
36935 (pushhi1): Likewise.
36936 (popqi1): Add mode to pre_dec.
36937 (pophi1): Likewise.
36939 2014-02-21 Jakub Jelinek <jakub@redhat.com>
36941 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
36942 mode for mask of V8SFmode permutation.
36944 2014-02-20 Richard Henderson <rth@redhat.com>
36947 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
36948 a new pseudo for OLDVAL.
36950 2014-02-20 Jakub Jelinek <jakub@redhat.com>
36953 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
36954 gen_reg_rtx if d->testing_p.
36955 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
36956 if d->testing_p and we will certainly return true.
36957 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
36960 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
36962 * emit-rtl.c (gen_reg_rtx): Assert that
36963 crtl->emit.regno_pointer_align_length is non-zero.
36965 2014-02-20 Richard Henderson <rth@redhat.com>
36968 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
36969 on failure the store back into EXPECT.
36971 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
36972 Sandra Loosemore <sandra@codesourcery.com>
36974 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
36975 * config/nios2/nios2.c (nios2_function_profiler): Add
36976 -fPIC (flag_pic == 2) support.
36977 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
36978 (nios2_large_offset_p): New function.
36979 (nios2_unspec_reloc_p): Move up position, update to use
36980 nios2_large_offset_p.
36981 (nios2_unspec_address): Remove function.
36982 (nios2_unspec_offset): New function.
36983 (nios2_large_got_address): New function.
36984 (nios2_got_address): Add large offset support.
36985 (nios2_legitimize_tls_address): Update usage of removed and new
36987 (nios2_symbol_binds_local_p): New function.
36988 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
36989 (nios2_legitimize_address): Update to use nios2_large_offset_p.
36990 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
36991 (nios2_print_operand): Merge H/L processing, add hiadj/lo
36992 processing for (const (unspec ...)).
36993 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
36995 2014-02-20 Richard Biener <rguenther@suse.de>
36997 * tree-cfg.c (replace_uses_by): Mark altered BBs before
36998 doing the substitution.
36999 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
37001 2014-02-20 Martin Jambor <mjambor@suse.cz>
37004 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
37005 info when checking whether lattices are bottom.
37007 2014-02-20 Richard Biener <rguenther@suse.de>
37009 PR middle-end/60221
37010 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
37013 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
37016 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
37017 parameter specifying the scaling.
37018 (inline_call): Update.
37019 (want_inline_recursively): Guard division by zero.
37020 (recursive_inlining): Update.
37021 * ipa-inline.h (clone_inlined_nodes): Update.
37023 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
37026 * config/i386/i386.c (classify_argument): Pass structures of size
37027 64 bytes or less in register.
37029 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
37030 Kirill Yukhin <kirill.yukhin@intel.com>
37032 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
37033 (_mm_rcp28_round_ss): Ditto.
37034 (_mm_rsqrt28_round_sd): Ditto.
37035 (_mm_rsqrt28_round_ss): Ditto.
37036 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
37037 (_mm_rcp14_round_ss): Ditto.
37038 (_mm_rsqrt14_round_sd): Ditto.
37039 (_mm_rsqrt14_round_ss): Ditto.
37040 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
37041 the first input operand, get rid of match_dup.
37042 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
37044 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
37046 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
37047 operand as the first input operand, set type attribute.
37048 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
37049 Set type attribute.
37050 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
37051 operand as the first input operand, set type attribute.
37053 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37055 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
37058 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
37061 * config/i386/i386.c (construct_container): Remove TFmode check
37062 for X86_64_INTEGER_CLASS.
37064 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
37067 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
37068 only when -Wpsabi is enabled.
37070 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
37073 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
37074 passing arrays in registers are the same as for structs, so remove the
37075 special case for them.
37077 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
37079 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
37080 destination type, extract only the valid bits if the source type is not
37081 integral and has a different mode.
37083 2014-02-19 Richard Biener <rguenther@suse.de>
37086 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
37089 2014-02-19 Richard Biener <rguenther@suse.de>
37092 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
37093 (ipa_modify_call_arguments): Emit an argument load explicitely and
37094 preserve virtual SSA form there and for the replacement call.
37095 Do not update SSA form nor free dominance info.
37097 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
37099 * ipa.c (function_and_variable_visibility): Also clear WEAK
37100 flag when disolving COMDAT_GROUP.
37102 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
37104 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
37105 * ipa-prop.c (ipa_set_jf_known_type): Return early when
37106 not devirtualizing.
37107 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
37108 do more sanity checks.
37109 (detect_type_change): Return true when giving up early.
37110 (compute_complex_assign_jump_func): Fix type parameter of
37111 ipa_set_ancestor_jf.
37112 (compute_complex_ancestor_jump_func): Likewise.
37113 (update_jump_functions_after_inlining): Fix updating of
37115 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
37117 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
37119 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
37120 inline clones when edge disappears.
37122 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
37125 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
37126 Split 64-bit moves into 2 patterns. Do not allow the use of
37127 direct move for TDmode in little endian, since the decimal value
37128 has little endian bytes within a word, but the 64-bit pieces are
37129 ordered in a big endian fashion, and normal subreg's of TDmode are
37131 (mov<mode>_64bit_dm): Likewise.
37132 (movtd_64bit_nodm): Likewise.
37134 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
37136 PR tree-optimization/60174
37137 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
37138 statement of an SSA_NAME that occurs in an abnormal PHI node.
37140 2014-02-18 Jakub Jelinek <jakub@redhat.com>
37143 * final.c (SEEN_BB): Remove.
37144 (SEEN_NOTE, SEEN_EMITTED): Renumber.
37145 (final_scan_insn): Don't force_source_line on second
37146 NOTE_INSN_BASIC_BLOCK.
37148 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
37151 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
37152 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
37153 (type_natural_mode): Warn ABI change when %zmm register is not
37154 available for AVX512F vector value passing.
37156 2014-02-18 Kai Tietz <ktietz@redhat.com>
37159 * config/i386/i386.c (ix86_expand_prologue): Use value in
37160 rax register as displacement when restoring %r10 or %rax.
37161 Fix wrong offset when restoring both registers.
37163 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
37165 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
37166 assertion with conditional return.
37168 2014-02-18 Jakub Jelinek <jakub@redhat.com>
37169 Uros Bizjak <ubizjak@gmail.com>
37172 * config/i386/driver-i386.c (host_detect_local_cpu): If
37173 YMM state is not saved by the OS, also clear has_f16c. Move
37174 CPUID 0x80000001 handling before YMM state saving checking.
37176 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
37178 PR rtl-optimization/58960
37179 * haifa-sched.c (alloc_global_sched_pressure_data): New,
37180 factored out from ...
37181 (sched_init): ... here.
37182 (free_global_sched_pressure_data): New, factored out from ...
37183 (sched_finish): ... here.
37184 * sched-int.h (free_global_sched_pressure_data): Declare.
37185 * sched-rgn.c (nr_regions_initial): New static global.
37186 (haifa_find_rgns): Initialize it.
37187 (schedule_region): Disable sched-pressure for the newly
37190 2014-02-17 Richard Biener <rguenther@suse.de>
37192 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
37193 release SSA defs of pattern stmts.
37195 2014-02-17 Richard Biener <rguenther@suse.de>
37197 * tree-inline.c (expand_call_inline): Release the virtual
37198 operand defined by the call we are about to inline.
37200 2014-02-17 Richard Biener <rguenther@suse.de>
37202 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
37204 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
37205 Ilya Tocar <ilya.tocar@intel.com>
37207 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
37208 arguments order in builtin.
37209 (_mm512_permutexvar_epi64): Ditto.
37210 (_mm512_mask_permutexvar_epi64): Ditto
37211 (_mm512_maskz_permutexvar_epi32): Ditto
37212 (_mm512_permutexvar_epi32): Ditto
37213 (_mm512_mask_permutexvar_epi32): Ditto
37215 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37217 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
37218 (p8_vmrgow): Likewise.
37220 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37222 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
37225 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
37228 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
37229 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
37230 into 64-bit and 32-bit moves. On 64-bit moves, add support for
37231 using direct move instructions on ISA 2.07. Also adjust
37232 instruction length for 64-bit.
37233 (mov<mode>_64bit, TFmode/TDmode): Likewise.
37234 (mov<mode>_32bit, TFmode/TDmode): Likewise.
37236 2014-02-15 Alan Modra <amodra@gmail.com>
37240 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
37241 find_replacement on parts of insn rtl that might be reloaded.
37243 2014-02-15 Richard Biener <rguenther@suse.de>
37245 PR tree-optimization/60183
37246 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
37247 (tree_ssa_phiprop): Calculate and free post-dominators.
37249 2014-02-14 Jeff Law <law@redhat.com>
37251 PR rtl-optimization/60131
37252 * ree.c (get_extended_src_reg): New function.
37253 (combine_reaching_defs): Use it rather than assuming location of REG.
37254 (find_and_remove_re): Verify first operand of extension is
37255 a REG before adding the insns to the copy list.
37257 2014-02-14 Roland McGrath <mcgrathr@google.com>
37259 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
37260 * configure: Regenerated.
37261 * config.in: Regenerated.
37262 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
37263 instead of ASM_SHORT.
37265 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
37266 Richard Earnshaw <rearnsha@arm.com>
37268 PR rtl-optimization/59535
37269 * lra-constraints.c (process_alt_operands): Encourage alternative
37270 when unassigned pseudo class is superset of the alternative class.
37271 (inherit_reload_reg): Don't inherit when optimizing for code size.
37272 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
37273 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
37274 modes not less than 4 for Thumb1.
37276 2014-02-14 Kyle McMartin <kyle@redhat.com>
37279 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
37281 2014-02-14 Richard Biener <rguenther@suse.de>
37283 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
37284 (get_frame_arg): Drop the assert with langhook types_compatible_p.
37285 Do not strip INDIRECT_REFs.
37287 2014-02-14 Richard Biener <rguenther@suse.de>
37290 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
37291 DECL_FUNCTION_SPECIFIC_TARGET.
37292 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
37293 * tree-streamer-out.c (pack_ts_target_option): Remove.
37294 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
37295 (write_ts_function_decl_tree_pointers): Do not stream
37296 DECL_FUNCTION_SPECIFIC_TARGET.
37297 * tree-streamer-in.c (unpack_ts_target_option): Remove.
37298 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
37299 (lto_input_ts_function_decl_tree_pointers): Do not stream
37300 DECL_FUNCTION_SPECIFIC_TARGET.
37302 2014-02-14 Jakub Jelinek <jakub@redhat.com>
37304 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
37305 (get_initial_def_for_induction, vectorizable_induction): Ignore
37306 debug stmts when looking for exit_phi.
37307 (vectorizable_live_operation): Fix up condition.
37309 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
37311 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
37312 nreverse() because it changes the content of original tree list.
37314 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
37316 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
37317 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
37319 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
37321 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
37322 GNU coding standards.
37324 2014-02-13 Jakub Jelinek <jakub@redhat.com>
37327 * dwarf2out.c (gen_subprogram_die): Don't call
37328 add_calling_convention_attribute if subr_die is old_die.
37330 2014-02-13 Sharad Singhai <singhai@google.com>
37332 * doc/optinfo.texi: Fix order of nodes.
37334 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
37336 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
37337 operands[2], not operands[3].
37339 2014-02-13 Richard Biener <rguenther@suse.de>
37342 * doc/install.texi (ISL): Update recommended version to 0.12.2,
37343 mention the possibility of an in-tree build.
37344 (CLooG): Update recommended version to 0.18.1, mention the
37345 possibility of an in-tree build and clarify that the ISL
37346 bundled with CLooG does not work.
37348 2014-02-13 Jakub Jelinek <jakub@redhat.com>
37351 * expr.c (compress_float_constant): If x is a hard register,
37352 extend into a pseudo and then move to x.
37354 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
37356 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
37357 caused by bad second argument to warning_at() with -mhotpatch and
37358 nested functions (e.g. with gfortran).
37360 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
37362 * opts.c (option_name): Remove "enabled by default" rider.
37364 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
37366 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
37368 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
37369 Uros Bizjak <ubizjak@gmail.com>
37372 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
37373 * configure: Regenerated.
37375 2014-02-12 Richard Biener <rguenther@suse.de>
37377 * vec.c (vec_prefix::calculate_allocation): Move as
37378 inline variant to vec.h.
37379 (vec_prefix::calculate_allocation_1): New out-of-line version.
37380 * vec.h (vec_prefix::calculate_allocation_1): Declare.
37381 (vec_prefix::m_has_auto_buf): Rename to ...
37382 (vec_prefix::m_using_auto_storage): ... this.
37383 (vec_prefix::calculate_allocation): Inline the easy cases
37384 and dispatch to calculate_allocation_1 which doesn't need the
37386 (va_heap::reserve): Use gcc_checking_assert.
37387 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
37388 m_using_auto_storage.
37389 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
37391 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
37392 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
37393 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
37395 2014-02-12 Richard Biener <rguenther@suse.de>
37397 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
37398 when we found a dependence.
37400 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
37402 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
37404 (maybe_fold_stmt): ... into this new function.
37405 * omp-low.c (lower_omp): Update comment.
37407 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
37410 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
37413 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
37415 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
37416 identifiers in comments.
37417 (cortexa53_extra_costs): Likewise.
37418 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
37419 (cortexa7_extra_costs): Likewise.
37420 (cortexa12_extra_costs): Likewise.
37421 (cortexa15_extra_costs): Likewise.
37422 (v7m_extra_costs): Likewise.
37424 2014-02-12 Richard Biener <rguenther@suse.de>
37426 PR middle-end/60092
37427 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
37428 of posix_memalign being successful.
37429 (lower_stmt): Restrict lowering of posix_memalign to when
37430 -ftree-bit-ccp is enabled.
37432 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
37434 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
37436 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
37438 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
37440 PR rtl-optimization/60116
37441 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
37442 other_insn once the combination has been validated.
37444 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
37447 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
37449 * ipa-devirt.c: Include demangle.h
37450 (odr_violation_reported): New static variable.
37451 (add_type_duplicate): Update odr_violations.
37452 (maybe_record_node): Add completep parameter; update it.
37453 (record_target_from_binfo): Add COMPLETEP parameter;
37454 update it as needed.
37455 (possible_polymorphic_call_targets_1): Likewise.
37456 (struct polymorphic_call_target_d): Add nonconstruction_targets;
37457 rename FINAL to COMPLETE.
37458 (record_targets_from_bases): Sanity check we found the binfo;
37459 fix COMPLETEP updating.
37460 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
37461 parameter, fix computing of COMPLETEP.
37462 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
37463 at LTO time do demangling.
37464 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
37465 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
37467 (gimple_get_virt_method_for_binfo): Likewise.
37468 * gimple-fold.h (gimple_get_virt_method_for_binfo,
37469 gimple_get_virt_method_for_vtable): Update prototypes.
37471 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
37474 * genautomata.c (add_presence_absence): Fix typo with
37475 {final_}presence_list.
37477 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
37480 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
37481 for VSX/Altivec vectors that land in GPR registers.
37483 2014-02-11 Richard Henderson <rth@redhat.com>
37484 Jakub Jelinek <jakub@redhat.com>
37487 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
37488 around drhs if type conversion to lacc->type is not useless.
37490 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37492 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
37494 (cortex-a57.cortex-a53): Likewise.
37495 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
37497 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37499 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
37502 2014-02-11 Renlin Li <Renlin.Li@arm.com>
37504 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
37505 add_options_for_arm_vfp3.
37507 2014-02-11 Jeff Law <law@redhat.com>
37509 PR middle-end/54041
37510 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
37511 object with an undesirable mode.
37513 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37516 * config/i386/sol2-9.h: New file.
37517 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
37518 *-*-solaris2.9*): Use it.
37520 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
37522 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
37523 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
37525 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
37527 * config/microblaze/microblaze.c: Extend mcpu version format
37529 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
37531 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
37533 2014-02-10 Richard Henderson <rth@redhat.com>
37536 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
37537 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
37538 ms-abi vs -mno-accumulate-outgoing-args.
37539 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
37540 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
37543 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
37545 PR middle-end/60080
37546 * cfgexpand.c (expand_asm_operands): Attach source location to
37547 ASM_INPUT rtx objects.
37548 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
37550 2014-02-10 Nick Clifton <nickc@redhat.com>
37552 * config/mn10300/mn10300.c (popcount): New function.
37553 (mn10300_expand_prologue): Include saved registers in stack usage
37556 2014-02-10 Jeff Law <law@redhat.com>
37558 PR middle-end/52306
37559 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
37560 when changing the SET_DEST of a prior insn to avoid an input reload.
37562 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
37564 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
37565 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
37566 -mcall-openbsd, or -mcall-linux.
37567 (CC1_ENDIAN_BIG_SPEC): Remove.
37568 (CC1_ENDIAN_LITTLE_SPEC): Remove.
37569 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
37570 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
37571 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
37572 and %cc1_endian_default.
37573 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
37575 2014-02-10 Richard Biener <rguenther@suse.de>
37577 PR tree-optimization/60115
37578 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
37579 MEM_REF handling. Properly verify that the accesses are not
37580 out of the objects bound.
37582 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37584 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
37587 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
37589 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
37590 proper constants and fix formatting.
37591 (possible_polymorphic_call_targets): Fix formatting.
37593 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
37594 Ilya Tocar <ilya.tocar@intel.com>
37596 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
37597 (_mm512_loadu_epi32): Renamed into...
37598 (_mm512_loadu_si512): This.
37599 (_mm512_storeu_epi32): Renamed into...
37600 (_mm512_storeu_si512): This.
37601 (_mm512_maskz_ceil_ps): Removed.
37602 (_mm512_maskz_ceil_pd): Ditto.
37603 (_mm512_maskz_floor_ps): Ditto.
37604 (_mm512_maskz_floor_pd): Ditto.
37605 (_mm512_floor_round_ps): Ditto.
37606 (_mm512_floor_round_pd): Ditto.
37607 (_mm512_ceil_round_ps): Ditto.
37608 (_mm512_ceil_round_pd): Ditto.
37609 (_mm512_mask_floor_round_ps): Ditto.
37610 (_mm512_mask_floor_round_pd): Ditto.
37611 (_mm512_mask_ceil_round_ps): Ditto.
37612 (_mm512_mask_ceil_round_pd): Ditto.
37613 (_mm512_maskz_floor_round_ps): Ditto.
37614 (_mm512_maskz_floor_round_pd): Ditto.
37615 (_mm512_maskz_ceil_round_ps): Ditto.
37616 (_mm512_maskz_ceil_round_pd): Ditto.
37617 (_mm512_expand_pd): Ditto.
37618 (_mm512_expand_ps): Ditto.
37619 * config/i386/i386.c (ix86_builtins): Remove
37620 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
37621 (bdesc_args): Ditto.
37622 * config/i386/predicates.md (const1256_operand): New.
37623 (const_1_to_2_operand): Ditto.
37624 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
37625 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
37626 (*avx512pf_gatherpf<mode>sf): Ditto.
37627 (avx512pf_gatherpf<mode>df): Ditto.
37628 (*avx512pf_gatherpf<mode>df_mask): Ditto.
37629 (*avx512pf_gatherpf<mode>df): Ditto.
37630 (avx512pf_scatterpf<mode>sf): Ditto.
37631 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
37632 (*avx512pf_scatterpf<mode>sf): Ditto.
37633 (avx512pf_scatterpf<mode>df): Ditto.
37634 (*avx512pf_scatterpf<mode>df_mask): Ditto.
37635 (*avx512pf_scatterpf<mode>df): Ditto.
37636 (avx512f_expand<mode>): Removed.
37637 (<shift_insn><mode>3<mask_name>): Change predicate type.
37639 2014-02-08 Jakub Jelinek <jakub@redhat.com>
37641 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
37642 not at the end of datarefs vector use ordered_remove to avoid
37643 reordering datarefs vector.
37646 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
37647 mark local addressable non-static vars as GOVD_PRIVATE
37648 instead of GOVD_LOCAL.
37649 * omp-low.c (lower_omp_for): Move gimple_bind_vars
37650 and BLOCK_VARS of gimple_bind_block to new_stmt rather
37653 PR middle-end/60092
37654 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
37655 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
37656 assume_aligned or alloc_align attributes.
37657 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
37658 arguments. Handle also assume_aligned and alloc_align attributes.
37659 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
37660 calls to functions with assume_aligned or alloc_align attributes.
37661 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
37663 2014-02-08 Terry Guo <terry.guo@arm.com>
37665 * doc/invoke.texi: Document ARM -march=armv7e-m.
37667 2014-02-08 Jakub Jelinek <jakub@redhat.com>
37669 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
37670 flag on __cilkrts_rethrow builtin.
37673 * ipa-cp.c (determine_versionability): Fail at -O0
37674 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
37675 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
37678 2014-02-04 Jakub Jelinek <jakub@redhat.com>
37681 * tree-inline.c (copy_forbidden): Fail for
37682 __attribute__((optimize (0))) functions.
37684 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
37686 * varpool.c: Include pointer-set.h.
37687 (varpool_remove_unreferenced_decls): Variables in other partitions
37688 will not be output; be however careful to not lose information
37689 about partitioning.
37691 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
37693 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
37694 lookup in the vtable constructor.
37696 2014-02-07 Jeff Law <law@redhat.com>
37699 * config/m68k/m68k.md (ashldi_extsi): Turn into a
37700 define_insn_and_split.
37702 * ipa-inline.c (inline_small_functions): Fix typos.
37704 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37706 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
37707 (s390_can_use_return_insn): Declare.
37708 * config/s390/s390.h (EPILOGUE_USES): Define.
37709 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
37711 (s390_chunkify_start): Handle return JUMP_LABELs.
37712 (s390_early_mach): Emit a main_pool instruction on the entry edge.
37713 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
37714 (s390_can_use_return_insn): New functions.
37715 (s390_fix_long_loop_prediction): Handle conditional returns.
37716 (TARGET_SET_UP_BY_PROLOGUE): Define.
37717 * config/s390/s390.md (ANY_RETURN): New code iterator.
37718 (*creturn, *csimple_return, return, simple_return): New patterns.
37720 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37722 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
37723 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
37724 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
37725 REG_CFA_RESTORE list when deciding not to restore a register.
37727 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37729 * config/s390/s390.c: Include tree-pass.h and context.h.
37730 (s390_early_mach): New function, split out from...
37731 (s390_emit_prologue): ...here.
37732 (pass_data_s390_early_mach): New pass structure.
37733 (pass_s390_early_mach): New class.
37734 (s390_option_override): Create and register early_mach pass.
37735 Move to end of file.
37737 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37739 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
37740 to match for the exit block.
37742 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37744 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
37745 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
37746 Reject misaligned operands.
37748 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37750 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
37752 2014-02-07 Richard Biener <rguenther@suse.de>
37754 PR middle-end/60092
37755 * gimple-low.c (lower_builtin_posix_memalign): New function.
37756 (lower_stmt): Call it to lower posix_memalign in a way
37757 to make alignment info accessible.
37759 2014-02-07 Jakub Jelinek <jakub@redhat.com>
37762 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
37763 __builtin_setjmp_receiver.
37765 2014-02-07 Richard Biener <rguenther@suse.de>
37767 PR middle-end/60092
37768 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
37769 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
37770 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
37771 Handle BUILT_IN_POSIX_MEMALIGN.
37772 (find_func_clobbers): Likewise.
37773 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
37774 (call_may_clobber_ref_p_1): Likewise.
37776 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37779 * ipa-devirt.c (record_target_from_binfo): Remove overactive
37782 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37785 * lto-cgraph.c (lto_output_node): Use
37786 symtab_get_symbol_partitioning_class.
37787 (lto_output_varpool_node): likewise.
37788 (symtab_get_symbol_partitioning_class): Move here from
37789 lto/lto-partition.c
37790 * cgraph.h (symbol_partitioning_class): Likewise.
37791 (symtab_get_symbol_partitioning_class): Declare.
37793 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37795 * ggc.h (ggc_internal_cleared_alloc): New macro.
37796 * vec.h (vec_safe_copy): Handle memory stats.
37797 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
37798 * target-globals.c (save_target_globals): Likewise.
37800 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
37803 * expr.c (emit_move_resolve_push): Export; be bit more selective
37804 on when to clear alias set.
37805 * expr.h (emit_move_resolve_push): Declare.
37806 * function.h (struct function): Add tail_call_marked.
37807 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
37808 * config/i386/i386-protos.h (ix86_expand_push): Remove.
37809 * config/i386/i386.md (TImode move expander): De not call
37811 (FP push expanders): Preserve memory attributes.
37812 * config/i386/sse.md (push<mode>1): Remove.
37813 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
37814 (ix86_expand_push): Remove.
37815 * config/i386/mmx.md (push<mode>1): Remove.
37817 2014-02-06 Jakub Jelinek <jakub@redhat.com>
37819 PR rtl-optimization/60030
37820 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
37821 lopart with paradoxical subreg before shifting it up by hprec.
37823 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37825 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
37826 Remove extra newline at end of file.
37827 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
37828 (arm_issue_rate): Handle cortexa57.
37829 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
37830 (cortex-a57.cortex-a53): Likewise.
37832 2014-02-06 Jakub Jelinek <jakub@redhat.com>
37835 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
37836 don't record in REG_FRAME_RELATED_EXPR registers not set in that
37838 (arm_expand_prologue): Adjust all callers.
37839 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
37840 info, registers also at the lowest numbered registers side. Use
37841 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
37845 * var-tracking.c (adjust_mems): Before adding a SET to
37846 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
37848 2014-02-06 Alan Modra <amodra@gmail.com>
37851 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
37852 change SDmode to DDmode when lra_in_progress.
37854 2014-02-06 Jakub Jelinek <jakub@redhat.com>
37856 PR middle-end/59150
37857 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
37858 free_data_ref on the dr first, and before goto again also set dr
37859 to the next dr. For simd_lane_access, free old datarefs[i] before
37860 overwriting it. For get_vectype_for_scalar_type failure, don't
37861 free_data_ref if simd_lane_access.
37863 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
37866 * tree.h (opts_for_fn): New inline function.
37867 (opt_for_fn): Define.
37868 * config/i386/i386.c (ix86_function_regparm): Use
37869 opt_for_fn (decl, optimize) instead of optimize.
37871 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
37873 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
37874 for SYMBOL_REF in large memory model.
37876 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37878 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
37879 and crypto support.
37880 (cortex-a57): Likewise.
37881 (cortex-a57.cortex-a53): Likewise.
37883 2014-02-06 Yury Gribov <y.gribov@samsung.com>
37884 Kugan Vivekanandarajah <kuganv@linaro.org>
37886 * config/arm/arm.c (arm_vector_alignment_reachable): Check
37888 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
37890 2014-02-06 Richard Biener <rguenther@suse.de>
37892 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
37893 set_loop_copy and initialize_original_copy_tables.
37895 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
37897 * config/aarch64/aarch64-simd.md
37898 (aarch64_ashr_simddi): Change QI to SI.
37900 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
37901 Jakub Jelinek <jakub@redhat.com>
37903 PR middle-end/60013
37904 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
37907 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37909 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
37910 CODE_FOR_altivec_vpku[hw]um to
37911 CODE_FOR_altivec_vpku[hw]um_direct.
37912 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
37913 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
37914 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
37915 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
37917 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37919 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
37920 generation for -maltivec=be.
37921 (altivec_vsumsws): Simplify redundant test.
37923 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37925 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
37926 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
37927 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
37928 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
37929 gen_altivec_vpkuwum.
37930 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
37932 (altivec_vpks<VI_char>ss): Likewise.
37933 (altivec_vpks<VI_char>us): Likewise.
37934 (altivec_vpku<VI_char>us): Likewise.
37935 (altivec_vpku<VI_char>um): Likewise.
37936 (altivec_vpku<VI_char>um_direct): New (copy of
37937 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
37939 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
37940 target is little endian and -maltivec=be is not specified.
37941 (*altivec_vupkhs<VU_char>_direct): New (copy of
37942 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
37943 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
37944 target is little endian and -maltivec=be is not specified.
37945 (*altivec_vupkls<VU_char>_direct): New (copy of
37946 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
37947 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
37948 little endian and -maltivec=be is not specified.
37949 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
37950 little endian and -maltivec=be is not specified.
37952 2014-02-05 Richard Henderson <rth@redhat.com>
37955 * combine-stack-adj.c: Revert r206943.
37956 * sched-int.h (struct deps_desc): Add last_args_size.
37957 * sched-deps.c (init_deps): Initialize it.
37958 (sched_analyze_insn): Add OUTPUT dependencies between insns that
37959 contain REG_ARGS_SIZE notes.
37961 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
37963 * lto-cgraph.c (asm_nodes_output): Make global.
37964 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
37965 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
37966 (driver_handle_option): Handle OPT_fwpa.
37968 2014-02-05 Jakub Jelinek <jakub@redhat.com>
37971 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
37972 a comment typo and formatting issue. If odr_hash hasn't been
37973 created, return vNULL and set *completep to false.
37975 PR middle-end/57499
37976 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
37977 bb with no successors.
37979 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
37982 * doc/invoke.texi (-march): Clarify documentation for ARM.
37983 (-mtune): Likewise.
37986 2014-02-05 Richard Biener <rguenther@suse.de>
37988 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
37989 when not vectorizing because of too many alias checks.
37990 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
37991 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
37993 2014-02-05 Nick Clifton <nickc@redhat.com>
37995 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
37996 accept extended registers in any mode when compiling for the MN10300.
37998 2014-02-05 Yury Gribov <y.gribov@samsung.com>
38000 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
38001 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
38002 sanitization attributes.
38003 (can_inline_edge_p): Likewise.
38004 (sanitize_attrs_match_for_inline_p): New function.
38006 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
38008 * ipa-prop.c (detect_type_change): Shor circuit testing of
38009 type changes on THIS pointer.
38011 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
38014 * config/pa/pa.c (legitimize_tls_address): Return original address
38015 if not passed a SYMBOL_REF rtx.
38016 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
38018 (pa_emit_move_sequence): Simplify TLS source operands.
38019 (pa_legitimate_constant_p): Reject all TLS constants.
38020 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
38021 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
38023 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
38025 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
38026 groups when we know they are controlled by LTO.
38027 * varasm.c (default_binds_local_p_1): If object is in other partition,
38028 it will be resolved locally.
38030 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
38032 * config/host-linux.c (linux_gt_pch_use_address): Don't
38033 use SSIZE_MAX because it is not always defined.
38035 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
38038 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
38039 threshold for pseudo splitting.
38040 (update_ebb_live_info): Process call argument hard registers and
38041 hard registers from insn definition too.
38042 (max_small_class_regs_num): New constant.
38043 (inherit_in_ebb): Update live hard regs through EBBs. Update
38044 reloads_num only for small register classes. Don't split for
38047 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
38050 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
38053 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
38055 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
38056 visibility is safe.
38058 2014-02-04 Marek Polacek <polacek@redhat.com>
38060 * gdbinit.in (pel): Define.
38062 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
38064 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
38067 2014-02-04 Richard Biener <rguenther@suse.de>
38070 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
38071 in function context local.
38072 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
38073 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
38074 similar to LTO_imported_decl_ref.
38076 2014-02-04 Jakub Jelinek <jakub@redhat.com>
38078 PR tree-optimization/60002
38079 * cgraphclones.c (build_function_decl_skip_args): Clear
38080 DECL_LANG_SPECIFIC.
38082 PR tree-optimization/60023
38083 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
38084 false to gsi_replace.
38085 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
38086 has been in some EH region and vec_stmt could throw, add
38087 vec_stmt into the same EH region.
38088 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
38089 has no lhs, ignore it.
38090 * internal-fn.c (expand_MASK_LOAD): Likewise.
38093 * tree-inline.c (copy_forbidden): Fail for
38094 __attribute__((optimize (0))) functions.
38097 * omp-low.c (simd_clone_struct_copy): If from->inbranch
38098 is set, copy one less argument.
38099 (expand_simd_clones): Don't subtract clone_info->inbranch
38100 from simd_clone_struct_alloc argument.
38102 PR rtl-optimization/57915
38103 * recog.c (simplify_while_replacing): If all unary/binary/relational
38104 operation arguments are constant, attempt to simplify those.
38106 PR middle-end/59261
38107 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
38108 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
38110 2014-02-04 Richard Biener <rguenther@suse.de>
38112 PR tree-optimization/60012
38113 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
38114 TBAA disambiguation to all DDRs.
38116 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38119 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
38120 (LINK_SPEC): Use it for -shared, -shared-libgcc.
38122 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38125 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
38127 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38129 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
38130 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
38132 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38135 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
38136 to figure out targets of polymorphic calls with known decl.
38137 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
38138 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
38139 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
38140 (get_polymorphic_call_info): ... here.
38141 (get_polymorphic_call_info_from_invariant): New function.
38143 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38145 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
38146 lookup via vtable pointer; check for type consistency
38147 and turn inconsitent facts into UNREACHABLE.
38148 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
38149 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
38150 type inconsistent querries; return UNREACHABLE instead.
38152 2014-02-03 Richard Henderson <rth@twiddle.net>
38155 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
38156 already processed this node.
38157 (normalize_one_pred_1): Pass along mark_set.
38158 (normalize_one_pred): Create and destroy a pointer_set_t.
38159 (normalize_one_pred_chain): Likewise.
38161 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
38163 PR gcov-profile/58602
38164 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
38166 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
38169 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
38170 -fno-devirtualize; try to devirtualize by the knowledge of
38171 virtual table pointer given by aggregate propagation.
38172 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
38173 (ipa_print_node_jump_functions): Dump also offset that
38174 is relevant for polymorphic calls.
38175 (determine_known_aggregate_parts): Add arg_type parameter; use it
38176 instead of determining the type from pointer type.
38177 (ipa_compute_jump_functions_for_edge): Update call of
38178 determine_known_aggregate_parts.
38179 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
38180 (gimple_get_virt_method_for_binfo): ... here; simplify using
38181 vtable_pointer_value_to_vtable.
38182 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
38183 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
38184 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
38185 (vtable_pointer_value_to_vtable): Break out from ...; handle also
38187 (vtable_pointer_value_to_binfo): ... here.
38188 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
38190 2014-02-03 Teresa Johnson <tejohnson@google.com>
38192 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
38193 redef of outer loop index variable.
38195 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
38199 * doc/extend.texi (Function Attributes): Typo.
38201 2014-02-03 Cong Hou <congh@google.com>
38203 PR tree-optimization/60000
38204 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
38205 if the vectorized statement is a store. A store statement can only
38206 appear at the end of pattern statements.
38208 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
38210 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
38211 (ix86_option_override_internal): Default long double to 64-bit for
38212 32-bit Bionic and to 128-bit for 64-bit Bionic.
38214 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
38215 TARGET_LONG_DOUBLE_128 is true.
38216 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
38218 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
38219 (mlong-double-64): Negate -mlong-double-128.
38220 (mlong-double-128): New option.
38222 * config/i386/i386-c.c (ix86_target_macros): Define
38223 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
38225 * doc/invoke.texi: Document -mlong-double-128.
38227 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
38229 PR rtl-optimization/60024
38230 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
38232 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
38234 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
38236 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
38238 PR rtl-optimization/57662
38239 * sel-sched.c (code_motion_path_driver): Do not mark already not
38240 existing blocks in the visiting bitmap.
38242 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
38244 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
38245 on the insn being emitted.
38247 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
38248 Will Deacon <will.deacon@arm.com>
38250 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
38252 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38254 * config/arm/arm-tables.opt: Regenerate.
38256 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38258 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
38259 for vector types other than V16QImode.
38260 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
38261 define_expand, and call altivec_expand_vec_perm_le when producing
38262 code with little endian element order.
38263 (*altivec_vperm_<mode>_internal): New insn having previous
38264 behavior of altivec_vperm_<mode>.
38265 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
38266 altivec_expand_vec_perm_le when producing code with little endian
38268 (*altivec_vperm_<mode>_uns_internal): New insn having previous
38269 behavior of altivec_vperm_<mode>_uns.
38271 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38273 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
38274 (altivec_vsumsws): Add handling for -maltivec=be with a little
38276 (altivec_vsumsws_direct): New.
38277 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
38278 gen_altivec_vsumsws.
38280 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
38282 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
38283 vtable_pointer_value_to_binfo): New functions.
38284 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
38285 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
38287 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
38289 * config/nios2/nios2.md (load_got_register): Initialize GOT
38290 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
38291 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
38293 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
38295 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
38296 preserverd by passthrough, do not propagate the type.
38298 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
38300 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
38301 (mips_atomic_assign_expand_fenv): New function.
38302 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
38304 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
38306 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
38307 (__builtin_mips_set_fcsr): Likewise.
38308 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
38309 MIPS_USI_FTYPE_VOID.
38310 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
38311 (mips16_expand_set_fcsr): Likewise.
38312 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
38313 (mips16_set_fcsr_stub): Likewise.
38314 (mips16_get_fcsr_one_only_stub): New class.
38315 (mips16_set_fcsr_one_only_stub): Likewise.
38316 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
38317 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
38318 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
38319 (hard_float): New availability predicate.
38320 (mips_builtins): Add get_fcsr and set_fcsr.
38321 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
38322 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
38323 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
38324 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
38325 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
38328 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
38330 * config/mips/mips.c (mips_one_only_stub): New class.
38331 (mips_need_mips16_rdhwr_p): Replace with...
38332 (mips16_rdhwr_stub): ...this new variable.
38333 (mips16_stub_call_address): New function.
38334 (mips16_rdhwr_one_only_stub): New class.
38335 (mips_expand_thread_pointer): Use mips16_stub_call_address.
38336 (mips_output_mips16_rdhwr): Delete.
38337 (mips_finish_stub): New function.
38338 (mips_code_end): Use it to handle rdhwr stubs.
38340 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
38343 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
38344 when calculating size of integer atomic types.
38346 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
38348 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
38350 2014-02-01 Jakub Jelinek <jakub@redhat.com>
38352 PR tree-optimization/60003
38353 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
38354 * profile.c (branch_prob): Use gimple_call_builtin_p
38355 to check for BUILT_IN_SETJMP_RECEIVER.
38356 * tree-inline.c (copy_bb): Call notice_special_calls.
38358 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
38361 * lra-constraints.c (process_alt_operands): Update reload_sum only
38364 2014-01-31 Richard Henderson <rth@redhat.com>
38366 PR middle-end/60004
38367 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
38368 until after else_eh is processed.
38370 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
38372 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
38373 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
38374 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
38375 in smmintrin.h, remove them.
38376 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
38377 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
38378 * config/i386/i386.md (ROUND_SAE): Fix value.
38379 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
38380 (const48_operand): New.
38381 * config/i386/subst.md (round), (round_expand): Use
38382 const_4_or_8_to_11_operand.
38383 (round_saeonly), (round_saeonly_expand): Use const48_operand.
38385 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
38387 * config/i386/constraints.md (Yk): Swap meaning with k.
38388 * config/i386/i386.md (movhi_internal): Change Yk to k.
38389 (movqi_internal): Ditto.
38390 (*k<logic><mode>): Ditto.
38393 (kandn<mode>): Ditto.
38394 (*<code>hi_1): Ditto.
38395 (*<code>qi_1): Ditto.
38396 (kxnor<mode>): Ditto.
38397 (kortestzhi): Ditto.
38398 (kortestchi): Ditto.
38400 (*one_cmplhi2_1): Ditto.
38401 (*one_cmplqi2_1): Ditto.
38402 * config/i386/sse.md (): Change k to Yk.
38403 (avx512f_load<mode>_mask): Ditto.
38404 (avx512f_blendm<mode>): Ditto.
38405 (avx512f_store<mode>_mask): Ditto.
38406 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
38407 (avx512f_storedqu<mode>_mask): Ditto.
38408 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
38410 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
38411 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
38412 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
38413 (avx512f_maskcmp<mode>3): Ditto.
38414 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
38415 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
38416 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
38417 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
38418 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
38419 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
38420 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
38421 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
38422 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
38423 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
38424 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
38425 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
38426 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
38427 (vec_extract_lo_<mode>_maskm): Ditto.
38428 (vec_extract_hi_<mode>_maskm): Ditto.
38429 (avx512f_vternlog<mode>_mask): Ditto.
38430 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
38431 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
38432 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
38433 (avx512f_<code>v8div16qi2_mask): Ditto.
38434 (avx512f_<code>v8div16qi2_mask_store): Ditto.
38435 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
38436 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
38437 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
38438 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
38439 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
38440 (*avx512pf_gatherpf<mode>df_mask): Ditto.
38441 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
38442 (*avx512pf_scatterpf<mode>df_mask): Ditto.
38443 (avx512cd_maskb_vec_dupv8di): Ditto.
38444 (avx512cd_maskw_vec_dupv16si): Ditto.
38445 (avx512f_vpermi2var<mode>3_maskz): Ditto.
38446 (avx512f_vpermi2var<mode>3_mask): Ditto.
38447 (avx512f_vpermi2var<mode>3_mask): Ditto.
38448 (avx512f_vpermt2var<mode>3_maskz): Ditto.
38449 (*avx512f_gathersi<mode>): Ditto.
38450 (*avx512f_gathersi<mode>_2): Ditto.
38451 (*avx512f_gatherdi<mode>): Ditto.
38452 (*avx512f_gatherdi<mode>_2): Ditto.
38453 (*avx512f_scattersi<mode>): Ditto.
38454 (*avx512f_scatterdi<mode>): Ditto.
38455 (avx512f_compress<mode>_mask): Ditto.
38456 (avx512f_compressstore<mode>_mask): Ditto.
38457 (avx512f_expand<mode>_mask): Ditto.
38458 * config/i386/subst.md (mask): Change k to Yk.
38459 (mask_scalar_merge): Ditto.
38462 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
38464 * doc/extend.texi (Vector Extensions): Document ?: in C++.
38466 2014-01-31 Richard Biener <rguenther@suse.de>
38468 PR middle-end/59990
38469 * builtins.c (fold_builtin_memory_op): Make sure to not
38470 use a floating-point mode or a boolean or enumeral type for
38471 the copy operation.
38473 2014-01-30 DJ Delorie <dj@redhat.com>
38475 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
38476 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
38477 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
38478 whenever main() has an epilogue.
38480 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38482 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
38483 unused variable "field".
38484 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
38485 (vsx_mergeh_<mode>): Likewise.
38486 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
38487 (altivec_vmrghh): Likewise.
38488 (altivec_vmrghw): Likewise.
38489 (altivec_vmrglb): Likewise.
38490 (altivec_vmrglh): Likewise.
38491 (altivec_vmrglw): Likewise.
38492 (altivec_vspltb): Add missing uses.
38493 (altivec_vsplth): Likewise.
38494 (altivec_vspltw): Likewise.
38495 (altivec_vspltsf): Likewise.
38497 2014-01-30 Jakub Jelinek <jakub@redhat.com>
38500 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
38501 frame related instructions.
38503 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
38505 PR rtl-optimization/59959
38506 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
38507 any reload of register whose subreg is invalid.
38509 2014-01-30 Jakub Jelinek <jakub@redhat.com>
38511 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
38512 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
38513 Add missing return type - void.
38515 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38517 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
38518 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
38519 remove element index adjustment for endian (now handled in vsx.md
38521 (altivec_expand_vec_perm_const): Use
38522 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
38523 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
38524 (vsx_xxspltw_<mode>): Adjust element index for little endian.
38525 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
38526 define_expand and a new define_insn *altivec_vspltb_internal;
38527 adjust for -maltivec=be on a little endian target.
38528 (altivec_vspltb_direct): New.
38529 (altivec_vsplth): Divide into a define_expand and a new
38530 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
38531 little endian target.
38532 (altivec_vsplth_direct): New.
38533 (altivec_vspltw): Divide into a define_expand and a new
38534 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
38535 little endian target.
38536 (altivec_vspltw_direct): New.
38537 (altivec_vspltsf): Divide into a define_expand and a new
38538 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
38539 a little endian target.
38541 2014-01-30 Richard Biener <rguenther@suse.de>
38543 PR tree-optimization/59993
38544 * tree-ssa-forwprop.c (associate_pointerplus): Check we
38545 can propagate form the earlier stmt and avoid the transform
38546 when the intermediate result is needed.
38548 2014-01-30 Alangi Derick <alangiderick@gmail.com>
38550 * README.Portability: Fix typo.
38552 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
38554 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
38555 comparison_operator with ordered_comparison_operator.
38557 2014-01-30 Nick Clifton <nickc@redhat.com>
38559 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
38560 Rename to mn10300_store_multiple_regs.
38561 * config/mn10300/mn10300.c: Likewise.
38562 * config/mn10300/mn10300.md (store_movm): Fix typo: call
38563 store_multiple_regs.
38564 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
38565 Call mn10300_store_multiple_regs.
38567 2014-01-30 Nick Clifton <nickc@redhat.com>
38568 DJ Delorie <dj@redhat.com>
38570 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
38571 %fp 2 to keep registers after it properly word-aligned.
38572 (rl78_alloc_physical_registers_umul): Handle the case where both
38573 input operands are the same.
38575 2014-01-30 Richard Biener <rguenther@suse.de>
38577 PR tree-optimization/59903
38578 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
38581 2014-01-30 Jason Merrill <jason@redhat.com>
38584 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
38587 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
38589 2014-01-30 Richard Biener <rguenther@suse.de>
38591 PR tree-optimization/59951
38592 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
38594 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
38597 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
38598 SFmode to DFmode case.
38600 2014-01-29 DJ Delorie <dj@redhat.com>
38602 * config/msp430/msp430.opt (-minrt): New.
38603 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
38605 (ENDFILE_SPEC): Likewise.
38607 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
38609 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
38610 (estimate_function_body_sizes): Use it.
38612 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
38615 * dwarf2out.c (is_cxx_auto): New.
38616 (is_base_type): Use it.
38617 (gen_type_die_with_usage): Likewise.
38619 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
38621 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
38622 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
38623 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
38624 -maltivec=be with LE targets.
38625 (vsx_mergeh_<mode>): Likewise.
38626 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
38627 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
38628 (altivec_vmrghb): Replace with define_expand and new
38629 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
38630 (altivec_vmrghb_direct): New define_insn.
38631 (altivec_vmrghh): Replace with define_expand and new
38632 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
38633 (altivec_vmrghh_direct): New define_insn.
38634 (altivec_vmrghw): Replace with define_expand and new
38635 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
38636 (altivec_vmrghw_direct): New define_insn.
38637 (*altivec_vmrghsf): Adjust for endianness.
38638 (altivec_vmrglb): Replace with define_expand and new
38639 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
38640 (altivec_vmrglb_direct): New define_insn.
38641 (altivec_vmrglh): Replace with define_expand and new
38642 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
38643 (altivec_vmrglh_direct): New define_insn.
38644 (altivec_vmrglw): Replace with define_expand and new
38645 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
38646 (altivec_vmrglw_direct): New define_insn.
38647 (*altivec_vmrglsf): Adjust for endianness.
38648 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
38649 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
38650 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
38651 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
38652 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
38653 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
38654 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
38655 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
38657 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
38659 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
38660 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
38663 2014-01-29 Richard Biener <rguenther@suse.de>
38665 PR tree-optimization/58742
38666 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
38667 associate_pointerplus_align.
38668 (associate_pointerplus_diff): New function.
38669 (associate_pointerplus): Likewise. Call associate_pointerplus_align
38670 and associate_pointerplus_diff.
38672 2014-01-29 Richard Biener <rguenther@suse.de>
38674 * lto-streamer.h (LTO_major_version): Bump to 3.
38675 (LTO_minor_version): Reset to 0.
38677 2014-01-29 Renlin Li <Renlin.Li@arm.com>
38679 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
38680 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
38681 (arm_file_start): Generate correct asm header for armv7ve.
38682 * config/arm/bpabi.h: Add multilib support for armv7ve.
38683 * config/arm/driver-arm.c: Change the architectures of cortex-a7
38684 and cortex-a15 to armv7ve.
38685 * config/arm/t-aprofile: Add multilib support for armv7ve.
38686 * doc/invoke.texi: Document -march=armv7ve.
38688 2014-01-29 Richard Biener <rguenther@suse.de>
38690 PR tree-optimization/58742
38691 * tree-ssa-forwprop.c (associate_plusminus): Return true
38692 if we changed sth, defer EH cleanup to ...
38693 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
38694 (simplify_mult): New function.
38696 2014-01-29 Jakub Jelinek <jakub@redhat.com>
38698 PR middle-end/59917
38699 PR tree-optimization/59920
38700 * tree.c (build_common_builtin_nodes): Remove
38701 __builtin_setjmp_dispatcher initialization.
38702 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
38703 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
38704 instead of gsi_after_labels + manually skipping debug stmts.
38705 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
38706 ignore bbs with IFN_ABNORMAL_DISPATCHER.
38707 * tree-inline.c (copy_edges_for_bb): Remove
38708 can_make_abnormal_goto argument, instead add abnormal_goto_dest
38709 argument. Ignore computed_goto_p stmts. Don't call
38710 make_abnormal_goto_edges. If a call might need abnormal edges
38711 for non-local gotos, see if it already has an edge to
38712 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
38713 with true argument, don't do anything then, otherwise add
38714 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
38715 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
38717 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
38718 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
38719 (lower_stmt): Don't set data->calls_builtin_setjmp.
38720 (lower_builtin_setjmp): Adjust comment.
38721 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
38722 * tree-cfg.c (found_computed_goto): Remove.
38723 (factor_computed_gotos): Remove.
38724 (make_goto_expr_edges): Return bool, true for computed gotos.
38725 Don't call make_abnormal_goto_edges.
38726 (build_gimple_cfg): Don't set found_computed_goto, don't call
38727 factor_computed_gotos.
38728 (computed_goto_p): No longer static.
38729 (make_blocks): Don't set found_computed_goto.
38730 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
38731 (make_edges): If make_goto_expr_edges returns true, push bb
38732 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
38733 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
38734 vector. Record mapping between bbs and OpenMP regions if there
38735 are any, adjust make_gimple_omp_edges caller. Call
38736 handle_abnormal_edges.
38737 (make_abnormal_goto_edges): Remove.
38738 * tree-cfg.h (make_abnormal_goto_edges): Remove.
38739 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
38740 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
38741 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
38742 * internal-fn.def (ABNORMAL_DISPATCHER): New.
38743 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
38744 filling *region also set *region_idx to (*region)->entry->index.
38747 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
38748 For REGs set ORIGINAL_REGNO.
38750 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
38752 * doc/md.texi: Mention that a target shouldn't implement
38753 vec_widen_(s|u)mul_even/odd pair if it is less efficient
38756 2014-01-29 Jakub Jelinek <jakub@redhat.com>
38758 PR tree-optimization/59594
38759 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
38760 a copy of the datarefs vector rather than the vector itself.
38762 2014-01-28 Jason Merrill <jason@redhat.com>
38765 * dwarf2out.c (auto_die): New static.
38766 (gen_type_die_with_usage): Handle C++1y 'auto'.
38767 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
38770 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
38773 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
38774 (SPEC_X32): Likewise.
38775 (SPEC_64): Likewise.
38776 * config/i386/i386.c (ix86_option_override_internal): Turn off
38777 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
38779 (x86_file_start): Output .code16gcc for TARGET_16BIT.
38780 * config/i386/i386.h (TARGET_16BIT): New macro.
38781 (TARGET_16BIT_P): Likewise.
38782 * config/i386/i386.opt: Add m16.
38783 * doc/invoke.texi: Document -m16.
38785 2014-01-28 Jakub Jelinek <jakub@redhat.com>
38787 PR preprocessor/59935
38788 * input.c (location_get_source_line): Bail out on when line number
38789 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
38791 2014-01-28 Richard Biener <rguenther@suse.de>
38793 PR tree-optimization/58742
38794 * tree-ssa-forwprop.c (associate_plusminus): Handle
38795 pointer subtraction of the form (T)(P + A) - (T)P.
38797 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
38799 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
38802 2014-01-28 Richard Biener <rguenther@suse.de>
38805 2014-01-28 Richard Biener <rguenther@suse.de>
38807 PR rtl-optimization/45364
38808 PR rtl-optimization/59890
38809 * var-tracking.c (local_get_addr_clear_given_value): Handle
38810 already cleared slot.
38811 (val_reset): Handle not allocated local_get_addr_cache.
38812 (vt_find_locations): Use post-order on the inverted CFG.
38814 2014-01-28 Richard Biener <rguenther@suse.de>
38816 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
38818 2014-01-28 Richard Biener <rguenther@suse.de>
38820 PR rtl-optimization/45364
38821 PR rtl-optimization/59890
38822 * var-tracking.c (local_get_addr_clear_given_value): Handle
38823 already cleared slot.
38824 (val_reset): Handle not allocated local_get_addr_cache.
38825 (vt_find_locations): Use post-order on the inverted CFG.
38827 2014-01-28 Alan Modra <amodra@gmail.com>
38829 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
38830 * configure.ac <recursive call for build != host>: Define
38831 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
38832 and LD_FOR_BUILD too.
38833 * configure: Regenerate.
38835 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
38837 * config/i386/i386.c (get_builtin_code_for_version): Separate
38838 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
38839 Broadwell from Haswell.
38841 2014-01-27 Steve Ellcey <sellcey@mips.com>
38843 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
38844 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
38845 * config/mips/mips.c (mips_option_override): Change setting
38847 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
38848 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
38849 Change from Mask to Var.
38851 2014-01-27 Jeff Law <law@redhat.com>
38853 * ipa-inline.c (inline_small_functions): Fix typo.
38855 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
38857 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
38858 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
38859 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
38860 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
38861 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
38862 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
38863 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
38864 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
38865 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
38866 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
38867 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
38868 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
38869 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
38870 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
38871 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
38872 (_mm512_storeu_epi64): Ditto.
38873 (_mm512_cmpge_epi32_mask): Ditto.
38874 (_mm512_cmpge_epu32_mask): Ditto.
38875 (_mm512_cmpge_epi64_mask): Ditto.
38876 (_mm512_cmpge_epu64_mask): Ditto.
38877 (_mm512_cmple_epi32_mask): Ditto.
38878 (_mm512_cmple_epu32_mask): Ditto.
38879 (_mm512_cmple_epi64_mask): Ditto.
38880 (_mm512_cmple_epu64_mask): Ditto.
38881 (_mm512_cmplt_epi32_mask): Ditto.
38882 (_mm512_cmplt_epu32_mask): Ditto.
38883 (_mm512_cmplt_epi64_mask): Ditto.
38884 (_mm512_cmplt_epu64_mask): Ditto.
38885 (_mm512_cmpneq_epi32_mask): Ditto.
38886 (_mm512_cmpneq_epu32_mask): Ditto.
38887 (_mm512_cmpneq_epi64_mask): Ditto.
38888 (_mm512_cmpneq_epu64_mask): Ditto.
38889 (_mm512_expand_pd): Ditto.
38890 (_mm512_expand_ps): Ditto.
38891 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
38892 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
38893 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
38894 * config/i386/i386.c (ix86_builtins): Add
38895 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
38896 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
38897 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
38898 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
38899 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
38900 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
38901 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
38902 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
38903 IX86_BUILTIN_PMOVUSQW512_MEM.
38904 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
38905 __builtin_ia32_pmovsqd512mem_mask,
38906 __builtin_ia32_pmovqd512mem_mask,
38907 __builtin_ia32_pmovusqw512mem_mask,
38908 __builtin_ia32_pmovsqw512mem_mask,
38909 __builtin_ia32_pmovqw512mem_mask,
38910 __builtin_ia32_pmovusdw512mem_mask,
38911 __builtin_ia32_pmovsdw512mem_mask,
38912 __builtin_ia32_pmovdw512mem_mask,
38913 __builtin_ia32_pmovqb512mem_mask,
38914 __builtin_ia32_pmovusqb512mem_mask,
38915 __builtin_ia32_pmovsqb512mem_mask,
38916 __builtin_ia32_pmovusdb512mem_mask,
38917 __builtin_ia32_pmovsdb512mem_mask,
38918 __builtin_ia32_pmovdb512mem_mask.
38919 (bdesc_args): Add __builtin_ia32_expanddf512,
38920 __builtin_ia32_expandsf512.
38921 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
38922 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
38923 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
38924 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
38925 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
38926 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
38927 (avx512f_<code>v8div16qi2_mask_store): This.
38928 (avx512f_expand<mode>): New.
38930 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
38932 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
38934 (_mm512_mask_prefetch_i64gather_pd): Ditto.
38935 (_mm512_prefetch_i32scatter_pd): Ditto.
38936 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
38937 (_mm512_prefetch_i64scatter_pd): Ditto.
38938 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
38939 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
38940 (_mm512_mask_prefetch_i64gather_ps): Ditto.
38941 (_mm512_prefetch_i32scatter_ps): Ditto.
38942 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
38943 (_mm512_prefetch_i64scatter_ps): Ditto.
38944 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
38945 * config/i386/i386-builtin-types.def: Define
38946 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
38947 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
38948 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
38949 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
38950 IX86_BUILTIN_SCATTERPFQPD.
38951 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
38952 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
38953 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
38954 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
38955 __builtin_ia32_scatterpfqps.
38956 (ix86_expand_builtin): Expand new built-ins.
38957 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
38958 fix memory access data type.
38959 (*avx512pf_gatherpf<mode>_mask): Ditto.
38960 (*avx512pf_gatherpf<mode>): Ditto.
38961 (avx512pf_scatterpf<mode>): Ditto.
38962 (*avx512pf_scatterpf<mode>_mask): Ditto.
38963 (*avx512pf_scatterpf<mode>): Ditto.
38964 (GATHER_SCATTER_SF_MEM_MODE): New.
38965 (avx512pf_gatherpf<mode>df): Ditto.
38966 (*avx512pf_gatherpf<mode>df_mask): Ditto.
38967 (*avx512pf_scatterpf<mode>df): Ditto.
38969 2014-01-27 Jakub Jelinek <jakub@redhat.com>
38972 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
38973 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
38976 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
38978 * common/config/arm/arm-common.c
38979 (arm_rewrite_mcpu): Handle multiple names.
38981 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
38983 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
38985 * gimple-builder.h (create_gimple_tmp): Delete.
38987 2014-01-27 Christian Bruel <christian.bruel@st.com>
38989 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
38992 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
38994 * config/pa/pa.md (call): Generate indirect long calls to non-local
38995 functions when outputing 32-bit code.
38996 (call_value): Likewise except for special call to buggy powf function.
38998 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
38999 portable runtime and PIC indirect calls.
39000 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
39001 and PIC call sequences. Use ldo instead of blr to set return register
39002 in PIC call sequence.
39004 2014-01-25 Walter Lee <walt@tilera.com>
39006 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
39007 avoid clobbering a live register.
39009 2014-01-25 Walter Lee <walt@tilera.com>
39011 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
39012 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
39013 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
39014 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
39016 2014-01-25 Walter Lee <walt@tilera.com>
39018 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
39019 arguments on even registers.
39020 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
39022 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
39023 (BIGGEST_ALIGNMENT): Ditto.
39024 (BIGGEST_FIELD_ALIGNMENT): Ditto.
39026 2014-01-25 Walter Lee <walt@tilera.com>
39028 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
39029 insns before bundling.
39030 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
39032 2014-01-25 Walter Lee <walt@tilera.com>
39034 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
39035 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
39036 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
39038 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
39040 * config/mips/constraints.md (kl): Delete.
39041 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
39042 define expands, using...
39043 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
39044 instructions for MIPS16.
39045 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
39046 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
39048 2014-01-25 Walter Lee <walt@tilera.com>
39050 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
39054 2014-01-25 Walter Lee <walt@tilera.com>
39056 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
39057 (TARGET_EXPAND_TO_RTL_HOOK): Define.
39059 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
39061 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
39064 2014-01-25 Jakub Jelinek <jakub@redhat.com>
39066 * print-rtl.c (in_call_function_usage): New var.
39067 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
39068 EXPR_LIST mode as mode and not as reg note name.
39070 PR middle-end/59561
39071 * cfgloopmanip.c (copy_loop_info): If
39072 loop->warned_aggressive_loop_optimizations, make sure
39073 the flag is set in target loop too.
39075 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
39077 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
39079 * builtins.def: Likewise.
39080 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
39081 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
39082 * ira.c (ira_setup_eliminable_regset): Likewise.
39083 * omp-low.c (gate_expand_omp): Likewise.
39084 (execute_lower_omp): Likewise.
39085 (diagnose_sb_0): Likewise.
39086 (gate_diagnose_omp_blocks): Likewise.
39087 (simd_clone_clauses_extract): Likewise.
39090 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
39092 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
39093 correction for little endian...
39094 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
39097 2014-01-24 Jeff Law <law@redhat.com>
39099 PR tree-optimization/59919
39100 * tree-vrp.c (find_assert_locations_1): Do not register asserts
39101 for non-returning calls.
39103 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
39105 * common/config/aarch64/aarch64-common.c
39106 (aarch64_rewrite_mcpu): Handle multiple names.
39107 * config/aarch64/aarch64.h
39108 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
39110 2014-01-24 Dodji Seketeli <dodji@redhat.com>
39112 * input.c (add_file_to_cache_tab): Handle the case where fopen
39115 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
39118 * config/i386/i386.md (pushsf splitter): Get stack adjustment
39119 from push operand if code of push isn't PRE_DEC.
39121 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
39124 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
39125 -mquad-memory-atomic. Update -mquad-memory documentation to say
39126 it is only used for non-atomic loads/stores.
39128 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
39129 -mquad-memory or -mquad-memory-atomic switches.
39131 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
39132 -mquad-memory-atomic to ISA 2.07 support.
39134 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
39135 to separate support of normal quad word memory operations (ldq, stq)
39136 from the atomic quad word memory operations.
39138 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
39139 support to separate non-atomic quad word operations from atomic
39140 quad word operations. Disable non-atomic quad word operations in
39141 little endian mode so that we don't have to swap words after the
39142 load and before the store.
39143 (quad_load_store_p): Add comment about atomic quad word support.
39144 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
39145 options printed with -mdebug=reg.
39147 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
39148 -mquad-memory-atomic as the test for whether we have quad word
39149 atomic instructions.
39150 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
39151 or -mp8-vector are used, allow byte/half-word atomic operations.
39153 * config/rs6000/sync.md (load_lockedti): Insure that the address
39154 is a proper indexed or indirect address for the lqarx instruction.
39155 On little endian systems, swap the hi/lo registers after the lqarx
39157 (load_lockedpti): Use indexed_or_indirect_operand predicate to
39158 insure the address is valid for the lqarx instruction.
39159 (store_conditionalti): Insure that the address is a proper indexed
39160 or indirect address for the stqcrx. instruction. On little endian
39161 systems, swap the hi/lo registers before doing the stqcrx.
39163 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
39164 insure the address is valid for the stqcrx. instruction.
39166 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
39167 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
39168 type of quad memory support is available.
39170 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
39172 PR regression/59915
39173 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
39174 there is a danger of looping.
39176 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
39178 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
39179 force flag_ira_loop_pressure if set via command line.
39181 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
39183 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
39184 (ashr_simd): New builtin handling DI mode.
39185 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
39186 (aarch64_sshr_simddi): New match pattern.
39187 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
39188 (vshrd_n_s64): Likewise.
39189 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
39191 2014-01-23 Nick Clifton <nickc@redhat.com>
39193 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
39194 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
39195 favour of mcu specific scripts.
39196 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
39199 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
39200 Alex Velenko <Alex.Velenko@arm.com>
39202 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
39203 (vaddv_s16): Likewise.
39204 (vaddv_s32): Likewise.
39205 (vaddv_u8): Likewise.
39206 (vaddv_u16): Likewise.
39207 (vaddv_u32): Likewise.
39208 (vaddvq_s8): Likewise.
39209 (vaddvq_s16): Likewise.
39210 (vaddvq_s32): Likewise.
39211 (vaddvq_s64): Likewise.
39212 (vaddvq_u8): Likewise.
39213 (vaddvq_u16): Likewise.
39214 (vaddvq_u32): Likewise.
39215 (vaddvq_u64): Likewise.
39216 (vaddv_f32): Likewise.
39217 (vaddvq_f32): Likewise.
39218 (vaddvq_f64): Likewise.
39219 (vmaxv_f32): Likewise.
39220 (vmaxv_s8): Likewise.
39221 (vmaxv_s16): Likewise.
39222 (vmaxv_s32): Likewise.
39223 (vmaxv_u8): Likewise.
39224 (vmaxv_u16): Likewise.
39225 (vmaxv_u32): Likewise.
39226 (vmaxvq_f32): Likewise.
39227 (vmaxvq_f64): Likewise.
39228 (vmaxvq_s8): Likewise.
39229 (vmaxvq_s16): Likewise.
39230 (vmaxvq_s32): Likewise.
39231 (vmaxvq_u8): Likewise.
39232 (vmaxvq_u16): Likewise.
39233 (vmaxvq_u32): Likewise.
39234 (vmaxnmv_f32): Likewise.
39235 (vmaxnmvq_f32): Likewise.
39236 (vmaxnmvq_f64): Likewise.
39237 (vminv_f32): Likewise.
39238 (vminv_s8): Likewise.
39239 (vminv_s16): Likewise.
39240 (vminv_s32): Likewise.
39241 (vminv_u8): Likewise.
39242 (vminv_u16): Likewise.
39243 (vminv_u32): Likewise.
39244 (vminvq_f32): Likewise.
39245 (vminvq_f64): Likewise.
39246 (vminvq_s8): Likewise.
39247 (vminvq_s16): Likewise.
39248 (vminvq_s32): Likewise.
39249 (vminvq_u8): Likewise.
39250 (vminvq_u16): Likewise.
39251 (vminvq_u32): Likewise.
39252 (vminnmv_f32): Likewise.
39253 (vminnmvq_f32): Likewise.
39254 (vminnmvq_f64): Likewise.
39256 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
39258 * config/aarch64/aarch64-simd.md
39259 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
39260 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
39261 (*aarch64_mul3_elt<mode>): Likewise.
39262 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
39263 (*aarch64_mul3_elt_to_64v2df): Likewise.
39264 (*aarch64_mla_elt<mode>): Likewise.
39265 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
39266 (*aarch64_mls_elt<mode>): Likewise.
39267 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
39268 (*aarch64_fma4_elt<mode>): Likewise.
39269 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
39270 (*aarch64_fma4_elt_to_64v2df): Likewise.
39271 (*aarch64_fnma4_elt<mode>): Likewise.
39272 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
39273 (*aarch64_fnma4_elt_to_64v2df): Likewise.
39274 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
39275 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
39276 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
39277 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
39278 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
39279 (aarch64_sqdmull_lane<mode>_internal): Likewise.
39280 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
39282 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
39284 * config/aarch64/aarch64-simd.md
39285 (aarch64_be_checked_get_lane<mode>): New define_expand.
39286 * config/aarch64/aarch64-simd-builtins.def
39287 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
39288 New builtin definition.
39289 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
39290 Use new safe be builtin.
39292 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
39294 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
39296 (aarch64_be_st1<mode>): Likewise.
39297 (aarch_ld1<VALL:mode>): Define_expand modified.
39298 (aarch_st1<VALL:mode>): Likewise.
39299 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
39300 (UNSPEC_ST1): Likewise.
39302 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
39304 * config/microblaze/microblaze.md: Add trap insn and attribute
39306 2014-01-23 Dodji Seketeli <dodji@redhat.com>
39308 PR preprocessor/58580
39309 * input.h (location_get_source_line): Take an additional line_size
39311 (void diagnostics_file_cache_fini): Declare new function.
39312 * input.c (struct fcache): New type.
39313 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
39314 New static constants.
39315 (diagnostic_file_cache_init, total_lines_num)
39316 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
39317 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
39318 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
39319 (get_next_line, read_next_line, goto_next_line, read_line_num):
39320 New static function definitions.
39321 (diagnostic_file_cache_fini): New function.
39322 (location_get_source_line): Take an additional output line_len
39323 parameter. Re-write using lookup_or_add_file_to_cache_tab and
39325 * diagnostic.c (diagnostic_finish): Call
39326 diagnostic_file_cache_fini.
39327 (adjust_line): Take an additional input parameter for the length
39328 of the line, rather than calculating it with strlen.
39329 (diagnostic_show_locus): Adjust the use of
39330 location_get_source_line and adjust_line with respect to their new
39331 signature. While displaying a line now, do not stop at the first
39332 null byte. Rather, display the zero byte as a space and keep
39333 going until we reach the size of the line.
39334 * Makefile.in: Add vec.o to OBJS-libcommon
39336 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
39337 Ilya Tocar <ilya.tocar@intel.com>
39339 * config/i386/avx512fintrin.h (_mm512_kmov): New.
39340 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
39341 (__builtin_ia32_kmov16): Ditto.
39342 * config/i386/i386.md (UNSPEC_KMOV): New.
39345 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
39347 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
39348 (_mm512_storeu_si512): Ditto.
39350 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
39353 * rtl.h (get_referenced_operands): Declare.
39354 * recog.c (get_referenced_operands): New function.
39355 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
39356 operands have been referenced when recording LO_SUM references.
39358 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
39360 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
39362 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
39364 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
39365 Enable for generic and recent AMD targets.
39367 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
39369 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
39370 ARG_SIZE note when adjustment was eliminated.
39372 2014-01-22 Jeff Law <law@redhat.com>
39374 PR tree-optimization/59597
39375 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
39376 in file. Accept new argument REGISTERING and use it to modify
39377 dump output appropriately.
39378 (register_jump_thread): Corresponding changes.
39379 (mark_threaded_blocks): Reinstate code to cancel unprofitable
39380 thread paths involving joiner blocks. Add code to dump cancelled
39381 jump threading paths.
39383 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
39385 PR rtl-optimization/59477
39386 * lra-constraints.c (inherit_in_ebb): Process call for living hard
39387 regs. Update reloads_num and potential_reload_hard_regs for all insns.
39389 2014-01-22 Tom Tromey <tromey@redhat.com>
39391 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
39393 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
39395 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
39397 PR rtl-optimization/59896
39398 * lra-constraints.c (process_alt_operands): Check unused note for
39399 matched operands of insn with no output reloads.
39401 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
39403 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
39404 (mips_move_from_gpr_cost): Likewise.
39406 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
39408 PR rtl-optimization/59858
39409 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
39410 ira_class_hard_regs_num.
39411 (process_alt_operands): Increase reject for dying matched operand.
39413 2014-01-21 Jakub Jelinek <jakub@redhat.com>
39416 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
39417 smaller than size, perform several stores or loads and stores
39418 at dst + count - size to store or copy all of size bytes, rather
39419 than just last modesize bytes.
39421 2014-01-20 DJ Delorie <dj@redhat.com>
39423 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
39424 that CLOBBERs are REGs before propogating their values.
39426 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
39428 PR middle-end/59789
39429 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
39430 (cgraph_inline_failed_type): New function.
39431 * cgraph.h (DEFCIFCODE): Add type.
39432 (cgraph_inline_failed_type_t): New enum.
39433 (cgraph_inline_failed_type): New prototype.
39434 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
39435 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
39436 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
39437 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
39438 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
39439 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
39440 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
39441 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
39442 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
39443 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
39444 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
39445 OPTIMIZATION_MISMATCH.
39446 * tree-inline.c (expand_call_inline): Emit errors during
39447 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
39449 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
39452 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
39453 mode attribute in insn output.
39455 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
39457 * output.h (output_constant): Delete.
39458 * varasm.c (output_constant): Make private.
39460 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
39462 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
39464 2014-01-20 Jakub Jelinek <jakub@redhat.com>
39466 PR middle-end/59860
39467 * tree.h (fold_builtin_strcat): New prototype.
39468 * builtins.c (fold_builtin_strcat): No longer static. Add len
39469 argument, if non-NULL, don't call c_strlen. Optimize
39470 directly into __builtin_memcpy instead of __builtin_strcpy.
39471 (fold_builtin_2): Adjust fold_builtin_strcat caller.
39472 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
39474 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
39476 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
39477 for SImode_address_operand operands, having only a REG argument.
39479 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
39481 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
39482 loader name using mbig-endian.
39483 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
39485 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
39487 * doc/invoke.texi (-march): Clarify documentation for AArch64.
39488 (-mtune): Likewise.
39491 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
39493 * config/aarch64/aarch64-protos.h
39494 (aarch64_cannot_change_mode_class_ptr): Declare.
39495 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
39496 aarch64_cannot_change_mode_class_ptr): New.
39497 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
39498 backend hook aarch64_cannot_change_mode_class.
39500 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
39502 * common/config/aarch64/aarch64-common.c
39503 (aarch64_handle_option): Don't handle any option order logic here.
39504 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
39505 selected_cpu, warn on architecture version mismatch.
39506 (aarch64_override_options): Fix parsing order for option strings.
39508 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39509 Iain Sandoe <iain@codesourcery.com>
39512 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
39513 warning. Amend comment to reflect current functionality.
39515 2014-01-20 Richard Biener <rguenther@suse.de>
39517 PR middle-end/59860
39518 * builtins.c (fold_builtin_strcat): Remove case better handled
39519 by tree-ssa-strlen.c.
39521 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
39523 * config/aarch64/aarch64.opt
39524 (mcpu, march, mtune): Make case-insensitive.
39526 2014-01-20 Jakub Jelinek <jakub@redhat.com>
39529 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
39530 if operands[1] is a REG or ZERO_EXTEND of a REG.
39532 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
39534 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
39536 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
39538 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
39539 long non-pic millicode calls.
39541 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
39543 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
39545 2014-01-19 Kito Cheng <kito@0xlab.org>
39547 * builtins.c (expand_movstr): Check movstr expand done or fail.
39549 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
39550 H.J. Lu <hongjiu.lu@intel.com>
39553 * config/i386/i386.md (*lea<mode>): Zero-extend return register
39554 to DImode for zero-extended addresses.
39556 2014-01-19 Jakub Jelinek <jakub@redhat.com>
39558 PR rtl-optimization/57763
39559 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
39560 on the new indirect jump_insn and increment LABEL_NUSES (label).
39562 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
39566 * config.gcc (x86_archs): New variable.
39567 (x86_64_archs): Likewise.
39568 (x86_cpus): Likewise.
39569 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
39570 --with-arch/--with-cpu= options.
39571 Support --with-arch=/--with-cpu={nehalem,westmere,
39572 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
39574 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
39576 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
39577 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
39579 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
39581 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
39583 2014-01-18 Jakub Jelinek <jakub@redhat.com>
39586 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
39587 clear cpp_get_options (parse_in)->warn_unused_macros for
39588 ix86_target_macros_internal with cpp_define.
39590 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
39592 * jump.c (delete_related_insns): Keep (use (insn))s.
39593 * reorg.c (redundant_insn): Check for barriers too.
39595 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
39597 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
39599 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
39601 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
39602 call to $$dyncall when TARGET_LONG_CALLS is true.
39604 2014-01-17 Jeff Law <law@redhat.com>
39606 * ree.c (combine_set_extension): Temporarily disable test for
39607 changing number of hard registers.
39609 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
39611 PR middle-end/58125
39612 * ipa-inline-analysis.c (inline_free_summary):
39613 Do not free summary of aliases.
39615 2014-01-17 Jakub Jelinek <jakub@redhat.com>
39617 PR middle-end/59706
39618 * gimplify.c (gimplify_expr): Use create_tmp_var
39619 instead of create_tmp_var_raw. If cond doesn't have
39620 integral type, don't add the IFN_ANNOTATE builtin at all.
39622 2014-01-17 Martin Jambor <mjambor@suse.cz>
39625 * ipa-cp.c (prev_edge_clone): New variable.
39626 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
39627 Also resize prev_edge_clone vector.
39628 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
39629 (ipcp_edge_removal_hook): New function.
39630 (ipcp_driver): Register ipcp_edge_removal_hook.
39632 2014-01-17 Andrew Pinski <apinski@cavium.com>
39633 Steve Ellcey <sellcey@mips.com>
39636 * config/mips/mips.c (mips_print_operand): Check operand mode instead
39639 2014-01-17 Jeff Law <law@redhat.com>
39641 PR middle-end/57904
39642 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
39643 so that pass_ccp runs first.
39645 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
39647 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
39648 (ix86_adjust_cost): Use !TARGET_XXX.
39649 (do_reorder_for_imul): Likewise.
39650 (swap_top_of_ready_list): Likewise.
39651 (ix86_sched_reorder): Likewise.
39653 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
39655 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
39656 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
39657 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
39658 (intel_memset): New. Duplicate slm_memset.
39659 (intel_cost): New. Duplicate slm_cost.
39660 (m_INTEL): New macro.
39661 (processor_target_table): Add "intel".
39662 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
39663 with PROCESSOR_INTEL for "intel".
39664 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
39665 PROCESSOR_SILVERMONT.
39666 (ix86_issue_rate): Likewise.
39667 (ix86_adjust_cost): Likewise.
39668 (ia32_multipass_dfa_lookahead): Likewise.
39669 (swap_top_of_ready_list): Likewise.
39670 (ix86_sched_reorder): Likewise.
39671 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
39672 instead of TARGET_OPT_AGU.
39673 * config/i386/i386.h (TARGET_INTEL): New.
39674 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
39675 (processor_type): Add PROCESSOR_INTEL.
39676 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
39677 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
39679 2014-01-17 Marek Polacek <polacek@redhat.com>
39682 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
39685 2014-01-17 Richard Biener <rguenther@suse.de>
39687 PR tree-optimization/46590
39688 * opts.c (default_options_table): Add entries for
39689 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
39690 all enabled at -O1 but not for -Og.
39691 * common.opt (fbranch-count-reg): Remove Init(1).
39692 (fmove-loop-invariants): Likewise.
39693 (ftree-pta): Likewise.
39695 2014-01-17 Jakub Jelinek <jakub@redhat.com>
39697 * config/i386/i386.c (ix86_data_alignment): For compatibility with
39698 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
39699 decls to at least the GCC 4.8 used alignments.
39702 * tree-nested.c (convert_nonlocal_reference_stmt,
39703 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
39704 of GIMPLE_BIND stmts, adjust associated decls.
39706 2014-01-17 Richard Biener <rguenther@suse.de>
39708 PR tree-optimization/46590
39709 * vec.h (vec<>::bseach): New member function implementing
39710 binary search according to C89 bsearch.
39711 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
39712 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
39713 bitmap pointer again. Make accesses_in_loop a flat array.
39714 (mem_ref_obstack): New global.
39715 (outermost_indep_loop): Adjust for mem_ref->stored changes.
39716 (mark_ref_stored): Likewise.
39717 (ref_indep_loop_p_2): Likewise.
39718 (set_ref_stored_in_loop): New helper function.
39719 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
39720 (memref_free): Adjust.
39721 (record_mem_ref_loc): Simplify.
39722 (gather_mem_refs_stmt): Adjust.
39723 (sort_locs_in_loop_postorder_cmp): New function.
39724 (analyze_memory_references): Sort accesses_in_loop after
39725 loop postorder number.
39726 (find_ref_loc_in_loop_cmp): New function.
39727 (for_all_locs_in_loop): Find relevant cluster of locs in
39728 accesses_in_loop and iterate without recursion.
39729 (execute_sm): Avoid uninit warning.
39730 (struct ref_always_accessed): Simplify.
39731 (ref_always_accessed::operator ()): Likewise.
39732 (ref_always_accessed_p): Likewise.
39733 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
39734 loop postorder numbers here.
39735 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
39738 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
39741 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
39742 on decls for which assemble_alias has been called.
39744 2014-01-17 Nick Clifton <nickc@redhat.com>
39746 * config/msp430/msp430.opt: (mcpu): New option.
39747 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
39748 (msp430_option_override): Parse target_cpu. If the MCU name
39749 matches a generic string, clear target_mcu.
39750 (msp430_attr): Allow numeric interrupt values up to 63.
39751 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
39752 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
39754 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
39756 * config/msp430/msp430.md (popm): Use %J rather than %I.
39757 (addsi3): Use msp430_nonimmediate_operand for operand 2.
39758 (addhi_cy_i): Use immediate_operand for operand 2.
39759 * doc/invoke.texi: Document -mcpu option.
39761 2014-01-17 Richard Biener <rguenther@suse.de>
39763 PR rtl-optimization/38518
39764 * df.h (df_analyze_loop): Declare.
39765 * df-core.c: Include cfgloop.h.
39766 (df_analyze_1): Split out main part of df_analyze.
39767 (df_analyze): Adjust.
39768 (loop_inverted_post_order_compute): New function.
39769 (loop_post_order_compute): Likewise.
39770 (df_analyze_loop): New function avoiding whole-function
39771 postorder computes.
39772 * loop-invariant.c (find_defs): Use df_analyze_loop.
39773 (find_invariants): Adjust.
39774 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
39776 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
39778 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
39779 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
39781 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
39783 * ipa-ref.c (ipa_remove_stmt_references): Fix references
39784 traversal when removing references.
39786 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
39789 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
39791 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
39793 PR middle-end/56791
39794 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
39795 pushing a reload for an autoinc when we had previously reloaded an
39796 inner part of the address.
39798 2014-01-16 Jakub Jelinek <jakub@redhat.com>
39800 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
39802 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
39803 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
39804 when not giving up or versioning for alias only because of
39806 (vect_analyze_data_ref_dependences): Set to true.
39807 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
39809 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
39810 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
39813 PR middle-end/58344
39814 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
39817 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
39818 operand 0 predicate for gathers, use a new pseudo as subtarget.
39820 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
39822 PR middle-end/59609
39823 * lra-constraints.c (process_alt_operands): Add printing debug info.
39824 Check absence of input/output reloads for matched operands too.
39826 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
39828 PR rtl-optimization/59835
39829 * ira.c (ira_init_register_move_cost): Increase cost for
39832 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
39834 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
39836 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
39839 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
39840 non-register objects. Use gen_(high/low)part more consistently.
39843 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
39846 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
39847 endian support, remove tests for WORDS_BIG_ENDIAN.
39848 (p8_mfvsrd_3_<mode>): Likewise.
39849 (reload_gpr_from_vsx<mode>): Likewise.
39850 (reload_gpr_from_vsxsf): Likewise.
39851 (p8_mfvsrd_4_disf): Likewise.
39853 2014-01-16 Richard Biener <rguenther@suse.de>
39855 PR rtl-optimization/46590
39856 * lcm.c (compute_antinout_edge): Use postorder iteration.
39857 (compute_laterin): Use inverted postorder iteration.
39859 2014-01-16 Nick Clifton <nickc@redhat.com>
39861 PR middle-end/28865
39862 * varasm.c (output_constant): Return the number of bytes actually
39864 (output_constructor_array_range): Update the field size with the
39865 number of bytes emitted by output_constant.
39866 (output_constructor_regular_field): Likewise. Also do not
39867 complain if the total number of bytes emitted is now greater
39868 than the expected fieldpos.
39869 * output.h (output_constant): Update prototype and descriptive comment.
39871 2014-01-16 Marek Polacek <polacek@redhat.com>
39873 PR middle-end/59827
39874 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
39875 it is error_mark_node.
39877 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
39879 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
39880 VALID_AVX256_REG_OR_OI_MODE.
39882 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
39884 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
39885 current procedure should be profiled.
39887 2014-01-15 Andrew Pinski <apinski@cavium.com>
39889 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
39890 of moving from/to the STACK_REG register class.
39892 2014-01-15 Richard Henderson <rth@redhat.com>
39895 * reginfo.c (global_regs_decl): Globalize.
39896 * rtl.h (global_regs_decl): Declare.
39897 * ira.c (do_reload): Diagnose frame_pointer_needed and it
39898 reserved via global_regs.
39900 2014-01-15 Teresa Johnson <tejohnson@google.com>
39902 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
39904 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
39906 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
39907 and vmulosh rather than call gen_vec_widen_smult_*.
39908 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
39909 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
39910 (vec_widen_smult_even_v16qi): Likewise.
39911 (vec_widen_umult_even_v8hi): Likewise.
39912 (vec_widen_smult_even_v8hi): Likewise.
39913 (vec_widen_umult_odd_v16qi): Likewise.
39914 (vec_widen_smult_odd_v16qi): Likewise.
39915 (vec_widen_umult_odd_v8hi): Likewise.
39916 (vec_widen_smult_odd_v8hi): Likewise.
39917 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
39918 vmuloub rather than call gen_vec_widen_umult_*.
39919 (vec_widen_umult_lo_v16qi): Likewise.
39920 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
39921 vmulosb rather than call gen_vec_widen_smult_*.
39922 (vec_widen_smult_lo_v16qi): Likewise.
39923 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
39924 rather than call gen_vec_widen_umult_*.
39925 (vec_widen_umult_lo_v8hi): Likewise.
39926 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
39927 rather than call gen_vec_widen_smult_*.
39928 (vec_widen_smult_lo_v8hi): Likewise.
39930 2014-01-15 Jeff Law <law@redhat.com>
39932 PR tree-optimization/59747
39933 * ree.c (find_and_remove_re): Properly handle case where a second
39934 eliminated extension requires widening a copy created for elimination
39935 of a prior extension.
39936 (combine_set_extension): Ensure that the number of hard regs needed
39937 for a destination register does not change when we widen it.
39939 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
39941 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
39942 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
39943 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
39944 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
39945 (avr-*-rtems*): Likewise.
39946 (bfin*-rtems*): Likewise.
39947 (moxie-*-rtems*): Likewise.
39948 (h8300-*-rtems*): Likewise.
39949 (i[34567]86-*-rtems*): Likewise.
39950 (lm32-*-rtems*): Likewise.
39951 (m32r-*-rtems*): Likewise.
39952 (m68k-*-rtems*): Likewise.
39953 (microblaze*-*-rtems*): Likewise.
39954 (mips*-*-rtems*): Likewise.
39955 (powerpc-*-rtems*): Likewise.
39956 (sh-*-rtems*): Likewise.
39957 (sparc-*-rtems*): Likewise.
39958 (sparc64-*-rtems*): Likewise.
39959 (v850-*-rtems*): Likewise.
39960 (m32c-*-rtems*): Likewise.
39962 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
39964 PR rtl-optimization/59511
39965 * ira.c (ira_init_register_move_cost): Use memory costs for some
39966 cases of register move cost calculations.
39967 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
39968 instead of BB frequency.
39969 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
39970 * lra-assigns.c (find_hard_regno_for): Ditto.
39972 2014-01-15 Richard Biener <rguenther@suse.de>
39974 PR tree-optimization/59822
39975 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
39976 (vectorizable_load): Use it to hoist defs of uses of invariant
39977 loads out of the loop.
39979 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
39980 Kugan Vivekanandarajah <kuganv@linaro.org>
39983 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
39986 2014-01-15 Richard Biener <rguenther@suse.de>
39988 PR rtl-optimization/59802
39989 * lcm.c (compute_available): Use inverted postorder to seed
39990 the initial worklist.
39992 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
39995 * config/s390/s390.c (s390_preferred_reload_class): Don't return
39996 ADDR_REGS for invalid symrefs in non-PIC code.
39998 2014-01-15 Jakub Jelinek <jakub@redhat.com>
40001 * builtins.c (determine_block_size): Initialize *probable_max_size
40002 even if len_rtx is CONST_INT.
40004 2014-01-14 Andrew Pinski <apinski@cavium.com>
40006 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
40007 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
40008 (cortexa53_tunings): Likewise.
40009 (aarch64_sched_issue_rate): New function.
40010 (TARGET_SCHED_ISSUE_RATE): Define.
40012 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
40014 * ira-costs.c (find_costs_and_classes): Add missed
40015 ira_init_register_move_cost_if_necessary.
40017 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
40020 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
40022 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
40025 * config/i386/i386.c (type_natural_mode): Add a bool parameter
40026 to indicate if type is used for function return value. Warn ABI
40027 change if the vector mode isn't available for function return value.
40028 (ix86_function_arg_advance): Pass false to type_natural_mode.
40029 (ix86_function_arg): Likewise.
40030 (ix86_gimplify_va_arg): Likewise.
40031 (function_arg_32): Don't warn ABI change.
40032 (ix86_function_value): Pass true to type_natural_mode.
40033 (ix86_return_in_memory): Likewise.
40034 (ix86_struct_value_rtx): Removed.
40035 (TARGET_STRUCT_VALUE_RTX): Likewise.
40037 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
40039 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
40040 converting a conditional jump into a conditional return.
40042 2014-01-14 Richard Biener <rguenther@suse.de>
40044 PR tree-optimization/58921
40045 PR tree-optimization/59006
40046 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
40047 hoisting invariant stmts.
40048 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
40049 invariant loads on the preheader edge if possible.
40051 2014-01-14 Joey Ye <joey.ye@arm.com>
40053 * doc/plugin.texi (Building GCC plugins): Update to C++.
40055 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
40057 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
40058 (_mm_rcp28_round_ss): Ditto.
40059 (_mm_rsqrt28_round_sd): Ditto.
40060 (_mm_rsqrt28_round_ss): Ditto.
40061 (_mm_rcp28_sd): Ditto.
40062 (_mm_rcp28_ss): Ditto.
40063 (_mm_rsqrt28_sd): Ditto.
40064 (_mm_rsqrt28_ss): Ditto.
40065 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
40066 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
40067 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
40068 (IX86_BUILTIN_RCP28SD): Ditto.
40069 (IX86_BUILTIN_RCP28SS): Ditto.
40070 (IX86_BUILTIN_RSQRT28SD): Ditto.
40071 (IX86_BUILTIN_RSQRT28SS): Ditto.
40072 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
40073 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
40074 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
40075 (ix86_expand_special_args_builtin): Expand new FTYPE.
40076 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
40077 (srcp14<mode>): Make insn unary.
40078 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
40079 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
40080 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
40081 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
40082 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
40083 Fix rounding: make it SAE only.
40084 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
40086 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
40088 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
40089 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
40090 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
40091 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
40092 (round_saeonly_mask_scalar_operand4): Ditto.
40093 (round_saeonly_mask_scalar_op3): Ditto.
40094 (round_saeonly_mask_scalar_op4): Ditto.
40096 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40098 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
40099 Implement -maltivec=be for vec_insert and vec_extract.
40101 2014-01-10 DJ Delorie <dj@redhat.com>
40103 * config/msp430/msp430.md (call_internal): Don't allow memory
40104 references with SP as the base register.
40105 (call_value_internal): Likewise.
40106 * config/msp430/constraints.md (Yc): New. For memory references
40107 that don't use SP as a base register.
40109 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
40110 "an integer without a # prefix"
40111 * config/msp430/msp430.md (epilogue_helper): Use it.
40113 2014-01-13 Jakub Jelinek <jakub@redhat.com>
40116 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
40117 AVX512F gather builtins.
40118 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
40119 on gather decls with INTEGER_TYPE masktype.
40120 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
40121 directly into the builtin rather than hoisting it before loop.
40123 PR tree-optimization/59387
40124 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
40125 (scev_const_prop): If folded_casts and type has undefined overflow,
40126 use force_gimple_operand instead of force_gimple_operand_gsi and
40127 for each added stmt if it is assign with
40128 arith_code_with_undefined_signed_overflow, call
40129 rewrite_to_defined_overflow.
40130 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
40131 gimple-fold.h instead.
40132 (arith_code_with_undefined_signed_overflow,
40133 rewrite_to_defined_overflow): Moved to ...
40134 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
40135 rewrite_to_defined_overflow): ... here. No longer static.
40136 Include gimplify-me.h.
40137 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
40138 rewrite_to_defined_overflow): New prototypes.
40140 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40142 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
40144 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
40146 * builtins.c (get_object_alignment_2): Minor tweak.
40147 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
40149 2014-01-13 Christian Bruel <christian.bruel@st.com>
40151 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
40152 optimized non constant lengths.
40154 2014-01-13 Jakub Jelinek <jakub@redhat.com>
40157 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
40158 load as __atomic_load_N if possible.
40160 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
40162 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
40164 (rs6000_expand_builtin): Adjust call.
40166 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
40169 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
40170 * config/rs6000/rs6000.c: Include target-globals.h.
40171 (rs6000_set_current_function): Instead of doing target_reinit
40172 unconditionally, use save_target_globals_default_opts and
40173 restore_target_globals.
40175 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
40177 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
40178 (rs6000_expand_builtin): Handle mffs and mtfsf.
40179 (rs6000_init_builtins): Define mffs and mtfsf.
40180 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
40181 (rs6000_mffs): New pattern.
40182 (rs6000_mtfsf): New pattern.
40184 2014-01-11 Bin Cheng <bin.cheng@arm.com>
40186 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
40187 Start narrowing with START. Apply candidate-use pair
40188 and check overall cost in narrowing.
40189 (iv_ca_prune): Pass new argument.
40191 2014-01-10 Jeff Law <law@redhat.com>
40193 PR middle-end/59743
40194 * ree.c (combine_reaching_defs): Ensure the defining statement
40195 occurs before the extension when optimizing extensions with
40196 different source and destination hard registers.
40198 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
40201 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
40202 vtables into the type inheritance graph.
40204 2014-01-10 Jakub Jelinek <jakub@redhat.com>
40206 PR rtl-optimization/59754
40207 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
40208 modes in the REGNO != REGNO case.
40210 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40212 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
40214 2014-01-10 Jakub Jelinek <jakub@redhat.com>
40216 PR tree-optimization/59745
40217 * tree-predcom.c (tree_predictive_commoning_loop): Call
40218 free_affine_expand_cache if giving up because components is NULL.
40220 * target-globals.c (save_target_globals): Allocate < 4KB structs using
40221 GC in payload of target_globals struct instead of allocating them on
40222 the heap and the larger structs separately using GC.
40223 * target-globals.h (struct target_globals): Make regs, hard_regs,
40224 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
40225 of GTY((skip)) and change type to void *.
40226 (reset_target_globals): Cast loads from those fields to corresponding
40229 2014-01-10 Steve Ellcey <sellcey@mips.com>
40232 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
40233 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
40234 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
40236 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
40239 * aarch64-modes.def (CC_Zmode): New flags mode.
40240 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
40241 represents an equality.
40242 (aarch64_get_condition_code): Handle CC_Zmode.
40243 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
40245 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
40247 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
40248 extraction in good case.
40250 2014-01-10 Richard Biener <rguenther@suse.de>
40252 PR tree-optimization/59374
40253 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
40254 checking after SLP discovery. Mark stmts not participating
40255 in any SLP instance properly.
40257 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40259 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
40260 when handling a SET rtx.
40262 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40264 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
40265 (cortex-a57): Likewise.
40266 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
40268 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
40270 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
40271 non-iwmmxt builtins.
40273 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
40277 * ipa-devirt.c record_target_from_binfo): Take as argument
40278 stack of binfos and lookup matching one for virtual inheritance.
40279 (possible_polymorphic_call_targets_1): Update.
40281 2014-01-10 Huacai Chen <chenhc@lemote.com>
40283 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
40284 kernel strings for Loongson-2E/2F/3A.
40286 2014-01-10 Jakub Jelinek <jakub@redhat.com>
40288 PR middle-end/59670
40289 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
40290 is_gimple_call before calling gimple_call_internal_p.
40292 2014-01-09 Steve Ellcey <sellcey@mips.com>
40294 * Makefile.in (TREE_FLOW_H): Remove.
40295 (TREE_SSA_H): Add file names from tree-flow.h.
40296 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
40297 * tree.h: Remove tree-flow.h reference.
40298 * hash-table.h: Remove tree-flow.h reference.
40299 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
40300 reference with tree-ssa-loop.h.
40302 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40304 * doc/invoke.texi: Add -maltivec={be,le} options, and document
40305 default element-order behavior for -maltivec.
40306 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
40307 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
40308 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
40309 when targeting big endian, at least for now.
40310 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
40312 2014-01-09 Jakub Jelinek <jakub@redhat.com>
40314 PR middle-end/47735
40315 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
40316 var satisfies use_register_for_decl, just take into account type
40317 alignment, rather than decl alignment.
40319 PR tree-optimization/59622
40320 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
40321 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
40322 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
40323 Don't devirtualize for inplace at all. For targets.length () == 1,
40324 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
40326 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
40328 * config/i386/i386.md (cpu): Remove the unused btver1.
40330 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
40332 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
40334 2014-01-09 Jakub Jelinek <jakub@redhat.com>
40337 * tree-core.h (struct target_globals): New forward declaration.
40338 (struct tree_target_option): Add globals field.
40339 * tree.h (TREE_TARGET_GLOBALS): Define.
40340 (prepare_target_option_nodes_for_pch): New prototype.
40341 * target-globals.h (struct target_globals): Define even if
40342 !SWITCHABLE_TARGET.
40343 * tree.c (prepare_target_option_node_for_pch,
40344 prepare_target_option_nodes_for_pch): New functions.
40345 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
40346 * config/i386/i386.c: Include target-globals.h.
40347 (ix86_set_current_function): Instead of doing target_reinit
40348 unconditionally, use save_target_globals_default_opts and
40349 restore_target_globals.
40351 2014-01-09 Richard Biener <rguenther@suse.de>
40353 PR tree-optimization/59715
40354 * tree-cfg.h (split_critical_edges): Declare.
40355 * tree-cfg.c (split_critical_edges): Export.
40356 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
40358 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
40360 * cfgexpand.c (expand_stack_vars): Optionally disable
40361 asan stack protection.
40362 (expand_used_vars): Likewise.
40363 (partition_stack_vars): Likewise.
40364 * asan.c (asan_emit_stack_protection): Optionally disable
40365 after return stack usage.
40366 (instrument_derefs): Optionally disable memory access instrumentation.
40367 (instrument_builtin_call): Likewise.
40368 (instrument_strlen_call): Likewise.
40369 (asan_protect_global): Optionally disable global variables protection.
40370 * doc/invoke.texi: Added doc for new options.
40371 * params.def: Added new options.
40372 * params.h: Likewise.
40374 2014-01-09 Jakub Jelinek <jakub@redhat.com>
40376 PR rtl-optimization/59724
40377 * ifcvt.c (cond_exec_process_if_block): Don't call
40378 flow_find_head_matching_sequence with 0 longest_match.
40379 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
40380 non-active insns if !stop_after.
40381 (try_head_merge_bb): Revert 2014-01-07 changes.
40383 2014-01-08 Jeff Law <law@redhat.com>
40385 * ree.c (get_sub_rtx): New function, extracted from...
40386 (merge_def_and_ext): Here.
40387 (combine_reaching_defs): Use get_sub_rtx.
40389 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
40391 * cgraph.h (varpool_variable_node): Do not choke on null node.
40393 2014-01-08 Catherine Moore <clm@codesourcery.com>
40395 * config/mips/mips.md (simple_return): Attempt to use JRC
40397 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
40399 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
40401 PR rtl-optimization/59137
40402 * reorg.c (steal_delay_list_from_target): Call update_block for
40404 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
40406 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40408 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
40409 two duplicate entries.
40411 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
40414 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
40416 * config/mips/mips.c (mips_truncated_op_cost): New function.
40417 (mips_rtx_costs): Adjust test for BADDU.
40418 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
40420 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
40422 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
40423 (*baddu_si): ...this new pattern.
40425 2014-01-08 Jakub Jelinek <jakub@redhat.com>
40428 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
40430 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
40432 PR middle-end/57748
40433 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
40435 (expand_expr, expand_normal): Adjust.
40436 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
40437 inner_reference_p. Use inner_reference_p to expand inner references.
40438 (store_expr): Adjust.
40439 * cfgexpand.c (expand_call_stmt): Adjust.
40441 2014-01-08 Rong Xu <xur@google.com>
40443 * gcov-io.c (gcov_var): Move from gcov-io.h.
40444 (gcov_position): Ditto.
40445 (gcov_is_error): Ditto.
40446 (gcov_rewrite): Ditto.
40447 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
40448 only part to libgcc/libgcov.h.
40450 2014-01-08 Marek Polacek <polacek@redhat.com>
40452 PR middle-end/59669
40453 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
40455 2014-01-08 Marek Polacek <polacek@redhat.com>
40458 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
40460 2014-01-08 Jakub Jelinek <jakub@redhat.com>
40462 PR rtl-optimization/59649
40463 * stor-layout.c (get_mode_bounds): For BImode return
40464 0 and STORE_FLAG_VALUE.
40466 2014-01-08 Richard Biener <rguenther@suse.de>
40468 PR middle-end/59630
40469 * gimple.h (is_gimple_builtin_call): Remove.
40470 (gimple_builtin_call_types_compatible_p): New.
40471 (gimple_call_builtin_p): New overload.
40472 * gimple.c (is_gimple_builtin_call): Remove.
40473 (validate_call): Rename to ...
40474 (gimple_builtin_call_types_compatible_p): ... this and export. Also
40475 check return types.
40476 (validate_type): New static function.
40477 (gimple_call_builtin_p): New overload and adjust.
40478 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
40479 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
40480 (gimple_fold_stmt_to_constant_1): Likewise.
40481 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
40483 2014-01-08 Richard Biener <rguenther@suse.de>
40485 PR middle-end/59471
40486 * gimplify.c (gimplify_expr): Gimplify register-register type
40487 VIEW_CONVERT_EXPRs to separate stmts.
40489 2014-01-07 Jeff Law <law@redhat.com>
40491 PR middle-end/53623
40492 * ree.c (combine_set_extension): Handle case where source
40493 and destination registers in an extension insn are different.
40494 (combine_reaching_defs): Allow source and destination registers
40495 in extension to be different under limited circumstances.
40496 (add_removable_extension): Remove restriction that the
40497 source and destination registers in the extension are the same.
40498 (find_and_remove_re): Emit a copy from the extension's
40499 destination to its source after the defining insn if
40500 the source and destination registers are different.
40502 PR middle-end/59285
40503 * ifcvt.c (merge_if_block): If we are merging a block with more than
40504 one successor with a block with no successors, remove any BARRIER
40505 after the second block.
40507 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
40509 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
40511 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
40514 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
40515 for 14-bit register offsets when INT14_OK_STRICT is false.
40517 2014-01-07 Roland Stigge <stigge@antcom.de>
40518 Michael Meissner <meissner@linux.vnet.ibm.com>
40521 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
40522 Only check TFmode for SPE constants. Don't check TImode or TDmode.
40524 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
40526 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
40529 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
40531 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
40532 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
40533 rtx is const0_rtx or not.
40535 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
40538 * target-globals.c (save_target_globals): Remove this_fn_optab
40540 * toplev.c: Include optabs.h.
40541 (target_reinit): Temporarily restore the global options if another
40542 set of options are in force.
40544 2014-01-07 Jakub Jelinek <jakub@redhat.com>
40546 PR rtl-optimization/58668
40547 * cfgcleanup.c (flow_find_cross_jump): Don't count
40548 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
40549 to determine what is counted.
40550 (flow_find_head_matching_sequence): Use active_insn_p to determine
40552 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
40554 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
40555 determine what is counted.
40557 PR tree-optimization/59643
40558 * tree-predcom.c (split_data_refs_to_components): If one dr is
40559 read and one write, determine_offset fails and the write isn't
40560 in the bad component, just put the read into the bad component.
40562 2014-01-07 Mike Stump <mikestump@comcast.net>
40563 Jakub Jelinek <jakub@redhat.com>
40566 * tree-core.h (struct tree_optimization_option): Change optabs
40567 type from unsigned char * to void *.
40568 * optabs.c (init_tree_optimization_optabs): Adjust
40569 TREE_OPTIMIZATION_OPTABS initialization.
40571 2014-01-06 Jakub Jelinek <jakub@redhat.com>
40574 * config/i386/i386.h (struct machine_function): Add
40575 no_drap_save_restore field.
40576 * config/i386/i386.c (ix86_save_reg): Use
40577 !cfun->machine->no_drap_save_restore instead of
40578 crtl->stack_realign_needed.
40579 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
40580 this function clears frame_pointer_needed. Set
40581 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
40582 and DRAP reg is needed.
40584 2014-01-06 Marek Polacek <polacek@redhat.com>
40587 * doc/implement-c.texi: Mention that other integer types are
40588 permitted as bit-field types in strictly conforming mode.
40590 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
40592 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
40593 is newly allocated.
40595 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
40597 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
40599 2014-01-06 Martin Jambor <mjambor@suse.cz>
40602 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
40604 * ipa-prop.c (ipa_print_node_params): Fix indentation.
40606 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
40610 * var-tracking.c (add_stores): Preserve the value of the source even if
40611 we don't record the store.
40613 2014-01-06 Terry Guo <terry.guo@arm.com>
40615 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
40617 2014-01-05 Iain Sandoe <iain@codesourcery.com>
40620 * config/darwin.c (darwin_function_section): Adjust return values to
40621 correspond to optimisation changes made in r206070.
40623 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
40625 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
40626 from prefetch_block tune setting.
40627 (nocona_cost): Correct size of prefetch block to 64.
40629 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
40631 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
40632 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
40633 used to save the static chain register in the computation of the offset
40634 from which the FP registers need to be restored.
40636 2014-01-04 Jakub Jelinek <jakub@redhat.com>
40638 PR tree-optimization/59519
40639 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
40640 ICE if get_current_def (current_new_name) is already non-NULL, as long
40641 as it is a phi result of some other phi in *new_exit_bb that has
40644 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
40645 or vmovdqu* for misaligned_operand.
40646 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
40647 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
40648 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
40649 aligned_mem for AVX512F masked aligned load and store builtins and for
40650 non-temporal moves.
40652 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
40654 PR tree-optimization/59651
40655 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
40656 Address range for negative step should be added by TYPE_SIZE_UNIT.
40658 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
40660 * config/m68k/m68k.c (handle_move_double): Handle pushes with
40661 overlapping registers also for registers other than the stack pointer.
40663 2014-01-03 Marek Polacek <polacek@redhat.com>
40666 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
40669 2014-01-03 Jakub Jelinek <jakub@redhat.com>
40672 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
40675 * config/i386/i386.md (MODE_SIZE): New mode attribute.
40676 (push splitter): Use <P:MODE_SIZE> instead of
40677 GET_MODE_SIZE (<P:MODE>mode).
40678 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
40679 (mov -1, reg peephole2): Likewise.
40680 * config/i386/sse.md (*mov<mode>_internal,
40681 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
40682 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
40683 *<code><mode>3, *andnot<mode>3<mask_name>,
40684 <mask_codefor><code><mode>3<mask_name>): Likewise.
40685 * config/i386/subst.md (mask_mode512bit_condition,
40686 sd_mask_mode512bit_condition): Likewise.
40688 2014-01-02 Xinliang David Li <davidxl@google.com>
40690 PR tree-optimization/59303
40691 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
40692 (dump_predicates): Better output format.
40693 (pred_equal_p): New function.
40694 (is_neq_relop_p): Ditto.
40695 (is_neq_zero_form_p): Ditto.
40696 (pred_expr_equal_p): Ditto.
40697 (pred_neg_p): Ditto.
40698 (simplify_pred): Ditto.
40699 (simplify_preds_2): Ditto.
40700 (simplify_preds_3): Ditto.
40701 (simplify_preds_4): Ditto.
40702 (simplify_preds): Ditto.
40703 (push_pred): Ditto.
40704 (push_to_worklist): Ditto.
40705 (get_pred_info_from_cmp): Ditto.
40706 (is_degenerated_phi): Ditto.
40707 (normalize_one_pred_1): Ditto.
40708 (normalize_one_pred): Ditto.
40709 (normalize_one_pred_chain): Ditto.
40710 (normalize_preds): Ditto.
40711 (normalize_cond_1): Remove function.
40712 (normalize_cond): Ditto.
40713 (is_gcond_subset_of): Ditto.
40714 (is_subset_of_any): Ditto.
40715 (is_or_set_subset_of): Ditto.
40716 (is_and_set_subset_of): Ditto.
40717 (is_norm_cond_subset_of): Ditto.
40718 (pred_chain_length_cmp): Ditto.
40719 (convert_control_dep_chain_into_preds): Type change.
40720 (find_predicates): Ditto.
40721 (find_def_preds): Ditto.
40722 (destroy_predicates_vecs): Ditto.
40723 (find_matching_predicates_in_rest_chains): Ditto.
40724 (use_pred_not_overlap_with_undef_path_pred): Ditto.
40725 (is_pred_expr_subset): Ditto.
40726 (is_pred_chain_subset_of): Ditto.
40727 (is_included_in): Ditto.
40728 (is_superset_of): Ditto.
40730 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
40732 Update copyright years.
40734 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
40736 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
40737 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
40738 config/arc/arc.md, config/arc/arc.opt,
40739 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
40740 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
40741 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
40742 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
40743 config/linux-protos.h, config/linux.c, config/winnt-c.c,
40744 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
40745 vtable-verify.c, vtable-verify.h: Use the standard form for the
40748 2014-01-02 Tobias Burnus <burnus@net-b.de>
40750 * gcc.c (process_command): Update copyright notice dates.
40751 * gcov-dump.c: Ditto.
40753 * doc/cpp.texi: Bump @copying's copyright year.
40754 * doc/cppinternals.texi: Ditto.
40755 * doc/gcc.texi: Ditto.
40756 * doc/gccint.texi: Ditto.
40757 * doc/gcov.texi: Ditto.
40758 * doc/install.texi: Ditto.
40759 * doc/invoke.texi: Ditto.
40761 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
40763 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
40765 2014-01-01 Jakub Jelinek <jakub@redhat.com>
40767 * config/i386/sse.md (*mov<mode>_internal): Guard
40768 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
40770 PR rtl-optimization/59647
40771 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
40772 new_rtx into UNSIGNED_FLOAT rtxes.
40774 Copyright (C) 2014 Free Software Foundation, Inc.
40776 Copying and distribution of this file, with or without modification,
40777 are permitted in any medium without royalty provided the copyright
40778 notice and this notice are preserved.